專利名稱:管理程序執行能力的私有使用的制作方法
管理程序執行能力的私有使用背景很多公司和其它組織操作計算機網絡,其使很多計算系統互連以支持其例如與協同定位(例如,作為局部網絡的部分)或相反位于(例如經由一個或多個私用或公共中間網絡來連接的)多個不同的地理位置中的計算系統的操作。例如,容納相當大數量的互連計算系統的數據中心變得平凡,例如由單個組織或代表單個組織操作的私有數據中心和由作為企業的實體操作來向客戶提供計算資源的公共數據中心。一些公共數據中心操作員為各種客戶擁有的硬件提供網絡接入、功率和安全安裝設施,而其它公共數據中心操作員提供還包括可供其客戶使用的硬件資源的“全服務”設施。然而,當一般數據中心的規模和范圍增加時,供應、操縱和管理物理計算資源的任務變得日益復雜。用于商品硬件的虛擬化技術的出現提供了關于為具有各種需要的很多客戶管理大規模計算資源的一些益處,允許各種計算資源有效地且安全地被多個客戶共享。例如,虛擬化技術例如由VMWare、XEN、Linux的KVM (基于內核的虛擬機)或用戶模式Linux提供的技術可通過給每個用戶提供由單個物理計算機托管的一個或多個虛擬機來允許單個物·理計算機在多個用戶當中被共享,每個這樣的虛擬機是充當不同的邏輯計算系統的軟件模擬,其給用戶提供他們是給定的硬件計算資源的唯一的操作員和管理員的假象,同時也在各種虛擬機當中提供應用隔離和安全。附圖
簡述圖IA和IB是示出交互作用的示例性實施方案的網絡圖,以管理程序執行服務的多個用戶可用的程序執行能力的使用。圖2A和2B示出用于管理多個計算節點的程序執行能力的使用的技術的例子。圖3是示出用于由多個用戶管理計算節點的使用的計算系統的示例性實施方案的方框圖。圖4示出程序執行服務系統管理器例程的示例性實施方案的流程圖。圖5A和5B示出額外能力使用管理器例程的示例性實施方案的流程圖。圖6示出專用能力使用管理器例程的示例性實施方案的流程圖。圖7示出立即響應可變能力使用管理器例程的示例性實施方案的流程圖。詳細描述描述了用于管理程序的執行的技術。在至少一些實施方案中,使用一個或多個計算系統的額外計算能力為多個用戶管理程序的執行。特別是,在至少一些這樣的實施方案中,對于一個或多個用戶中的每個,私用額外計算能力池例如基于被分配來由該相關用戶私用使用的當前未使用的程序執行能力而對該用戶維持并與該用戶相關,且私用額外計算能力池可供相關用戶優先使用。除了可供多個用戶(任選地包括與私用額外計算能力池相關的一個或多個用戶)使用的一般非私用額外計算能力池以外,還可在一些實施方案中提供這樣的私用額外計算能力池。在一些實施方案中可結合代表多個客戶或服務的其他用戶來執行多個程序的程序執行服務(PES)(例如提供用于執行用戶程序的多個計算節點(例如,在一個或多個物理計算系統上托管的多個物理計算系統和/或虛擬機)的程序執行服務)來使用技術。此外,在至少一些實施方案中,這些技術的一些或全部可自動由程序執行服務系統管理器模塊的實施方案執行,如在下面更詳細地描述的。在一些實施方案中,PES或其它組的計算節點的至少一些額外的或否則未使用的程序執行能力可變得可用來代表用戶在臨時或未保證的基礎上執行程序,使得額外程序執行能力可用來執行這樣的程序,直到程序執行能力為了其它目的(例如,為了執行一個或多個其它程序的優先或預備的使用)而被需要時。這樣的額外程序執行能力可例如經由具有動態地變化的定價來反映供應和需求的現貨市場或替代地以其它方式變得可用來作為可供各種用戶(例如,提供通用額外計算能力池的PES的任何客戶)使用的一個或多個通用的額外計算能力池的部分。在一些情況下,可在額外程序執行能力為了其它目的而被需要時使用額外程序執行能力代表用戶執行一個或多個程序,且在一些這樣的情況下,那些一個或多個程序的執行可被PES自動終止(例如,關閉、中止等),以便使額外程序執行能力對其它目的變得可用。在至少一些這樣的實施方案中,自動終止的程序可代表用戶在未來的時間例如當足夠量的額外程序執行能力再次變得可用來執行用戶的程序時的未來時間自動重新開始。可選地,不是終止使用期望用于其它目的的額外程序執行能力的一個或多個程序,在一些實施方案和情況中,其它程序執行能力可以被識別并代替期望用于其它目的 的額外程序執行能力來使用,以便使利用額外程序執行能力的一個或多個程序能夠繼續執行。下面包括與使用額外程序執行能力有關的額外的細節。在一些實施方案中,從用于執行程序的PES可用的至少一些程序執行能力可被分配給一個或多個用戶以由那些用戶優先使用,使得那些用戶的每個相對于其他用戶對使用相應量的程序執行能力有優先訪問。例如,用戶的優先訪問可基于每個用戶對使用相應量的程序執行能力具有專用或排他的訪問(例如,每個用戶具有為了在執行程序時用戶的預備或保證的使用而分配的一個或多個專用計算節點和/或其部分),或每個用戶替代地具有一定量的程序執行能力,其等效于奉獻給用戶的從多個用戶所使用的較大組的多個計算節點可用的一個或多個計算節點)。在至少一些這樣的實施方案中,PES的相應量的程序執行能力可以用例如與一個或多個物理計算系統的租借類似的方式為了在規定的一段時間內的專門訪問而被分配給特定的用戶,使得相應量的程序執行能力可用來在規定的這段時間期間代表用戶執行程序。此外,在一些實施方案中,可以給用戶優先或其它專門訪問以基于一個或多個因素例如由用戶支付的費用,對用于使用在一段時間內的專門訪問的合同責任的協定等來執行程序。在至少一些實施方案中,被分配給一個或多個用戶用于專用或其它優先使用的至少一些程序執行能力可在一些時間(例如當所分配的專用能力不用于優先使用時和/或當專用能力被分配給的用戶使所分配的專用能力變得可用作額外能力時)用作額外程序執行能力。以這種方式,被分配給第一組用戶的至少一些程序執行能力可不時地變得可用來臨時代表其他用戶執行程序。當對來自多個用戶的額外程序執行能力的需求大于當前的可用供應時,特定的用戶和程序可被選擇來以各種方式使用額外程序執行能力。例如,在一些實施方案中,請求額外程序執行能力來執行程序的用戶可以基于一個或多個因素來被提供優于其他這樣的用戶的優先權,這些因素例如是由用戶提供和/或支付的費用、對使用額外程序執行能力的請求被提交的時間、額外程序執行能力使用被再次請求開始的時間、額外程序執行能力使用被再次請求完成的時間量或最終期限、再次請求的額外程序執行能力的類型和/或量(例如,計算節點的規定數量)等。下面包括與專用程序執行能力的使用有關的額外細節。此外,如前面提到的,在至少一些實施方案中,一個或多個用戶可每個具有相關的私用額外計算能力池,用戶對該池有排他或優先訪問。例如,如果用戶具有一個或多個計算節點的專用計算能力,但目前不使用該專用能力的一些或全部,則用戶可被給予對使用未使用的專用能力作為在為用戶執行程序時的私用額外計算能力池的優先訪問。在一些實施方案中,用戶的這樣的私用額外計算能力池可響應于來自用戶的明確指令來建立(例如,對于來自用戶的費用),而在其它實施方案中,具有未使用的專用計算能力的一些或所有這樣的用戶可每個基于其未使用的專用計算能力來自動接收私用額外計算能力池。此外,如果用戶使用其自己的未使用的專用計算能力來自動接收私用額外計算能力池,則用戶可能在一些實施方案中不知道私用池。用戶的這種私用額外計算能力池的使用可在各種實施方案和情況中向用戶提供益處。例如,在一些實施方案中,用戶利用其專用計算能力的在進行中的邊際成本可能低于用戶利用來自通用池的可比較的量的額外計算能力一如果是這樣,用戶使用其自己的私用 額外計算能力池的成本可以按小于通用池的使用的成本的速率被設置(例如,可以與用戶利用其專用計算能力的在進行中的邊際成本相同的成本,可以在用戶利用其專用計算能力的在進行中的邊際成本和使用來自通用池的額外計算能力的較高成本之間,等等)。此外,在一些實施方案中,用戶可在其自己的私用池中接收對額外計算能力的排他或優先訪問,使得用戶能夠使用其私用池立即執行額外計算能力請求,即使該相同的請求將沒有使用通用額外計算能力池立即執行的足夠高的優先權。因此用戶執行程序的這種私用額外計算能力池的使用可提供不同于從執行程序的通用額外計算能力池的使用出現的至少一些其它程序執行特征的有益的程序執行特征,例如在規定時間間隔內規定數量的程序執行能力的使用的較低邊際成本、相對于通用池獲得對來自私用池的計算能力的訪問的增強的可用性、使用相對于通用池來自私用池的計算能力繼續程序的執行的增強的能力等中的一個或多個。作為私用額外計算能力池的使用的一個特定的例子,第一個用戶可為了特定的目的而發起多個計算節點的專門使用,但維持預備的那些多個計算節點的一部分(例如,以保留總的多個計算節點的20%作為備份用于可能的以后使用,例如能夠響應于高于預期的計算負荷而自動調整用于特定目的的計算節點和/或能夠代替用于特定目的的任何計算節點(如果它們變得不可用)一在這樣的情況下,預備的計算節點可用作第一個用戶的第一私用額外計算能力池,雖然它們并不用于特定的目的,但預備的那些計算節點為了特定的目的對第一個用戶是可用的,如果它們隨后被需要。作為私用額外計算能力池的使用的另一特定的例子,第二個用戶可發起多個計算節點的專門使用,但使用預期由第二個用戶使用的多個計算節點的全部作為第二個用戶的第二私用額外計算能力池一第二私用額外計算能力池可接著用于實現來自與第二個用戶相關的多個實體的請求(例如,如果第二個用戶代表組織,且多個實體是不同的組或組織內的人;多個實體是第二個用戶出售對第二私用額外計算能力池的訪問的第三方,等等),例如以與在本文對管理來自多個用戶的對使用通用額外計算能力池的多個請求描述的技術類似的方式。此外,如果第二個用戶的第二私用額外計算能力池用于實現來自多個實體的請求,則那些請求的管理和該第二私用池在一些實施方案中由PES和/或程序執行服務系統管理器(〃PESSM〃)模塊的第三方操作員執行(例如,向第二個用戶收的費用),而在其它實施方案中,第二個用戶可獲得并使用PESSM模塊或以其它方式被啟動以代表自己執行這樣的行動。而且,在一些實施方案中,對用戶使用的專用能力計算節點的一些或全部可由該用戶提供或以其它方式由該用戶管理,例如如果上面提到的第一個和/或第二個用戶提供分別用于第一和第二額外計算能力池的至少一些計算節點。如果用戶具有私用額外計算能力池,且存在也可用的單獨的通用額外計算能力池,則不同的額外計算能力池可用各種方式被使用。例如,如果這樣的用戶做出對使用額外計算能力的請求,則該請求可首先使用該用戶的私用池來被滿足,如果它具有對該請求的足夠的計算能力,且否則該請求連同來自其他用戶的請求可以被考慮由通用額外計算能力池滿足。類似地,如果通過使用用戶的私用額外計算能力池對這樣的用戶執行一個或多個第一程序,且該額外計算能力為了其它目的(例如,以為用戶執行一個或多個其它第二程序作為用戶的專用計算能力的部分)而被用戶需要,則所述一個或多個第一程序的執行在一些實施方案中可自動移動到通用額外計算能力池(例如,通過不終止地繼續第一程序的執行,例如通過識別并使用其它可用計算能力來用作用戶的專用計算能力的替換部分;通過 在作為用戶的專用計算能力的部分的一個或多個計算節點上終止第一程序的執行,并使用作為通用額外計算能力池的部分的其它計算節點以立即和快速的方式發起第一程序的進一步執行;通過在作為用戶的專用計算能力的部分的一個或多個計算節點上終止第一程序的執行,并將對進一步執行第一程序的請求連同對使用通用額外計算能力池的其它請求放置在請求隊列中;等等)。下面包括與私用額外計算能力池的使用有關的額外細節。除了上面討論的專用和額外計算能力的類型以外,PES還可包括立即響應可變程序執行能力,其在一些實施方案中可用來滿足用戶的至少一些動態地接收的請求以執行程序(例如,緊接著在那些用戶請求時、在所指示的未來時間、在所指示的未來時間段期間的某個時間等),使得由這樣的請求指示的一個或多個程序可以被執行,如果足以滿足所請求的執行的計算資源在(或接近)所請求的時間是可用的,但沒有這樣的請求被保證滿足(即,沒有足夠的計算資源被保證是可用的)。例如,在立即響應可變程序執行能力請求被接收以代表用戶動態地執行一個或多個程序(例如,對于立即執行)之后,可為用戶執行所述一個或多個程序,如果適當量的立即響應程序執行能力當前可用來執行那些程序(例如,如果確定存在具有資源以滿足請求的足夠數量的可用計算節點),且否則該請求可以被拒絕(或在一些情況下,被延遲)。因此,在一些這樣的實施方案中,對立即響應可變程序執行能力的這樣的請求可能是不成功的,例如如果適當量的程序執行能力不可用來在所請求的執行的時間執行所述一個或多個程序(例如,如果確定沒有具有足夠的資源來滿足對立即執行的請求的足夠的當前可用的計算節點)。在一些實施方案中,用于提供立即響應可變程序執行能力的計算節點可不同于用于提供專用程序執行能力的計算節點和/或不同于用于提供額外程序執行能力的計算節點一因此,如果用于提供立即響應可變程序執行能力的一些計算節點不在使用中,在一些實施方案中,它們可用于提供額外程序執行能力,直到立即響應可變程序執行能力請求被接收到,而在其它實施方案中,它們可以不用于提供這樣的額外程序執行能力。此外,在一些實施方案中,在對立即(或排定的)執行的立即響應可變程序執行能力請求被滿足并代表相應的用戶成功地發起一個或多個程序的執行之后,立即響應可變程序執行能力的在進行中的使用可被保證來繼續,直到某個未來時間,例如相應的用戶選擇(例如,基于從相應的用戶接收的終止程序執行能力的使用和/或釋放程序執行能力的指示)的時間和/或基于通過用戶的設計(例如,代表用戶執行的所述一個或多個程序自動終止該執行,例如當完成任務時或以其它方式;與代表相應的用戶執行的一個或多個程序交互作用的應用和/或其他用戶終止該執行,例如如果為了其它用戶的交互使用而提供的對相應的用戶執行的所述一個或多個程序,等等)。可選地,在一些實施方案中,可用程序執行能力的被保證的在進行中的使用可能受到某些限制,例如被保證PES將不為了其它目的而優先取得使用,但不被保證防止執行程序的計算節點的故障。此外,如前所述,在至少一些實施方案中,PES的專用程序執行能力功能可供一個或多個用戶使用,使得所述一個或多個用戶的每個可具有由PES分配的并保證可用來代表一個或多個用戶執行程序的專用的某個量的程序執行能力(例如,由PES提供的專用數量的一個或多個專用計算節點、由PES的一組一個或多個計算節點提供的計算資源的專用部分等)。例如,專用程序執行能力的被保證的可用性可結合一個或多個QoS (〃服務質量〃)標準來提供,例如專用程序執行能力將在發起所指示的程序的執行之后的一段規定的時間(例如,相應于終止使用額外計算能力的其它程序的執行和開始所指示的程序的執行的一·段時間)內是可用的。與立即響應可變程序執行能力功能和額外程序執行能力功能相反,專用能力功能的用戶可具有某個規定量的程序執行能力,其被保證可用來在一段規定的使用期期間代表用戶執行程序、禁止使PES的服務變得不可用(例如,服務故障、維護等)的無法預料的和/或偶然的事件。此外,在PES提供專用計算能力、額外計算能力和立即響應可變計算能力中的兩個或多個的實施方案中,與不同類型的計算能力相關的費用可在各種方式上不同,例如以反映相關的可用性保證和/或其它因素。作為一個例子,用戶利用特定量的專用計算能力的總成本可以高于用戶利用可比較的量的立即響應可變計算能力(如果可用)的成本,且用戶利用立即響應可變計算能力的成本可以高于用戶利用來自通用池的可比較的量的額外計算能力(如果可用)的成本——然而在一些情況下,使用專用計算能力的成本可能包括不基于實際使用的一次或周期性費用和用戶在特定數量的時間內利用特定量的專用計算能力的單獨的在進行中的邊際成本,特定量的專用計算能力使用的在進行中的邊際成本任選地小于在該段時間內使用可比較的量的通用額外計算能力池的成本。此外,如上所述,使用私用額外計算能力池的成本可以不同于使用通用額外計算能力池的成本,例如在一些實施方案中與對專用計算能力使用的在進行中的邊際成本相同。下面包括與定價和成本有關的額外細節。圖IA是示出管理多種類型的程序執行能力的使用以執行多個用戶的程序的例子的網絡圖。為了例證性目的,下面描述一些例子和實施方案,其中特定類型的程序執行能力被提供并以特定的方式被管理。這些例子為了例證性目的而被提供,并為了簡潔起見而被簡化,且將認識到,發明技術可以在各種其它情況下使用,下面只描述其中一些情況。在圖IA的例子中,很多用戶通過網絡100與程序執行服務系統管理器模塊110的所示實施方案交互作用,以在可用來執行用戶的程序的一個或多個計算節點120上執行程序,PESSM模塊110提供特定的程序執行服務(未示出)的一些或全部功能。特別是,在所示實施方案中,PESSM模塊110和計算節點120由程序執行服務提供者105提供,作為所提供的程序執行服務的部分,且PESSM模塊110可在一個或多個計算系統(未示出)上執行。在本例中,程序執行服務提供用于為各種用戶管理在計算節點120上的程序的執行的各種功倉泛。在本實例中,各種遠程用戶130、140、150和160可通過網絡100與PESSM 110交互作用,以代表用戶配置和/或請求程序的各種類型的執行。在本實例中,遠程用戶包括一個或多個專用能力用戶140、一個或多個額外能力用戶150、一個或多個立即響應可變能力用戶130和任選地一個或多個其它用戶160,如下所述。網絡100可例如是可能由各種不同的方操作的所鏈接的網絡的公共可訪問的網絡,例如互聯網。在其它實施方案中,網絡100可以是私用網絡,例如對無特權的用戶全部或部分地不可訪問的公司或大學網絡。在又一些其它實施方案中,網絡100可包括具有到和/或來自互聯網的一個或多個私用網絡。所示計算節點120被提供來在代表用戶執行程序時使用,且在一些實施方案中可包括多個物理計算系統和/或在一個或多個物理計算系統上托管的多個虛擬機(如關于圖 IB更詳細地描述的)。每個計算節點120具有可用來執行一個或多個程序的某個數量的計算資源,并提供規定量的程序執行能力,例如可以例如通過處理能力(例如,處理單元的數量和/或尺寸)、記憶能力、存儲能力、網絡帶寬能力等中的一個或多個的組合來測量。在一些實施方案中,PES提供者105可提供預先配置的計算節點,每個預先配置的計算節點具有可用來代表用戶執行程序的類似和/或相等數量的資源,而在其它實施方案中,PES提供者105可提供用戶可從中選擇的用于代表用戶執行程序的各種不同的計算節點的選擇,例如每個選擇具有變化的數量和/或類型的計算相關的資源(例如,處理單元的尺寸、速度和/或類型;處理單元的數量;記憶和/或存儲的量;平臺配置,例如32位或64位;等等)。在一些實施方案中,各種用戶130、140、150和160可與PESSM110交互作用,以規定用于代表用戶執行程序的優選的和/或所需的資源(例如,通過規定一個或多個計算節點,等等)。在各種實施方案中,這樣的資源可以在用于代表用戶執行程序的請求的時間和/或在一個或多個其它時間被規定,例如當用戶注冊和/或預訂來使用程序執行服務的服務時。在一些實施方案中,PESSM 110可向一個或多個用戶提供預訂和/或注冊服務,使得用戶可規定與代表用戶執行的一個或多個程序有關的信息(例如,程序、源代碼、一個或多個程序的可尋址的位置等)、賬戶信息(例如,用戶名、記賬信息等)、使用期限等。此外,在用戶與PESSM 110交互作用以預訂和/或注冊服務之后,用戶可在一些實施方案中被發給與用戶相關并結合代表用戶執行程序來使用的一個或多個標識符(例如,密鑰、令牌、用戶名、證書等)。在其它實施方案中,除了 PESSM 110以外的模塊可被提供來執行與PES的預訂和/或注冊服務相關的各種操作。在所示實施方案中,一個或多個可變能力用戶130與PESSM110交互作用以使用立即響應可變的程序執行能力例如通過提交對立即執行的請求和/或提供信息用于稍后執行來配置和/或請求一個或多個程序的執行。在對立即執行的請求被接收到之后,PESSM110可確定是否有具有用于滿足請求的可用資源的足夠數量的計算節點120,且如果是這樣,PESSM 110可代表用戶發起對在適當數量的計算節點上的請求的一個或多個程序的執行。在用戶安排對一個或多個程序的一個或多個未來執行的請求的情況下,PESSM 110可試圖保留用于在一個或多個未來的時間執行一個或多個程序的適當數量的計算節點,和/或可延遲確定使用哪些計算節點在稍后的時間之前(例如,當一個或多個未來的時間出現時)執行。在所示實施方案中,如果PESSM 110不能分配用于執行可變能力用戶請求的計算節點,該請求可能失敗,使得程序未被執行。在這樣的情況下,用戶130可重新提交失敗的請求用于以后執行。如前所述,在一些實施方案中,可變能力用戶可例如基于所使用的計算節點的數量、所使用的計算節點的類型、所使用的計算節點的持續時間等來承擔與PES的使用相關的各種費用。此外,雖然沒有在這里示出,但某個部分的計算節點120可在一些實施方案中被規定為提供立即響應可變程序執行能力,而在其它實施方案中立即響應可變程序執行能力可用其它方式提供(例如,使用所有的計算節點120 ;使用為了另一目的例如為了專用能力而未被分配的所有計算節點120 ;等等)。此外,在本實例中,計算節點120的子集被分配以由一個或多個專用能力用戶140使用,使得一個或多個專用能力用戶140中的每個可具有對在那些分配的計算節點的至少一些部分上執行用戶的程序優先訪問。例如,在一些實施方案中,專用能力用戶140的每個可具有專用于在規定的一段使用時間期間執行該用戶的程序的一個或多個計算節點120,使得用戶可在規定的使用期期間的任何時間訪問一個或多個計算節點以代表用戶執行程序,和/或可連續地在規定時期的持續時間期間在所述一個或多個計算節點上執行程序。 作為一個特定的例子,一個或多個專用能力用戶140可進入與PES提供商105的長期(例如,I年期)協定中,使得那些用戶的每個在協定期限內具有對一定數量的專用計算節點120的優先訪問,作為對固定的費用支付的交換(例如,預付或定期付款),且在一些情況下,其它使用費(例如,與各種資源的使用相關的可變費用,例如電、物理機架空間、網絡利用等)。在專用能力用戶140與PESSM 110交互作用以請求一定數量的專用計算節點的優先訪問時,PESSM 110可分配來自計算節點120的一個或多個計算節點用于由用戶專門使用。例如,在一些實施方案中,多個計算節點120的一個或多個特定的計算節點(例如,一個或多個特定的物理計算節點和/或虛擬計算節點)可被分配來在整個使用期內由相關的特定專用能力用戶優先使用(例如,通過在注冊的時間和/或一個或多個其它時間分配特定的計算節點),使得在使用期期間在專用計算節點上代表特定的專用用戶執行程序的請求導致在特定的一個或多個分配的計算節點上的程序的執行的發起。在其它實施方案中,不是在整個使用期內將特定的計算節點分配給特定的專用用戶,PESSM 110可相反分配來自具有多個計算節點的專用計算節點組的計算節點,使得具有足夠的資源來由各種專用能力用戶140滿足執行請求的適當數量的計算節點可以在專用計算節點組中是可用的。在一些這樣的實施方案中,在請求被接收以在一個或多個專用計算節點上執行專用用戶140的一個或多個程序之后,足以執行程序的適當數量的計算節點120可在執行一個或多個程序的請求的時間從專用計算節點組選擇。在選定數量的計算節點不再用于執行對專用用戶140的請求之后(例如,在所請求的執行的終止和/或完成之后),那些計算節點可返回到專用計算節點組以由其它專用能力用戶使用,且在一些實施方案中可進一步被跟蹤為可用作該專用用戶140的專用額外計算能力池的部分,如下所述。此外,在特定的專用能力用戶140的使用期到期之后,被分配來由該用戶使用的一個或多個計算節點可以類似地被釋放以由其它用戶使用,例如通過使計算節點可用來被分配來由一個或多個其它(例如,新的)專用能力用戶使用。此外,PESSM 110可執行關于滿足執行請求的一個或多個各種其它管理操作,例如實施使用期和/或與請求相關的其它限制和/或用戶提交的請求、實現請求的釋放計算資源、授權和/或認證請求和/或請求的用戶,等等。在一些實施方案中,在用于對專用程序執行能力執行的請求的時間和請求被實現的時間之間可能引起延遲,例如用于執行各種管理操作的延遲期等。在各種其它實施方案中,可以使用各種其它技術來分配、跟蹤、保留和/或釋放專用能力用戶的計算節點。此外,在所示實施方案中,多個額外能力用戶150與PESSM100交互作用以使用PES的額外程序執行能力來配置和/或請求一個或多個程序的執行一這樣的額外能力用戶可包括使用私用額外能力池和/或一個或多個通用額外能力池的用戶。如前所述,額外程序執行能力可包括否則可被分配來用于其它用途的額外和/或未使用的程序執行能力,且在一些實施方案中可被分離成至少一個通用額外能力池,其包括不在使用中作為一個或多個其它專用額外能力池的部分的額外計算能力。例如,在所示實施方案中,額外程序執行能力可包括很多計算節點120,其以其它方式為了其它目的(例如,為了由專用能力用戶140、可變能力用戶130和/或其它用戶160使用)而分配,但目前沒有用于那些目的。額外能力用戶可在各種實施方案中例如通過指定用于執行程序的計算節點的數量和/或類型、要使用的計算節點的最小和/或最大數量、請求的到期時間、優選的執行時間和/或執行時期、對 額外程序執行能力的使用的支付的一個或多個出價(例如,計算節點的每次使用的出價、每個某時間單位一個或多個計算節點的每次使用的出價、最小和/或最大出價等)以各種方式配置對程序的執行請求。如關于圖2A和2B進一步討論的,PESSM 110的所示實施方案可確定何時從可供額外能力用戶150使用的額外程序執行能力包括和/或移除一個或多個計算節點120,何時發起和/或終止對額外能力用戶150的程序的所請求的執行,以及在可供額外能力用戶使用來執行程序的計算節點120的哪個上。此外,PESSM 110可進一步跟蹤多少額外能力對一個或多個額外能力用戶150在對那些用戶的私用額外能力池中是可用的,例如對于也是專用能力用戶140的一些或所有額外能力用戶150。在各種實施方案中,PESSM 110可確定一個或多個計算節點是未使用的/或否則可用來以各種方式由額外能力用戶150使用。例如,在一些實施方案中,PESSM 110可從各種用戶和/或實體接收一個或多個計算節點未被使用或否則可供額外能力用戶使用的指示,例如來自一個或多個專用能力用戶140的指示,這些用戶不使用專用于由那些用戶使用的某個數量和/或部分的計算節點。在一些這樣的實施方案中,這樣的專用能力用戶可指示專用計算節點可能由專用能力用戶調配為未使用的和/或可用的一個或多個時間(例如,一天的特定時間、特定的日子、時間段等)。此夕卜,在一些實施方案中,一個或多個其它用戶160可用類似的方式交互作用以指示一個或多個計算節點例如在一個或多個其它用戶160 (例如,未示出的第三方計算系統)的控制下的一個或多個計算節點可供額外能力用戶使用。在其它實施方案中,PESSM 110可例如通過監控一些或全部計算節點120以確定何時計算節點未被使用和/或通過跟蹤這樣的計算節點的一個或多個用戶(例如,專用能力用戶140、可變能力用戶130、其它用戶160等)的使用模式來自動確定計算節點何時對額外能力用戶是可用的。在一些這樣的情況下,確定計算節點是否是未使用的或否則未充分利用可包括例如基于一個或多個用戶對計算節點的過去使用模式的分析來確定和/或預測計算節點將在足以執行一個或多個額外能力用戶的程序的至少一段時間內保持未使用的概率。在各種實施方案中,足以執行一個或多個額外能力用戶的程序的一段時間可基于一個或多個考慮因素,例如代表用戶停止/開始程序的時間、配置計算節點用于使用的時間、代表額外能力用戶執行的程序的類型(例如,某種類型的程序可在短時間段內執行有用數量的工作,例如各種類型的數據處理等,而其它程序在有用的結果產生之前使用較長的時間段),等等。在確定了一個或多個計算節點120可供一個或多個額外能力用戶150使用之后,這樣的計算節點可被添加到通用可用額外程序執行能力池和/或否則被跟蹤作為一個或多個私用額外能力池的部分,使得一個或多個計算節點可由PESSM 110使用以代表相應的額外能力用戶150執行程序,直到計算節點的其它使用(例如,通過專用能力用戶140、可變能力用戶130和/或一個或多個其它用戶或實體160的優先使用)產生的這樣的時間為止。PESSM 110可進一步確定在各種實施方案中額外能力計算節點中的一個或多個不再可供額外能力用戶150以各種方式使用。例如,在一些實施方案中,PESSM 110可例如基于來自控制那些計算節點的用戶160的停止使用計算節點的明確請求、在一個或多個計算節點上執行優先用戶的程序的請求、規定的可用性時期的到期等來接收一個或多個計算節點不再是可用的指示。作為另一例子,在一些實施方案中,PESSM 110可例如基于從一個或多個用戶接收相應于其它使用的請求或基于確定對一個或多個計算節點120的可能的要求(例如,基于探測到其它資源的增加的使用和/或計算節點可被使用的程序,等等)來自動確定計算·在一些實施方案中,額外能力用戶150可與PESSM 110交互作用以在規定數量的額外計算節點上請求一個或多個程序的立即執行和/或在一個或多個未來的時間安排這樣的執行,使得PESSM110可在規定數量的額外計算節點上發起所請求的執行,如果確定規定數量的額外計算節點在所請求的執行的時間是可用的。規定數量的額外計算節點是否在該時間是可用的確定可包括首先考慮用戶的私用額外能力池(如果有的話)包括規定數量的額外計算節點,并選擇這些額外計算節點來使用,如果它們是可用的。如果只有規定數量的額外計算節點的子集在私用額外能力池中對用戶是可用的,則PESSM 110可在一些實施方案中選擇那些私用額外計算節點來在部分地滿足請求時使用,并試圖從通用額外能力池獲得其余的額外計算節點,或相反可用其它方式繼續(例如,僅使用可用私用額外計算節點的子集滿足請求;指示請求失敗,因為私用額外能力池不包括所有規定數量的額外計算節點;試圖只使用來自通用額外能力池的額外計算節點來滿足請求;等等)。此外,在一些實施方案中,額外能力用戶150可與PESSM 110交互作用以在待執行的規定數量的額外計算節點上請求一個或多個程序的執行,因為這樣的額外計算節點變得可用來例如在所指示的未來時間段期間執行一個或多個程序,且在一些這樣的實施方案中,PESSM 110可在它確定規定數量的額外計算節點在該時間段期間是可用的時在規定數量的額外計算節點上發起所請求的執行。在一些實施方案中,額外能力用戶150可規定最小和/或最大數量的額外計算節點以用來執行所請求的執行,使得所請求的執行被發起,如果PESSM 110確定至少最小數量的額外計算節點是可用的(是否來自私用額外能力池和/或通用額外能力池),且PESSM 110可基于額外計算節點的可用性在多達最大(如果規定)數量的額外計算節點上對請求發起的所請求的執行。在對代表額外能力用戶150執行一個或多個程序的請求被接收到之后,如果PESSM 110確定存在具有足夠的計算資源來滿足所請求的執行的適當數量的計算節點(是否來自專用額外能力池和/或通用額外能力池),PESSM可選擇使用可用計算節點中的哪個來用于以各種方式進行所請求的執行。例如,在一些實施方案中,PESSM可例如通過隨機地從可用計算節點池中選擇來簡單地從具有足夠資源的可用計算節點的任一個中選擇適當數量的額外計算節點。在其它實施方案中,一個或多個特定的計算節點可在一個或多個其它因素的基礎上被選擇,這些因素例如是所述一個或多個特定的計算節點的預測長度和/或繼續可用性的概率,所述一個或多個特定的計算節點與一個或多個其它計算節點的物理接近度,所述一個或多個特定的計算節點和/或一個或多個其它計算節點的地理位置,等等。此外,如果一個或多個特定的計算節點專用來由特定的用戶使用,那些特定的計算節點可以僅僅是用作該特定用戶的私用額外能力池的部分的計算節點。如前所述,在額外計算節點上的額外能力用戶的程序的執行可以暫時的,使得PESSM 110可在對額外計算節點的其它優選使用產生時自動終止這樣的程序(例如,如果額外計算節點被以前不使用專用計算節點的專用能力用戶140收回,等等)。在這樣的情況下,如果程序目前代表額外能力用戶150在那些額外計算節點的任一個上執行,則那些程序可自動終止(例如,中斷、關閉、休眠等),使得計算節點對于其它目的是自由的,且對額外能力 用戶不再是可用的。此外,如在其它地方更詳細地討論的,在一些實施方案中,那些程序的執行狀態可在它們被終止之前被保存,例如以實現程序的稍后重啟。此外,在一些這樣的實施方案中,可能有目前代表額外能力用戶150執行程序的多個額外計算節點,額外能力用戶150可能能夠為了其它目的而滿足計算節點的數量,且在這樣的情況下,PESSM 110可基于各種因素(例如,通過首先從用戶的私用額外能力池收回額外能力計算節點以在對專用額外使用實現來自該用戶的請求時使用;或通過在額外能力用戶的當前請求當中使用確定的優先權,例如基于所提交的時間、出價價格等)來確定額外計算節點中的哪個對其它目的是自由的。在一些實施方案中,至少一些終止的程序可以使其執行在一個或多個其它可用額外能力節點(如果有的話)上例如立即或在稍后的時間被遷移和/或重啟。在一些這樣的情況下,如果沒有可用來滿足執行程序(或請求程序的執行)的所有當前的額外能力用戶150的足夠的額外計算節點,則PESSM 110可確定終止在一個或多個其它額外計算節點上執行的一個或多個額外程序,使得最初被終止的在特定的計算節點上執行的一個或多個程序可以在最新釋放的額外計算節點上重啟(例如,基于額外能力用戶的確定的優先權,使得與一個或多個最初終止的在特定的計算節點上執行的程序相關的請求具有比與一個或多個額外的程序相關的至少一些請求高的優先權)。在一些實施方案中,在PESSM 110自動終止用戶的程序之后,PESSM 110可自動重啟程序的執行,因為額外計算節點變得可用來執行用戶的程序。此外,在其它實施方案中,用戶的至少一些終止的程序可在具有可用來執行程序的足夠的計算資源的一個或多個其它計算系統和/或程序執行服務上自動遷移和/或重啟,包括經由被提供到可變能力用戶130的可變能力功能、被提供到專用能力用戶140的專用能力功能而可用的一個或多個計算節點和/或在PES外部的一個或多個第三方計算系統(未示出)。此外,各種類型的程序可更好地適合于在如額外能力池提供的這樣的臨時執行環境中執行,例如相對容忍由于偶然終止而弓I起的意外中止的程序。在一些實施方案中,額外能力用戶可對設計成間歇地跟蹤和/或保存進展(例如,中間結果、當前運行時間狀態等)的額外程序執行能力執行一個或多個程序,使得程序可在未來的時間重新開始以再繼續活動。此外,在一些實施方案中,當PESSM 110自動終止在額外計算節點上執行的程序時,PESSMl 10可自動探測當前的系統和/或程序執行狀態,使得所探測的狀態可被保存和/或提供給相應的額外能力用戶150,以便程序的隨后執行可在類似于當程序自動終止時的狀態中重新開始。可選地,如果特定的執行程序能夠保存其自己的執行狀態,則PESSM 110可替代地通知程序在終止程序之前執行其自己的執行狀態保存。關于保存程序執行狀態的示例性實施方案的額外細節包括在2008年12月12日提交的且標題為“Saving ProgramExecution State”的美國專利申請號12/334,004中,該專利特此通過引用被全部并入。如前所述,在至少一些實施方案中,具有私用額外能力池的用戶接收對該私用額外能力池中的任何程序執行能力的優先訪問(例如,以便在來自任何其他用戶的任何額外能力請求之前執行來自用戶的任何額外能力請求),但如果這樣的私用額外能力池包括對于私用池目前不由相關用戶使用的額外能力,該目前可用的額外能力可經由通用額外能力池對其他用戶變得暫時可用。此外,在至少一些實施方案中,對來自通用額外能力池的用于代表多個額外能力用戶150執行程序的額外計算節點的訪問可基于在額外能力用戶150當中的優先權,使得如果對執行程序的兩個或多個請求之間的某個數量的額外計算節點存在爭論,則具有較高相關優先權的請求將被提供對使用爭論數量的額外計算節點用于執行程序的訪問。在至少一個例證性實施方案中,可以給具有最高出價金額(例如,最高的最大出價)的請求提供高于具有較低出價的請求的優先權,出價金額之間的聯系基于其它因素來解決(例如,該請求在早些時候被接收)。在一些實施方案中,額外能力用戶150中的一個或多個可與PESSM 110的實施方案交互作用以對通用額外能力池的一個或多個可用額外計算節點(例如,當前可用的和/或在一個或多個未來的時間可用的)的訪問進行出價(例如,拍賣型),使得具有獲勝出價的用戶可接收對一個或多個可用額外計算節點的訪問。在一些實施方案中,PESSM 110可自動終止與較低優先權請求相關的目前正在一個或多個額外計算節點上執行的程序的執行,有利于在所述一個或多個額外計算節點上執行較高優先權請求的程序。在一些其它實施方案例如基于非優先權的實施方案中,PESSM 110可替代地偶然在未決的請求中循環,以在額外計算節點上執行程序,使得每個請求可以在一個或多個額外計算節點上被提供某個數量的執行時間。在一些實施方案中,PESSM 110可向與PESSM 110交互作用的一個或多個額外能力用戶150提供交互式反饋,以配置和/或請求在通用額外能力池的某個數量的額外計算節點上的程序的執行。例如,在一些這樣的實施方案中,交互式反饋可包括何時和/或多長時間所請求的程序可能例如基于當前和/或預測的要求、當前和/或可能數量的額外計算節點、一個或多個出價水平等在所指示數量的額外計算節點上執行。在一個例證性實施方案中,PESSM110可指示所建議的出價水平以及指示所請求的執行何時可能出現和/或完成的相應信息,使得額外能力用戶150可重新配置(例如,通過規定不同的出價、不同數量和/或類型的計算節點、不同的執行持續時間等)請求以滿足額外能力用戶的需要,使得請求可在較早的時間被執行,等等。如前所述,額外能力用戶150可例如基于正對用戶使用的額外程序執行能力是否是該用戶的私用額外能力池的部分、基于所使用的計算節點的數量和/或一個或多個使用因素(例如,所使用的時間的量、所消耗的共享資源的量、計算節點被使用的時間的量等)、和/或基于來自所述一個或多個額外能力用戶150對計算節點的使用的一個或多個出價來承擔與額外程序執行能力的使用聯合的各種費用。在一些實施方案中,使用通用額外計算能力池的所述一個或多個額外能力用戶150承擔的費用的一部分可以被提供給提供在該通用額外能力池中的計算節點的一個或多個其它用戶(例如,一個或多個專用能力用戶 140、一個或多個其它用戶160等)。例如,在一些實施方案中,這樣的其它用戶可被付給從額外能力用戶收集的某個數量的費用的比例份額,例如反映由其它用戶隨著時間的過去貢獻的計算節點的數量的比例份額。在一些情況下,提供給其他用戶的這樣的費用可以由PES 提供商自動貸記和/或支付給其它用戶,以便抵消由那些其他用戶引起的其它費用,例如由專用能力用戶引起的費用。
此外,在一些實施方案中,PESSM 110可向一個或多個專用能力用戶140提供電子市場(未示出),使得一個或多個專用能力用戶140可在專用能力的使用時間段期間將對其專用計算節點的訪問轉移到一個或多個其它用戶160,而在其它實施方案中,專用能力用戶 140和其它用戶160可以用在PES外部的方式安排交換。在一些實施方案中,用戶160可向專用能力用戶提供支付以交換對專用能力用戶的專用計算節點的所轉移的部分的訪問,使得購買用戶可訪問專用程序執行能力的所轉移的部分來代表購買用戶執行程序。所交換的訪問的價格可在各種實施方案中以各種方式確定,例如經由專用能力用戶所規定的固定價格,由用戶160出價或建議的價格,等等。在一些實施方案中,對專用計算節點的交換可產生,使得該交換是臨時的和/或永久的。 例如,在一些實施方案中,交換可以在規定的有限時間段和/或各種時間間隔內產生,使得購買用戶可在該規定時間期間和/或在各種時間間隔期間訪問計算節點,其后專用計算節點可重新回到專用能力用戶以由專用能力用戶使用。在其它實施方案中,交換可以是永久的,使得購買用戶可在與專用計算節點相關的任何剩余使用期內被提供對專用計算節點的訪問。在一些實施方案中,作為用于由簽約的專用能力用戶140專門使用的一個或多個計算節點的初始分配的部分,PESSM 110可將一個或多個用戶令牌分配給簽約用戶和/或可用其它方式使所分配的計算節點與簽約專用能力用戶的賬戶相關,使得計算節點的專用能力用戶的使用可為了各種目的(例如,配置、授權、 記賬等)而被跟蹤一在這樣的實施方案中,當專用能力用戶將其專用計算節點的一部分轉移到新的用戶時,任何所提供的令牌可轉移到新的用戶,和/或計算節點的部分可用其它方式與新用戶的賬戶相關。在一些實施方案中,PESSM 110的提供商可進一步收集與專用計算節點的一部分從一個用戶到另一用戶的轉移相關的費用。
雖然關于為各種類型的用戶例如可變能力用戶、專用能力用戶和額外能力用戶提供各種類型的功能的PES描述了圖IA的前述示例性實施方案,但是將認識到,各種其它實施方案可能存在,例如有或沒有各種類型的用戶中的一種或多種的實施方案。例如,將認識到,可能存在一些實施方案,其中程序執行服務為額外能力用戶提供功能,但不包括可變和 /或專用能力用戶,例如其中額外程序執行能力由與PES相關的一個或多個第三方和/或附屬實體提供,例如以允許這樣的方和/或實體貨幣化否則未被使用的計算資源。此外,一些技術可結合基于出價的PES來使用,基于出價的PES允許用戶提交對程序的執行的請求和/或在臨時基礎上在服務所提供的所有程序執行能力上安排程序的執行,使得在執行時間時具有較高優先權的請求被執行。此外,將認識到,各種用戶130、140、150和160可每個有時充當其他各種用戶的一個或多個,例如當那些用戶正訪問相應于那些其他各種用戶的類型的相關功能時,包括有時充當額外能力用戶150并使用基于那些用戶的未使用的專用能力的專用額外能力工具的專用能力用戶140。作為另一例子,在一些實施方案中,充當專用能力用戶來對專用程序執行能力執行程序的特定用戶也可充當立即響應可變能力用戶, 例如當特定的用戶希望額外的計算資源來為相應的用戶執行一個或多個程序時,等等。
此外,在至少一些額外的實施方案中,計算節點120中的單個計算節點的未使用部分(例如,未使用的處理單元時鐘周期、存儲器的未使用部分等)可供一個或多個額外能力用戶150使用,使得所述一個或多個額外能力用戶的一個或多個程序可與專用能力用戶 140和/或其它額外能力用戶150共享單個計算節點的資源。此外,在一些實施方案中,被分配來由專用能力用戶140使用的至少一些計算節點可供一個或多個可變能力用戶130使用,例如如果確定這樣的訪問不可能影響專用能力用戶(例如,在即將來臨的要求的準確預測可被預見的情況下,等等)。此外,在一些實施方案中,如果專門由一個或多個專用能力用戶140使用的某個數量的計算節點被過量預訂(例如,銷售過多和/或被提供給一個或多個其它長期用戶),使得過量預訂的計算節點在所述一個或多個專用能力用戶140請求使用它們時對那些用戶是不可用的,則在過量預訂的計算節點上執行的一個或多個程序可遷移到一個或多個其它計算節點,例如在一個或多個遠程數據中心中可用的一個或多個其它計算節點和/或可用來執行所述一個或多個程序的其它計算系統,例如由另一程序執行服務提供的計算系統,等等。
此外,雖然關于程序執行服務和程序執行能力描述了一些實施方案,但將認識到, 所述技術可用于管理對各種其它組的計算節點或其它類型的計算相關的資源的訪問。可被管理來由多個用戶使用的其它類型的計算相關的資源的例子的非排他性列表可包括下列項持久數據存儲能力(例如,在非易失性存儲設備例如硬盤驅動器上);臨時數據存儲能力 (例如,在易失性存儲器例如RAM上);消息排隊和/或傳遞能力;其它類型的通信能力(例如,網絡套接、虛·擬通信電路等);數據庫管理能力;專用帶寬或其它網絡相關的資源;輸入設備能力;輸出設備能力;處理器(例如,CPU)周期或其它指令執行能力等。例如,用戶可請求要使用的一種或多種所指示的類型的計算相關的資源,且PESSM模塊可自動確定每種所指示的類型的資源的數量(例如,基于由用戶在請求中指示的明確數量或其它量,基于與特定的資源類型相關的預定數量,基于所指示的資源類型的可用數量,等等),以為用戶提供例如第一量的易失性記憶和第二量的永久存儲。
圖IB示出程序執行服務可使用包括多個物理計算系統的一個或多個數據中心來提供的實施方案。特別是,圖IB示出程序執行服務的PESSM模塊180代表用戶管理一個或多個程序的執行的示例性實施方案。所示實例包括由PES使用的數據中心170,PES連接到在數據中心170外部的互聯網196。在本實例中,互聯網196經由私用網194提供對各種外部計算系統例如計算系統190的訪問和對其它計算系統192以及在一個或多個其它數據中心198處的另外的計算系統(未示出)的訪問。私用網194可以是例如從私用網194外部的非特許計算系統全部或部分地不可訪問的公司網。計算系統192可包括例如直接連接到互聯網(例如,經由電話或電纜調制解調器、數字用戶線(DSL)等)的家庭計算系統。此外,在至少一些實施方案中,所述一個或多個其它數據中心198可進一步由PES使用。
示例性數據中心170包括多個物理主機計算系統175、物理計算系統182和PES 的PESSM模塊180。在本實例中,主機計算系統175每個提供多個虛擬機177并具有虛擬機(VM)管理部件179來管理那些虛擬機(例如,超級監視器或其它虛擬機監控器),且一些23或所有計算系統182可類似地具有一個或多個這樣的虛擬機和/或VM管理部件(未示出)。 可選地,在其它實施方案中,在數據中心處的一些或所有物理主機計算系統可以不提供任何虛擬機,例如以替代地代表PES的最終用戶客戶直接執行一個或多個程序。此外,在一些實施方案中,各種計算系統175和182可具有不同的能力,可具有對使用的不同相關費用, 可支持不同類型的用戶程序(例如,不同尺寸的虛擬機軟件圖像實例,或具有不同類型的資源標準和/或計算資源使用的程序,例如不同模式的I/O和存儲器訪問和網絡使用),等等。 如果是這樣,特定的用戶和/或其程序可以根據可進一步被用作約束和/或偏好的一個或多個這樣的因素被分組(例如,自動),關于這些約束和/或偏好來選擇計算系統用于執行特定的程序。示例性數據中心170還包括內部網絡172,其可包括多個聯網設備(未示出),例如交換機、邊緣路由器和核心路由器,計算系統175和182以及執行PESSM模塊180的一個或多個計算系統(未示出)連接到內部網絡172。
所示PESSM模塊180執行至少一些所描述的技術,以便使用計算系統175和182來管理程序的執行,如在其它地方更詳細地描述的。當特定的計算節點或系統被選擇來執行用戶的一個或多個程序時,PESSM模塊可在一些實施方案中通過與為這個選定的計算節點 /或系統控制程序的執行的VM管理部件或其它管理部件交互作用來發起那些程序的執行, 或可以可選地直接在選定的計算節點/系統上執行程序。PES 的用戶可使用各種計算系統來與PESSM模塊180例如技術系統190或192或在其它數據中心198之一處的計算系統交互作用。
將認識到,僅為了例證的目的而提供圖IB的數據中心,以及在其它實施方案中可以用其它方式提供程序執行服務和其它軟件執行服務。例如,可替代地使用在數據中心170 外部的一個或多個其它計算系統例如計算系統190、192或在數據中心198處提供PESSM模塊180。在其它實施方案中,可以在不使用任何數據中心的情況下提供PES。
圖2A和2B示出用于管理額外計算節點的使用的技術的實例,例如可由PESSM模塊的實施方案自動執行的技術。特別是,圖2A示出從通用額外計算能力池接收并處理對使用額外計算能力的請求的實例,在圖2A中的沒有一個示例性用戶具有相關的私用額外計算能力池。圖2B繼續圖2A的實例,但用戶之一具有私用額外計算能力池,以及各種請求的處理包括該私用額外計算能力池的使用。
關于圖2A,表格200示出關于在時間205期間程序執行服務的各種用戶對程序執行服務的多個計算節點210的使用的信息,每個計算節點210的使用以連續的時間間隔 205a-205o示出。此外,表格250示出關于由程序執行服務接收以使用程序執行服務的通用額外計算能力池的額外計算節點代表用戶執行程序的示例性請求A、B、C和D的信息。在所示表格200中,陰影如下被使用具有實心灰背景的時間間隔(例如,專用計算節點212b的時間間隔205a和其它計算節點214a的時間間隔205h)指示相應的計算節點不可用來在該相應的時間間隔期間對額外程序執行能力使用(例如,它為了一個或多個其它目的而被使用和/或在其它方面是不可用的);具有實心白背景的時間間隔(例如,專用計算節點212c 的時間間隔205b和205c)或具有對角線背景的時間間隔(例如,專用計算節點212b的時間間隔205f和其它計算節點214b的時間間隔205ο)指示相應的計算節點不可用來在該相應的時間間隔期間用作額外程序執行能力;以及包含字母A、B、C或D的時間間隔(例如,專用計算節點212a的時間間隔205f-205k)指示對額外程序執行能力的相應請求的程序在該時間間隔期間在相應的計算節點上執行。作為一個例證性的實例,每個時間間隔205a-205o 可相應于一個小時或替代地相應于其它時間間隔(例如,一天、10分鐘等)。
如前所述,表格250示出由程序執行服務在各種指示的時間接收的各種請求,使得各種請求中的每個使用計算節點210在從程序執行服務可用的規定數量的額外計算節點上執行一個或多個程序。此外,在本實例中,請求中的每個具有各種規定的配置信息,包括執行請求的所述一個或多個程序的規定的最小或最大數量的計算節點;用戶愿意為在每個計算節點上執行所述一個或多個程序支付的出價費用金額(例如,單個計算節點的每使用小時的美元金額);以及請求將到期的時間的指示(例如,執行時間的規定總持續時間,在該執行時間之后請求將到期,請求將到期的規定時間,等等)。作為一個例證性的例子,請求 A在大約相應于時間間隔205c的時間(例如,恰好在時間間隔205c之前或在時間間隔205c 期間)被接收到,最小和最大數量的計算節點都指示對在單個額外能力計算節點上執行的偏好,單個額外計算節點的每使用小時出價為$0. 05,且沒有規定的到期(例如,指示該請求連續地執行和/或重新執行,直到程序執行完成)。在本實例中,所有的計算節點210可大致或確切地提供每時間間隔相同量的計算能力,而在其它實施方案中,標準量的程序執行能力可以用其它方式指示(例如,使用相應于特定數量的計算資源的邏輯“計算節點”度量, 以及使用關于它們提供的邏輯“計算節點”的數量評定的特定實際計算節點)。在其它實施方案中,各種請求可用其它方式來配置,例如以包括要使用的規定的特定類型的計算節點的一個或多個(例如,和/或這樣的計算節點的特征)、最小和/或最大出價金額、和/或一個或多個其它配置(例如,默認容差需要、執行地點和/或接近偏好等)。此外,可在一些實施方案中指示其它類型的信息,例如將對每個請求執行的一個或多個特定的程序、對該請求的總計算節點時間間隔的總數量等。
所示表格200包括多個專用能力計算節點212,例如為了專門訪問程序執行服務的一個或多個特定的專用能力用戶而分配的計算節點,并且還包括多個其它計算節點214, 例如其它類型的程序執行能力(例如,立即響應可變程序執行能力)可以采用的計算節點。 例如,專用能力用戶(未示出)可以在規定的一段時間(例如,一年)內具有對特定的計算節點212a的優先訪問,使得用戶可訪問計算節點212a以代表用戶在規定的這段時間期間的任何時間執行程序,雖然這樣的訪問可能在獲得訪問的用戶一方遭受延遲期和/或一個或多個交互作用(例如,在特定的時間使用計算節點212a的意圖的通知,在計算節點212a上執行程序的請求,等等)。在其它實施方案中,專用能力用戶(未示出)可替代地具有與計算節點212a相同的計算資源的計算節點的優先訪問(例如,相同的處理能力、記憶等),但沒有特別分配的計算節點212,使得用戶可被提供對等效于212a的用于代表用戶執行程序的且可供使用的任何計算節點212的訪問。在各種這樣的實施方案中,程序執行服務可確保等效于212a的足夠數量的專用計算節點可由可以用各種方式具有對這樣的計算節點的優先訪問的專用用戶使用(例如,維持一組這樣的計算節點和/或以其它方式保留特定數量的這樣的節點,等等)。
在表格200中,在間隔205a_c期間,專用計算節點212c例如基于未被計算節點 212c分配到的專用能力用戶使用而被確定為額外能力,并因此可供額外能力用戶使用。例如,專用能力用戶可與程序執行服務交互作用以指示計算節點212c可以例如在時間間隔 205a之前的某個時間用于額外程序執行能力,或程序執行服務可替代地自動確定計算節點212c未被使用。在所示實例中,所有其它所示計算節點(例如,212a-b、212d和214a_b)被確定為在間隔205a-205c期間是可用的。在時間間隔205c期間,請求A被接收到,且程序執行服務確定為了 $0. 05/小時的用戶規定的費用而在可用額外能力計算節點212c上執行與請求A相關的程序,并在計算節點212c上發起程序的執行。在其它實施方案中,程序執行服務可替代地具有一些或所有額外能力用戶使用的固定價格費用。
在時間間隔205d,程序執行服務確定計算節點212c不再可用來滿足額外程序執行能力請求(例如,基于從收回計算節點的使用的專用能力用戶接收的指示),所以與請求A 相關的程序的執行在計算節點212b上終止。在間隔205f處,程序執行服務確定具有足夠的資源來執行請求A的兩個計算節點(例如,專用計算節點212a和212b)作為額外能力計算節點是可用的,并確定在專用計算節點212a上重新開始請求A的程序的執行。在所示實施方案中,關于專用計算節點212b的在時間間隔205f處的對角線指示節點212b在該時間間隔期間對用作額外計算能力是可用的,但對額外計算能力使用不是優選的,且因此不被選擇來滿足請求A。計算節點212b由于各種原因不是優選的,例如它具有短和/或不確定的可用性持續時間(例如,如由程序執行服務例如基于來自它被分配給的專用能力用戶的指示、 基于以前的使用歷史、基于預料的使用等來確定的),而節點212a可被確定為具有可能比節點212b相對更長的可用性。在這樣的情況下,程序執行服務可對選擇用于執行額外能力用戶的請求的具有較長可能的可用性的計算節點有偏好,例如以最小化必須在各種計算節點 210上開始/停止執行程序,等等。因此,在本實例中,計算節點212b在時間間隔205f期間未被使用,但如果另一額外計算能力請求在時間間隔205f之前被接收到,則節點212b仍然可用于該另一請求。
在本實例中,請求B在間隔205g處被接收到,如表格250所示的。在這種情況下, 只有一個在那個時間可用的額外計算節點(例如,專用計算節點212a),且程序執行服務例如基于具有比請求A (例如,$0. 05/小時)更高的出價金額或否則具有更高的優先權的請求 B (例如,$0. 08/小時)來確定終止請求A的程序而不是請求B的程序的執行。在本實例中, 請求B在時間間隔205g-205i內為了 $0. 08/小時的費用而在專用計算節點212a上連續被執行。在時間間隔205i處,兩個計算節點作為額外計算節點(專用計算節點212a和212d) 是可用的,每個計算節點具有用于執行請求B的程序的足夠資源-因為請求B規定最多兩個計算節點,在所示實施方案中請求B的程序保持在節點212a上執行,且也在節點212d上被發起。
在時間間隔205j處,三個專用計算節點被確定為可用作額外能力計算節點(計算節點212a、212c和212d),且請求C被接收到。在這個實施方案中,請求B的程序從在專用計算節點212d和212a上的執行終止,且與請求C相關的一個或多個程序在基于具有對在最多三個節點上執行的所指示的優先權和具有比請求A和B相對高的出價金額(例如,$0. 10/ 小時)的請求C而在所有三個可用額外計算節點上被執行,因而提供比對請求A和B更高的對請求C的優先權。在時間間隔205k處,兩個專用計算節點例如基于為了其它目的而被收回或以其它方式變得不可用的計算節點212d來被確定為可用作額外計算節點(計算節點 212a和212c)。與請求C相關的一個或多個程序在計算節點212d上被終止,但例如基于對請求C的優選的最大和最小數量的計算節點而保持在節點212a和212c上執行,且請求C具有比請求A和B更高的優先級。請求C的程序繼續在時間間隔2051處在計算節點212c上執行,但在計算節點212a上的執行由于計算節點變得對額外計算能力使用不可用而終止。 在時間間隔2051之后,程序執行服務確定請求C在時間間隔205j-2051期間被執行了至少三個小時,并因此到期。因此,程序執行服務終止在額外能力計算節點上與請求C相關的程序的執行,且請求C不再被處理為待滿足的未決請求。在時間間隔205m處,一個計算節點 (專用計算節點212c)被確定為繼續對用來用作額外程序執行能力,且與請求B相關的程序的執行在計算節點上重新開始。
在時間間隔205m期間,請求B的程序的執行結束(例如,基于在總計5個小時的執行之后完成其執行的程序,或替代地基于被接收以取消來自提交了請求B的額外能力用戶的請求B的指令(未示出)),且請求B不再被處理為待滿足的未決請求。此外,在這個時間處或附近,具有與以前接收的請求A相等的出價金額(例如,$0.05/小時)的請求D被接收到。在這種情況下,程序執行服務基于在比D更早的時間接收到的請求A來確定在下一時間間隔205η處在可用專用計算節點212c上重新開始執行與請求A相關的程序而不是與請求D相關的程序。請求A繼續在節點212c上執行,直到在時間間隔205ο之后的某個未知的未來時間為止。在間隔205ο處,其它計算節點214b之一對用作額外程序執行能力變得可用,并被確定為非優選的額外能力計算節點,但請求D的程序仍然在其它計算節點214b 上執行,因為沒有其它額外計算節點是當前可用的。
在圖2A的所示實例中,程序執行服務可進一步跟蹤相應于各種請求A-D的計算節點210的使用,使得各種相關的用戶承擔相應于各種請求所指示的出價金額的費用。此外, 程序執行服務也可跟蹤哪個計算節點210被使用和/或可供額外能力用戶使用,以便可給與那些計算節點相關的一個或多個用戶提供從額外能力用戶收集的費用的某個部分。
圖2B繼續圖2A的實例,但用戶之一具有私用額外計算能力池,且各種請求的處理包括私用額外計算能力池的使用。圖2B以與圖2A的方式類似的方式示出信息200和 250,但有一些改變以反映私用額外計算能力池的使用,如下所述。此外,相對于圖2A,新信息260和270被添加到圖2B。
特別是,在圖2B的實例中,提交請求B的用戶(在圖2B中被稱為請求者B*)也是專用能力用戶,并在包括時間間隔205a-205o的一段時間內被分配計算節點212a的專門使用,如信息270所示的。因此,在圖2B中,計算節點212a的陰影改變以包括雙向影線來反映計算節點212a的任何未使用的能力可用來用作請求者B*的私用額外能力池。在本實例中,計算節點212a的時間間隔205a-205e和2051_205o相應于請求者B*對計算節點212a 的專門使用,且因此計算節點212a在時間間隔205f-205k期間可用來用作請求者B*的私用額外計算能力池的部分。如在其它地方更詳細討論的,來自請求者B*的請求具有對私用額外計算能力池的使用的優先權。
在圖2B中對時間間隔205a_205i的分配與圖2A中的相同。例如,來自請求者B* 的請求B在圖2A中已經基于具有在圖2A中比請求A高的對通用額外計算能力池的優先權而被分配來在圖2A中的時間間隔205g-205i內使用計算節點212a,且因此在圖2B中的私用額外計算能力池的計算節點212a的使用不改變那些現有分配。然而,在時間間隔205j 內接收到請求C之后,分配在圖2B中相對于圖2A基于私用額外計算能力池的使用而改變。 特別是,在圖2A中,對于通用額外計算能力池,給請求C比請求A和B更高的優先權,且因此在圖2A中在時間間隔205j處可用的所有三個額外計算能力節點開始執行請求C的程序。然而關于圖2B,來自請求者B*的請求B繼續在時間間隔205j處對請求者B*的私用額外計算能力池中的額外計算能力有最高優先權一因此,請求C的程序在圖2B中類似地開始在時間間隔205j處在計算節點212c和212d上執行,但請求B的程序在圖2B中繼續在該時間間隔處以與圖2A的方式不同的方式在計算節點212c和212d上執行。特別是,因為來自請求者B*的請求在時間間隔205j處是可用的,該請求(在本實例中,請求B)被給了使用計算節點212a的額外計算能力的優先權,該計算節點212a是請求者B*的私用額外計算能力池的部分。類似地,在隨后的時間間隔205k處,如果請求B的程序繼續執行,那些程序將繼續為了相同的原因基于比請求C對請求者B*的私用額外計算能力池的請求B的更高優先權在計算節點212a上執行。然而,在本實例中,因為請求B在總計5小時的程序執行之后結束,請求B的程序在時間間隔205j之后結束。因此,在時間間隔205k處計算節點212a的額外計算能力返回到通用額外計算能力池,且請求C的程序開始在時間間隔205k內在計算節點212a上執行。
因此,私用額外計算能力池的使用在圖2B的實例中為請求者B*提供各種益處。 例如,作為第一個益處,請求B在圖2B的實例中更快地完成,特別是到圖2B中的時間間隔 205 j結束而不是在圖2A中的時間間隔205m結束為止。此外,作為第二益處,在圖2B的實例中,請求B的性能比圖2A中的請求B的性能對請求者B*更廉價地執行。特別是,在圖 2B的實例中,以與使用專用計算節點212a的進行中的邊際成本相同的費率向請求者B*收取請求者B*對私用額外計算能力池的使用的費用,該費率在本實例中是每時間間隔小時 $0. 04,如在信息270中所示的。因此,雖然在圖2A中的請求B的性能對于請求B的程序的總計5個小時的每個的執行將使請求B花費每時間間隔小時$0. 08的出價(即,兩倍于對使用專用計算節點212a的進行中的邊際成本的每個時間間隔小時的金額),但在圖2B中,執行請求B的成本對于私用額外計算能力池被使用的總計5個小時中的四個小時僅為每時間間隔小時$0. 04,如在成本信息260g-260j中所示的。對于在圖2B中請求B在作為通用額外計算能力池的部分的計算節點212d上執行的其它時間間隔小時,以每時間間隔小時$0. 08 的請求B出價收取成本,如在成本信息260z中所示的。因此,用于執行圖2B中的請求B的總成本是$0. 24,而用于執行圖2A中的請求B的總成本是$0. 04。雖然根據額外計算能力的有限的使用量,在本實例中絕對數字小,但將認識到,在真實世界情況下將這樣的額外計算能力增加相當大的量可能導致相應地較大的實際成本節約(例如,如果使用增加一千倍, 根據$2400而不是$4000的實際成本,在本實例中相應的節約將是31600)。
此外,在其它情況下,甚至可以比在圖2B的實例中更廉價地執行請求B。例如,在圖2B中,使用通用額外計算能力池(即,對計算節點212d的時間間隔205i的使用)來執行請求B的程序的執行的總計5個小時中的一個(S卩,總合計執行小時的20%),且不使用來自私用額外計算能力池的可用的其它小時(即,對計算節點212a的時間間隔205k)。因此,在其它情況下,請求B的程序的執行可替代地對請求B的程序的全部執行使用私用額外計算能力池,因此對該執行的全部以私用額外計算能力池的較低成本被收費。私用額外計算能力池的這樣的使用可以由例如替代地具有規定的最大的一個計算節點的請求B觸發(使得只有私用額外計算能力池被使用,如果它是可用的)。可選地,在其它實施方案中,請求者B* 可規定請求B (或一個或多個其它請求)只使用他/她的私用額外計算能力池來執行,而不是也使用通用額外計算能力池作為對私用額外計算能力池的補充。CN 102934083 A書明說19/30 頁
此外,在一些實施方案中,可進一步以其它方式使用私用額外計算能力池以提供其它益處。例如,考慮與圖2B的情況類似的情況,但其中請求B對于通用額外計算能力池的使用具有比請求C高的優先權(例如,如果請求C具有$0. 07而不是$0. 10的出價),其中請求B使用總計6個小時而不是總計5個小時來完成其程序的執行,且其中請求B規定使用最多一個計算節點而不是兩個。在這樣的情況下,并使用對前面圖2B描述的分配方案, 請求B將不從通用額外計算能力被選擇來在時間間隔205i中使用計算節點212d (給出最多一個計算節點和對使用私用額外計算能力池的優先權),但將從私用額外計算能力被選擇來在時間間隔205k中繼續使用計算節點212a。然而,在這種情況下,在時間間隔205i結束時,請求B在完成以前仍將具有I個額外的執行小時,但在時間間隔2051處在私用額外計算能力池中的計算節點212a的可用性將基于在該時間間隔處請求者B*對專用能力的重新開始的使用而消失。因此,在這種情況下的一個選擇將是在時間間隔205k結束時在計算節點212a上終止請求B的程序的執行,并在時間間隔2051期間在計算節點212c上在一個額外的小時內立即重新開始那些程序的執行。然而,在其它實施方案中,可采取其它可能的行動。例如,為了在結束以前僅留下短的時間時避免終止和接著重新開始請求B的程序的執行的開銷,請求B的那些程序可替代地被允許在一些或全部時間間隔2051期間在計算節點212a上完成其執行。雖然希望在時間間隔2051中重新開始專用能力使用的請求者B* 可能在這種情況中被推遲,但是適應在時間間隔2051中專用能力使用的這樣的重新開始的可選方案包括選擇另一計算節點來在至少時間間隔2051期間臨時使用請求者B*的專用能力使用,例如計算節點212c。以這種方式,請求者B*在時間間隔2051中接收期望的專用能力使用,且請求B的程序的執行被允許更有效和快速地完成。盡管如此,在這樣的實例中,為了完成請求B的程序的執行而在時間間隔2051期間計算節點212a的使用在至少一些這樣的實施方案中可以不為了成本目的而被處理為私用額外計算能力池的部分,使得請求者B*可在時間間隔2051期間為了計算節點212c的使用而接收$0. 04的專用能力使用價格,但在時間間隔2051期間使用計算節點212a執行請求B的程序可按$0. 08的通用額外計算能力池價格來被收費以反映請求B的出價。將認識到,可以在其它實施方案和情況中使用其它可選方案。
此外,將認識到,為了例證性目的而提供前面的實例,且其它實施方案可在各種方面與該實例不同。例如,雖然計算節點210被描述為相同的(例如,具有相同的計算資源),但是可提供其它實施方案,其中各種計算節點210可以是具有變化的特征的不同類型(例如, 不同數量的處理能力、記憶、平臺規范等)。在一些這樣的實施方案中,各種請求可包括在執行與請求相關的程序時使用的一種或多種特定類型的計算節點的指示,且那些請求可以只在相應的指定類型的計算節點上被執行。此外,在一些實施方案中,不是基于未使用的專用計算節點和如所示的其它計算節點的額外計算能力,可存在只有一組計算節點和/或另外組的計算節點可有助于可用來執行額外能力用戶的請求的額外能力計算節點的實施方案。 此外,在一些實施方案中,其它計算節點214的至少一些可包括由一個或多個第三方提供給程序執行服務的計算節點。
如前所述,各種類型的功能可在各種實施方案中被提供并由PES使用,且功能可以用各種方式被提供。例如,在一些實施方案中,從PES可用的程序執行能力可包括用于例如經由多個物理計算機代表用戶執行程序的多個計算節點,多個物理計算機經由能夠在計29算機之間發送數據的一個或多個網絡或其它數據交換介質而相互連接。至少一些計算機在一些實施方案中每個包括足夠的計算相關的資源來同時執行多個程序(例如,足夠的可寫內存、非易失性存儲器、CPU循環或其它CPU使用度量、網絡帶寬、交換空間等),且在一些這樣的實施方案中的至少一些計算機每個可托管多個虛擬機計算節點,每個虛擬機計算節點可每個代表不同的用戶執行一個或多個程序。此外,在各種實施方案中,PES可代表多個用戶執行各種類型的程序。例如,代表用戶執行的這樣的程序可包括一個或多個操作系統、應用(例如,服務器和/或其它軟件應用)、應用程序、庫等。此外,在至少一些實施方案中,這樣的程序可包括可執行軟件圖像,例如虛擬機圖像,其可導入或以其它方式可裝在一個或多個虛擬機計算節點上,且每個虛擬機圖像可包括操作系統軟件、一個或多個應用程序的軟件、和/或配置信息等。
在至少一些實施方案中,通過PES在一個或多個計算節點上的一個或多個程序的執行可響應于對那些程序的立即執行的當前執行請求而發起。可選地,該發起可基于以前接收的程序執行請求,其被安排或以其它方式保留那些程序在現在_當前時間的然后_未來執行。程序執行請求可以用各種方式例如直接從用戶(例如,經由交互式控制臺或由程序執行服務提供的其它GUI)或從用戶的執行程序接收,該執行程序自動發起一個或多個其它程序或它自己的其它實例的執行(例如,經由程序執行服務所提供的API或應用編程接口, 例如使用Web服務的API)。程序執行請求可包括在一個或多個程序的執行的發起中使用的各種信息,例如待執行的程序的可執行或其它拷貝、以前注冊或以其它方式提供來執行的程序的指示、以及將被同時執行的程序的很多實例(例如,被表示為個別期望數量的實例、 最小和最大數量的期望實例等),以及用于執行一個或多個程序的各種其它類型的偏好和/ 或要求(例如,資源分配、用于執行的地理和/或邏輯位置、與其它程序和/或計算節點的執行接近度、定時相關的標準等)。
在接收到在所指示的時間執行程序的一個或多個實例的請求之后,PES可確定在執行程序實例時使用的一個或多個計算節點。在一些實施方案中,待使用的計算節點的確定在請求時被執行,即使用于未來的執行。在其它實施方案中,用于一個或多個程序實例的未來執行的計算節點的確定可被推遲到以后的時間,例如在基于接著可用的信息的未來執行時間。在一些實施方案中,哪個計算節點用于代表用戶執行一個或多個程序的確定可在執行請求之前作出,例如在用戶簽約和/或注冊來使用PES時的時間,和/或在對執行用戶的程序的請求的另一時間。例如,在一些這樣的實施方案中,一個或多個計算節點可在一段時間內與用戶相關,使得程序可代表該用戶在相關的計算節點上在該時期期間的任何時間被執行,例如在請求被接收以在該時期期間為用戶執行軟件的任何時間。此外,在一些實施方案中,使用哪個計算節點來代表用戶執行程序的確定可在一個或多個計算節點和/或一個或多個計算節點的計算資源變得可用來執行用戶程序時作出,例如當計算節點是未使用的和/或否則可用來執行程序時的時間在一個或多個計算節點上執行一個或多個未決請求的程序。
使用哪些計算節點來每個程序實例的確定可用各種方式作出,包括基于在請求中規定的或以其它方式為程序和/或相關的用戶規定的任何偏好和/或要求(例如,在注冊時,等等)。例如,如果為程序實例(例如,內存和/或存儲器、CPU類型、循環或其它執行度量、網絡容量、平臺類型等)的執行對優選和/或所需的資源確定標準,則執行程序實例的適當計算節點的確定可至少部分地基于計算節點是否具有可用來滿足那些資源標準的足夠資源。與執行和配置程序以在程序執行服務上執行有關的另外細節包括在2006年3月31 日提交的且標題為“Managing Execution of Programs by Multiple Computing Systems,, 的未決美國專利申請號11/395,463中,該申請特此通過引用被全部并入。
此外,如前所述,在至少一些實施方案中,使用自動終止的額外程序執行能力的程序的執行可在稍后的時間由PES自動重新發起。例如,在這樣的情況中,PES可繼續試圖執行程序,直到所請求的執行完成(例如,直到被用戶取消或以其它方式明確終止,直到一個或多個程序完成了一個或多個任務的指示被接收到,等等),直到特定時間的出現(例如,直到到期時間的出現,直到累積執行時間的出現,等等),直到特定數量的執行的出現,不確定地,等等。
在一些實施方案中,費用可與PES的使用相關,使得PES可代表用戶執行程序以由換取該用戶對一個或多個費用的支付。例如,在一些實施方案中,可以基于被分配來代表用戶執行一個或多個程序的程序執行能力的數量和/或類型,例如基于為執行用戶的程序而分配的很多處理單元中的一個或多個、記憶的量、存儲的量、網絡資源的數量等而向用戶收取費用。在一些實施方案中,費用可基于其它因素,例如用于執行程序的計算資源的各種特征,例如基于CPU容量或性能(例如,32位、64位等)等。在一些實施方案中,可基于各種使用因素例如每次服務的使用的價格、計算服務被使用的每時間單位的價格、每個所使用的存儲的價格、每傳輸進和/或出的數據的價格等來收取費用。在至少一些實施方案中,如在下面更詳細地討論的,費用可基于各種其它因素,例如與程序執行能力的可用性(例如,變化的可用性程度,例如被保證的可用性和/或可變的可用性)有關,和/或與執行程序有關的各種特性(例如,執行的連續性、容錯等)。在至少一些實施方案中,PES的提供者可提供用于代表多個用戶執行程序的服務或功能的各種層次、類型和/或等級的一個或多個,且在一些這樣的實施方案中,各種費用可以與服務的各種層次、類型和/或等級相關。例如,在一些實施方案中,可向用戶收取與由PES提供的專用程序執行能力功能的使用相關的一種或多種費用,例如分別比與PES的立即響應可變程序執行能力服務的可比較的使用相關的費用低的費用。較低的費用可反映例如在規定的使用時間段(例如,很多星期、月、年等)內進入長期協定的用戶,例如以在協議期限(預先和/或周期性的)內例如支付一種或多種特定的費率。此外,例如層次可用于由PES提供的特定類型的功能,例如以在第一層次對第一量的專用程序執行能力功能收費(例如,一直到正被使用的計算節點的規定的第一閾值),以在第二層次(例如較低價格層次)對第二量的專用程序執行能力功能收費(例如,高于規定的第一閾值并一直到正被使用的計算節點的規定的第二閾值),等等。層次可進一步基于各種因素,而不是在至少一些實施方案中使用的功能的量,不管是替代地還是除了基于所使用的功能的量以外。與相關于程序執行服務的各種費用有關的額外細節包括在2007年12 月 21 日提交的且標題為“Providing Configurable Pricing for Execution of Software Images”的未決每個專利申請號11/963,331中,該申請特此通告引用被全部并入。
對專用計算能力的時期的使用時間段可在各種實施方案中以各種方式指定,例如以指示用戶訪問專用程序執行能力的規定時間段(例如,很多天、星期、月、年等)、可以為用戶連續執行一個或多個程序的持續時間(例如,一個或多個程序可在任何給定的時期內執行的多個小時,例如一天一小時、一星期一小時等)、一個或多個程序可執行的時間窗(例如,在下午1:00和下午3:00之間,每隔一天等)。如前所述,在一些實施方案中,可為PES的用戶提供電子市場,使得專用程序執行能力用戶可提供向一個或多個其它用戶提供對專用程序執行能力的其規定的使用時間段的一些或全部,以交換來自那些一個或多個其它用戶的支付,使得一個或多個其他用戶可使用專用程序執行能力的所提供的部分來代表一個或多個其他用戶執行程序,且專用程序執行能力用戶可接收對這樣的使用的支付。在其它實施方案中,專用程序執行能力用戶可臨時提供其專用程序執行能力的某個部分的使用,用于由一個或多個用戶部分地基于具有例如由一個或多個用戶對專用程序執行能力(例如, 比由專用程序執行能力用戶支付的費率大的費率)的使用支付額外費用的意愿指示的程序執行能力的緊急需要的一個或多個其它用戶來使用,且在至少一些這樣的實施方案中,從一個或多個用戶收集的費用的一部分和/或全部可被提供給專用能力用戶。
此外,在各種實施方案中,各種其它類型的功能可被提供并由PES使用,如在其它地方更詳細地討論的。
圖3是示出適合于執行由多個用戶管理計算節點的使用的系統的示例性實施方案的方框圖。特別是,圖3示出適合于執行程序執行服務系統管理器模塊以及各種用戶計算系統350、計算節點360和其它計算系統380的實施方案的服務器計算系統300。在所示實施方案中,服務器計算系統300具有包括CPU 305、各種I/O部件310、存儲器320和內存 330的部件。所示I/O部件包括顯示器311、網絡連接312、計算機可讀介質驅動器313和其它I/O設備315 (例如,鍵盤、鼠標、揚聲器等)。此外,所示用戶計算系統350具有與服務器計算系統300的部件類似的部件,包括CPU351、I/O部件352、存儲器354和內存357,雖然為了簡潔起見一些細節沒有在本實例中示出。其它計算系統380和技術節點360也可每個包括與關于服務器計算系統300示出的一些或全部部件類似的部件,但為了簡潔起見這樣的部件沒有在本實例中示出。
程序執行服務系統管理器模塊340的實施方案在內存330中被執行,且它通過網絡390 (例如,經由互聯網和/或萬維網、經由私用蜂窩網絡等)與計算系統350和380以及計算節點360交互作用。在這個示例性實施方案中,PESSM 340可例如包括軟件指令,其在被執行時是一個或多個處理器(例如,CPU 305)執行所述技術的一些或全部的程序,包括與由與用戶計算系統350交互作用的各種用戶(未示出)管理多個計算節點360的使用有關的功能,例如結合由PESSM 340管理的程序執行服務。其它計算系統350和380以及計算節點360可以執行各種軟件作為與PESSM的交互作用的部分。例如,用戶計算系統350可以執行內存357中的軟件以與PESSM 340交互作用(例如,作為Web瀏覽器或專業化客戶端側應用程序的部分),例如以代表這些系統的用戶以各種方式在一個或多個計算節點360上配置和/或請求程序的執行,例如與可變執行能力使用、專用執行能力使用和/或額外執行能力使用有關。此外,用戶計算系統350的一個或多個用戶可與PESSM 340交互作用以執行各種其它類型的行動,如在其它地方更詳細地討論的。與PESSM模塊340的功能有關的各種信息324可存儲在存儲器320中,例如與私用額外能力工具有關的信息(例如,跟蹤的當前可用性、與配置和/或其它配置信息有關的用戶指令等)和其它信息322 (例如,與用于代表多個用戶執行程序的配置、執行和/或注冊有關的信息)。
在本實例中,PESSM系統340包括三個組成模塊,包括專用能力使用管理器模塊 342、額外能力使用管理器模塊344和立即響應可變能力使用管理器模塊346。專用能力使用管理器模塊342通過用戶管理專用計算能力的使用,圖6示出在一個示例性實施方案中相應于模塊342的操作的例程。額外能力使用管理器模塊344通過用戶管理通用和私用額外計算能力工具的使用,圖5A和5B示出在一個示例性實施方案中相應于模塊344的操作的例程。立即響應可變能力使用管理器模塊346通過用戶管理立即響應可變計算能力的使用,圖7不出在一個不例性實施方案中相應于模塊346的操作的例程。在其它實施方案中, 由PESSM模塊340提供的功能可用其它方式構造,包括任選地不包括組成模塊342-346中的一個或多個(例如,對于不提供立即響應可變能力使用的實施方案不包括立即響應可變能力使用管理器模塊346)。
在PESSM模塊340接收到在一個或多個計算節點360上執行一個或多個程序的請求(或其它指示)之后,PESSM模塊340確定相應于要使用的程序執行能力的所指示的類型的組成模塊342-346,并將該請求轉發到所確定的組成模塊。所確定的組成模塊和PESSM模塊340接著執行各種操作以對請求作出響應,例如選擇將執行一個或多個程序的一個或多個計算節點,并在那些計算節點上發起那些程序的執行。此外,PESSM模塊340 (包括組成模塊342-346)可進一步執行操作來與計算節點360交互作用以在計算節點上終止所發起的程序的執行,以將程序中的一個或多個遷移到一個或多個其它計算節點360或計算系統 380,以監控一個或多個計算節點360或以其它方式與一個或多個計算節點360交互作用以跟蹤那些計算節點的使用,等等。計算節點360在各種實施方案中可具有各種形式,例如以包括多個物理計算系統和/或在一個或多個物理計算系統上執行的多個虛擬機。在一些實施方案中,服務器計算系統300和計算節點360可以是數據中心的部分或其它組的協同定位的計算系統,或可以在其它情況下是私用網絡的計算節點。此外,在一些實施方案中, PESSM模塊340可與一個或多個其它計算系統380交互作用以發起或終止在那些計算系統上一個或多個程序的執行,例如如果計算系統380由一個或多個第三方參與者提供,第三方參與者提供額外程序執行能力以由其他用戶使用。在一些實施方案中,PESSM模塊340可進一步或替代地管理對一種或多種類型的計算相關的資源或服務而不是程序執行服務(例如,永久或臨時數據存儲服務、消息發送服務、數據庫服務等)的訪問。
將認識到,計算系統300、350和380以及計算節點360僅僅是例證性的,且不是用來限制本發明的范圍。計算系統和/或節點可以替代地每個包括多個交互的計算系統或服務,且計算系統和/或節點可連接到未示出的其它設備,包括通過一個或多個網絡例如互聯網,經由Web,或經由私用網絡(例如,移動通信網絡等)。更一般地,計算節點或其他計算系統可包括可與所述類型的功能交互作用并執行這些功能的硬件或軟件的任何組合,沒有限制地包括桌上型或其它計算機、數據庫服務器、網絡存儲設備和其它網絡設備、PDA、蜂窩電話、無線電話、尋呼機、電子組織器、互聯網器具、基于電視的系統(例如,使用機頂盒和/ 或個人/數字視頻記錄器)、以及包括適當的通信能力的各種其它消費者產品。此外,由所示PESSM模塊340提供的功能及其組成模塊在一些實施方案中可分布在額外的模塊中或在較少的模塊中組合。類似地,在一些實施方案中,PESSM模塊340的一些功能可以不被提供和/或其它額外的功能可能是可用的。
還將認識到,雖然各種項目在被使用時被示為存儲在內存中或存儲器上,但這些項目或其部分可以為了存儲管理和數據整體性的目的而在存儲器和其它存儲設備中傳輸。 可選地,在其它實施方案中,軟件PESSM模塊340和/或組成模塊的一些或全部可在另一設CN 102934083 A書明說24/30 頁備上的存儲器中執行,并經由計算機間通信與所示計算系統通信。此外,在一些實施方案中,PESSM模塊340和/或組成模塊的一些或全部可以用其它方式例如至少部分地在固件和/或硬件(包括但不限于一個或多個專用集成電路(ASIC)、標準集成電路、控制器(例如, 通過執行適當的指令,并包括微控制器和/或嵌入式控制器)、現場可編程門陣列(FPGA)、 復雜可編程邏輯設備(CPLD ))中實現或提供。模塊和數據結構中的一些或全部也可存儲(例如,作為軟件指令或結構數據)在計算機可讀介質如硬盤驅動器、內存、網絡或由適當的驅動器或經由適當的連接讀取的便攜式介質物品上。模塊和數據結構也可作為所產生的數據信號在各種計算機可讀傳輸介質(包括基于無線的和有線的/基于電纜的介質)上被傳輸 (例如,作為載波或其它模擬或數字傳播的信號的部分),或可采取各種形式(例如,作為單個或復用的模擬信號的部分,或作為多個分立的數字分組或幀)。這樣的計算機程序產品在其它實施方案中也可采取其它形式。因此,可以使用其它計算機系統配置來實踐本發明。
圖4是程序執行服務系統管理器例程400的示例性實施方案的流程圖。例程可以通過例如分別圖IA和IB的PESSM模塊110和180、執行相應于圖2A和2B的操作的PESSM 模塊(未示出)和/或圖3的PESSM模塊340的執行來提供,例如以幫助管理多個計算節點和/或其它類型的程序執行能力的使用,以及在一些情況下執行其它類型的管理操作。在這個所示實施方案中,例程400管理程序執行服務的使用的各種方面,程序執行服務提供程序執行能力用于代表多個用戶執行程序。
在所示實施方案中,例程在塊405開始,在塊405中,信息或請求被接收到。例程繼續到塊410以確定所接收的請求或信息是否與專用能力使用有關。如果是這樣,例程繼續到塊415以執行與管理專用計算能力使用有關的例程,這樣的例程的一個示例性實施方案關于圖6被更詳細地討論。如果替代地在塊410確定塊405的信息或請求與專用能力使用無關,則例程繼續到塊430以確定信息或請求是否與額外計算能力使用有關。如果是這樣, 例程繼續到塊435以執行與管理額外計算能力使用有關的例程,這樣的例程的一個示例性實施方案關于圖5A-5B被更詳細地討論。如果替代地在塊430確定塊405的信息或請求與額外能力使用無關,則例程繼續到塊440以確定信息或請求是否與立即響應可變計算能力使用有關。如果是這樣,例程繼續到塊445以執行與管理額外計算能力使用有關的例程,這樣的例程的一個示例性實施方案關于圖7被更詳細地討論。
如果替代地在塊440確定與可變能力使用有關的信息或請求沒有被接收到,則例程繼續到塊460以確定信息或請求是否與次級專用能力市場有關,且如果是這樣,例程繼續到塊462以在適當時執行與次級專用能力市場有關的一個或多個所指示的操作。例如, 在各種實施方案中,這樣的操作可包括來自專用能力用戶的出售和/或租借不同量的用戶專用程序執行能力的一個或多個指示、來自一個或多個其他用戶的購買和/或租借來自專用能力用戶的程序執行能力的指示、來自可能愿意為不同量的程序執行能力支付額外的費用的一個或多個緊急用戶的指示,等等。
在塊415、435、445和462之后,或如果替代地在塊460確定與次級專用能力市場有關的信息或請求沒有被接收到,則例程繼續到塊470以任選地基于在塊405中接收的信息或請求執行任何用戶記賬或退款活動,或如以其它方式發起的(例如,周期性地),例如以基于提供給用戶的程序執行功能來支付和/或收集來自一個或多個用戶(例如,專用能力用戶、可變能力用戶、額外能力用戶和/或其他用戶)的費用,和/或為了由用戶提供或啟用34的功能而支付和/或償還一個或多個用戶(例如,專用能力用戶和/或提供計算資源以由額外能力用戶使用的其它用戶,等等)。
在塊470之后,例程繼續到塊475以任選地監控在使用中的任何通用額外計算能力池和私用額外計算能力池的額外程序執行能力,使得程序執行能力可從可供一個或多個額外能力用戶使用的額外程序執行能力被添加和/或移除。在其它實施方案中,例程可接收程序執行能力的當前和/或預期使用的其它指示,例如來自程序執行服務的一個或多個計算資源(例如,具有可指示當前使用狀態的常駐監控器的計算節點)、來自一個或多個用戶的通知,和/或可以用其它方式確定計算節點何時被和/或可能被使用、未使用或未充分使用。
接著,例程繼續到塊495以任選地執行一個或多個其它所指示的操作。在一些實施方案中,這樣的操作可包括配置用戶的程序執行服務的各種資源和/或功能的使用、簽約或注冊操作、調度操作等。在塊495之后,例程繼續到塊498以確定是否繼續,例如直到明確的指示以終止例程的執行被接收到。如果是這樣,例程返回到塊405,而如果不,例程繼續到塊499并結束。
圖6是專用能力使用管理器例程600的示例性實施方案的流程圖。例程可通過例如圖3的PESSM模塊340的專用能力使用管理器模塊342的執行或作為分別圖IA和IB的 PESSM模塊110和180和/或執行相應于圖2A和2B的操作的PESSM模塊(未示出)的部分來提供,并可從圖4中的例程400的塊415發起,或以其它方式調用。
在所示實施方案中,例程600在塊605開始,在塊605,與專用能力使用有關的請求、信息和/或其它指示被接收到。在塊612,例程接著確定請求是否從用戶接收到以對專用程序執行能力的使用簽約。如果是這樣,例程繼續到塊614,在塊614中,相應的信息從簽約用戶得到,且與對專用程序執行能力的使用的簽約有關的各種操作被執行。例如,在一些實施方案中,用戶可選擇和/或指示用戶將愿意專門訪問的一個或多個計算節點。如在其它地方討論的,在一些實施方案中,用戶可從各種類型的計算節點的一個或多個選擇,和/ 或可用其它方式指定不同數量和/或類型的期望的計算資源(例如,處理單元類型/數量、 記憶量、平臺規范等)。此外,簽約用戶也可指示期望的使用時間段,在該時間段用戶將愿意專門訪問(例如,小時、星期、年等的數量),和/或可提供其它信息(例如,記賬信息、代表用戶執行的程序的指示、用于在一個或多個未來的時間執行一個或多個程序的調度信息,等等)。在簽約者提供與期望的專用程序執行能力的類型和/或數量有關的信息之后,例程繼續到塊616,在塊616,適當數量的所請求的程序執行能力被分配以由簽約用戶專門使用, 如果可能。如在其它地方討論的,程序執行能力(例如,一個或多個計算節點)可被分配和/ 或指定來在各種實施方案中由特定的簽約專用能力用戶以各種方式使用。
在塊616之后,例程繼續到塊618以任選地確定是否使用為了專用使用分配給用戶的至少一些計算能力,作為由用戶(和/或由其它指定的用戶)使用的私用額外計算能力池的部分,且如果是這樣,存儲相應的信息以啟用私用額外計算能力池的使用。例如,在一些實施方案中,可對所決定的能力簽約用戶啟用并使用私用額外計算能力池,使得被分配給這樣的用戶的所有專用計算能力可變得以后可用在該用戶的私用額外計算能力池中,而專用計算能力否則不被用戶使用。可選地,PESSM模塊在一些實施方案中可默認地為所有專用能力用戶產生這樣的私用額外計算能力池,除非另外指示。在其它實施方案中,專用能力用戶的這樣的私用額外計算能力池可以不在塊618中產生,除非用戶提供明確的指示來這么做,和/或其它預先確定的標準被滿足。在又一些其它實施方案中,是否為用戶產生這樣的私用額外能力池的確定可替代地在其它時間執行,例如當從這樣的專用能力用戶接收到使用額外計算能力資源的請求時。此外,在至少一些實施方案中,簽約用戶可為用戶配置這樣的私用額外計算能力池的其它方面,例如專用能力使用的多少可用作私用額外能力池的部分(例如,全部、特定的百分比或特定數量的計算節點等),對什么用戶私用額外能力池是可用的、私用額外能力池是可用的或不可用的某些時間段和/或其它標準,等等。
如果替代地在塊612確定對簽約專用程序執行能力的使用的請求未接收到,則例程替代地繼續到塊630,在塊630,例程確定請求是否被接收到以代表簽約用戶對所分配的專用程序執行能力執行一個或多個程序(例如,對立即執行的當前請求,對執行的以前安排的請求,等等),以及相應的專用程序執行能力沒有已經在使用中或被安排用于其它專用程序執行。如果足夠的專用程序執行能力不是可用的,則錯誤消息或其它類似的響應例如關于塊635被提供。在一些實施方案中,例程也可確保執行請求在適當的使用期內被接收到和/或可用其它方式授權該請求(例如,認證該請求,授權簽約用戶,等等)。如果為了專用能力的使用而接收適當的請求,例程繼續到塊640以確定對該請求使用的所分配的專用程序執行能力是否目前在使用中,作為實現來自請求者的以前請求的部分,作為該請求者的私用額外計算能力池的部分。如果這樣的當前私用額外計算能力池使用在塊645中被識別,例程繼續到塊650,且否則例程繼續到塊660以例如通過發起在所分配的程序執行能力上的一個或多個程序的執行來執行所請求的執行。如果例程在塊660之前首先繼續進行到塊650,則塊650中的例程發起以前的請求從私用額外計算能力池到通用額外計算能力池的傳輸,因為私用額外計算能力池不再具有當前的可用性以實現以前的請求,雖然在其它實施方案和情況(例如,基于對以前的請求規定的指令)中,但例程可替代地為私用額外計算能力池在隊列中留下以前的請求,使得它被推遲,直到足夠的能力在私用額外計算能力池中變得可用為止。在一些實施方案中,作為塊660的部分,例程可選擇計算資源和/或計算節點,在其上以各種方式執行程序,且在一些情況下例程可終止其它用戶(例如,通用額外能力池用戶)的一個或多個程序和/或否則釋放計算資源以執行所請求的執行。在一些實施方案中,如果專用能力用戶以前提供某個量的其所分配的專用程序執行能力以由一個或多個其它用戶使用,例如以向另一用戶出售或租借該能力,則實現所接收的請求的專用能力可能不可供專用用戶在請求的時間使用,除非用戶能夠收回對請求的能力。此外,在一些實施方案中,來自簽約用戶的對專用能力的使用的當前請求可以被暫時延遲,例如以允許作為簽約用戶的私用額外能力池的部分來執行的來自簽約用戶的以前請求完成或以其它方式執行一個或多個確定的行動。
如果在塊630替代地確定代表簽約用戶對所分配的程序執行能力執行一個或多個程序的請求沒有被接收到,則例程繼續到塊635以在適當時任選地執行與專用能力使用有關的一個或多個其它指示的操作。例如,在一些實施方案中,這樣的操作可包括指示某個量的專用程序能力以作為額外程序執行能力變得可用,不管是對私用額外能力池和/或通用額外能力池,和/或指示某個量的以前規定的程序執行能力將被收回以由專用能力用戶使用。此外,如前所述,在塊635中的例程可提供錯誤消息或其它有關的信息,如果在塊605 中接收的請求未被實現。此外,在一些實施方案中,請求或指令可以在塊605中被接收到以終止以前指示的專用能力使用,且如果是這樣,在塊635中的例程可執行這樣的程序終止并且也更新因而產生的可用額外能力的相應的私用額外計算能力池(如果有的話)或通用額外計算能力池一在其它實施方案中,用戶可替代地終止在計算節點上的程序的執行,而不通知例程600,且PESSM模塊可稍后自動識別因而產生的額外計算能力(例如,關于圖4的塊 475)。
在塊618、635或660之后,例程繼續到塊699并返回。
圖5A-5B是額外能力使用管理器例程500的示例性實施方案的流程圖。例程可為了圖3的PESSM模塊340的額外能力使用管理器模塊344的執行或作為分別圖IA和IB的 PESSM模塊110和180和/或執行相應于圖2A和2B的操作的PESSM模塊(未示出)的部分來被提供,并可從圖4中的例程400的塊435發起或以其它方式被調用。
在所示實施方案中,當調用例程500時,與額外能力使用有關的請求、信息和/或其它指示在塊502被提供到例程502。在塊505,例程接著確定指示是否被接收到以將程序執行能力添加到可用額外程序執行能力,例如基于關于圖4的塊475獲得的信息,或如通過關于圖6的塊635的專用計算能力的使用的終止觸發的。如果是這樣,例程繼續到塊510 以將所指示的程序執行能力添加到可用程序執行能力。特別是,如果額外程序執行能力相應于私用額外計算能力池,則該私用池被選擇來接收所指示的額外能力,且否則通用額外計算能力池被選擇。此外,在一些實施方案中,對創建新的私用額外能力池的請求可以被接收到并關于塊510或替代地關于塊595被處理,如下所述。例如,在一些實施方案中,例程可將這樣指示的程序執行能力的一個或多個指示(例如,一個或多個特定的計算節點等)添加到選定的可用程序執行能力池。在一些實施方案中,多個池可以被提供,如前面關于私用和通用額外能力池和/或以其它方式討論的(例如,各種不同類型的程序執行能力可以是可用的,并被分組成與程序執行能力的類型相關的相應的私用和/或通用池)。
如果替代地在塊505確定添加額外程序執行能力的指示未接收到,則例程繼續到塊515以確定指示是否被接收到以從可用額外程序執行能力移除程序執行能力。如果是這樣,則例程繼續到塊520以選擇相應的私用和/或通用額外能力池,額外能力從該能力池移除(例如,基于所指示的特定程序執行能力,例如對于目前使用額外能力執行的一個或多個程序)。例程接著從選定的能力池的可用額外程序執行能力移除所指示的程序執行能力,使得所指示的程序執行能力(或相等量的程序執行能力)作為額外程序執行能力不再是可用的,以代表選定的能力池的額外能力用戶執行程序。
如果替代地在塊515中確定從可用程序執行能力移除程序執行能力的指示未接收到,則例程替代地繼續到塊525以確定代表額外能力用戶對某個量的可用額外程序執行能力執行一個或多個程序的請求是否被接收到(或對這樣的執行的以前安排的請求被觸發)。如果是這樣,例程繼續到塊530以選擇相應的私用和/或通用額外能力池,額外能力從該能力池獲得以用于執行該請求的一個或多個程序(例如,基于額外能力用戶或替代地基于要使用的特定程序執行的另一指示),并任選地從與所請求的執行有關的請求額外能力用戶獲得或接用于執行收額外的信息。在一些實施方案中,這樣的額外信息可包括配置信息,例如所請求的程序執行能力的量和/或類型的指示(例如,包括最小和最大量)、出價金額(例如,包括最小和最大出價金額)、到期時間、要使用的特定額外能力池(例如,僅僅與用戶相關的特定的私用額外能力池,或使用特定的私用額外能力池,如果是可用的,但否則使用通用額外能力池)等。在一些實施方案中,一些或所有這樣的額外信息可替代地被包括,作為在塊502中接收的請求的部分,或作為由額外能力用戶執行的單獨的配置和/或注冊的部分。此外,在一些實施方案中,例程可提供對一種或多種類型的額外能力用戶的反饋,例如指示所請求的執行的可能特征(例如,請求將被執行的可能時間、執行的可能持續時間、待使用的可能的額外能力池等)和/或任選的其它信息(例如,所建議的配置)。在塊 530之后,例程繼續到塊535以將請求添加到一組當前請求用于對待使用的選定額外能力池的額外程序執行能力執行。在其它實施方案中,不是將請求添加到一組其它請求,例程可替代地試圖立即滿足該請求,例如通過確定是否有可用額外程序執行能力來在該即刻時間執行請求(例如,在特定的私用額外能力池中),并如果是這樣則發起程序的執行,或如果不是這樣則采取其它行動(例如,將請求從不可用的私用額外能力池移動到通用額外能力池, 失敗等)。
如果在塊525確定對可用額外程序執行能力執行程序的請求未被接收到,則例程繼續到塊540以確定移除所指示的以前的執行請求是否被接收到(例如,以前在塊535被添加到一組請求的所指示的執行請求),例如來自額外能力用戶的取消當前的執行請求的請求和/或該請求否則到期的所接收的指示,等等。如果是這樣,例程繼續到塊545以終止與當前對某個量的額外程序執行能力執行的所指示的請求相關的任何程序,并接著繼續到塊 550以從包括所指示的請求的一組或多組請求移除所指示的請求,使得所指示的請求將不隨后被考慮來對額外程序執行能力執行。
在塊510、520、535和550中,或如果替代地在塊540確定移除所指示的執行請求的請求未接收到,則例程繼續到塊555以確定是否管理當前請求以對額外程序執行能力執行。例如,在一些實施方案中,在塊502接收的指示可被傳遞到例程500以管理請求和/或可基于可用程序執行能力的變化(例如,通過分別在塊510和520中添加到可用程序執行能力或從可用程序執行能力移除)和/或當前的執行請求的變化(例如,通過分別在塊535和 550中添加請求或移除請求)等。如果是這樣,例程繼續到塊560以確定在使用中的一個或多個私用和/或通用額外計算能力池的當前可用額外程序執行能力的量,例如包括分別在塊510和520添加到可用程序執行能力或從可用程序執行能力移除的程序執行能力的量。 在塊560之后,例程繼續到塊562以選擇可使用任何可用私用額外計算能力池執行的未決請求(例如,在即將來臨的時間間隔期期間立即執行或執行),例如已經使用私用額外能力池執行的請求、對私用額外能力池排隊的請求、當前使用通用額外能力池執行但具有相應的私用額外能力池(如果它是可用的,則是優選的)的請求、當前對通用額外能力池排隊但具有相應的私用額外能力池(如果它是可用的,則是優選的)的請求,等等。對于任何這樣選擇的請求,在塊560中的例程接著分配來自相應的私用額外計算能力池的相應量的額外計算能力(或安排對即將來臨的時間間隔期的這種分配)。例程接著繼續到塊565以關于未在塊562中選擇的任何其余的請求選擇使用一個或多個通用額外計算能力池執行的其它請求(例如,在即將來臨的時間間隔期期間立即執行或執行),并分配由那些選定的其它請求使用的來自相應的通用額外計算能力池的當前可用的程序執行能力。
如更詳細地討論的,在塊562和565中的請求的選擇可在各種實施方案中以各種方式被執行,包括至少部分地基于與請求及其用戶相關的優先權。例如,在一些實施方案中,例程試圖基于其請求將來自相應的額外計算能力池的一定量的額外程序執行能力分配CN 102934083 A書明說29/30 頁給每個請求(例如,多個指定的計算節點等)。在一些這樣的實施方案中,如果存在足夠的當前可用的額外程序執行能力來滿足對特定額外計算能力池的所有當前的請求執行,則每個請求將被分配所請求的量的該額外程序執行能力用于執行與請求相關的程序。在沒有足夠的當前可用的額外程序執行能力滿足對特定額外計算能力池的所有當前請求的情況下,例程優先考慮請求并試圖在較低優先權請求之前滿足較高優先權請求。在各種實施方案中, 優先權可基于與私用額外計算能力池、出價金額、請求被接收到的時間等相關的一個或多個特定的用戶。在各種實施方案中,例程可確定分配哪個當前可用的額外程序執行能力以由請求以各種方式使用,例如在其它地方描述的。
在塊565之后,例程繼續到塊570以終止與已經對額外程序執行能力執行但未在塊562和565中對當前執行選擇的請求相關的任何執行程序,例如以反映該請求已到期或不是足夠高的優先權,以導致當前繼續的滿足。在塊575中,例程接著執行與每個請求相關的一個或多個程序(和/或在對在塊565中對在進行中的執行選擇的額外程序執行能力上留下以前執行的程序)。在塊575之后,例程繼續到塊580以任選地執行內務處理操作。例如,在一些實施方案中,例程可探測并指示在該組請求中是否有到期或以其它方式應被移除或在額外的計算能力池之間移動的任何執行請求。
如果替代地在塊555確定不管理對額外程序執行能力的執行的當前請求,則例程繼續到塊595以任選地在適當時執行一個或多個其它所指示的操作。例如,在塊502中接收的請求可以來自用戶以例如以與關于圖6的塊618討論的方式類似的方式為該用戶創建新的私用額外能力池(例如,基于使用分配給用戶的某種專用能力的一些或全部),或以修改現有的私用額外能力池的配置一如果是這樣,則例程可在塊595中執行相應的行動。在塊580或595之后,例程繼續到塊599并返回。
圖7是立即響應可變能力使用管理器例程700的示例性實施方案的流程圖。例程可通過例如圖3的PESSM模塊340的立即響應可用能力使用管理器模塊346的執行或作為分別圖IA和IB的PESSM模塊110和180和/或執行相應于圖2A和2B的操作的PESSM模塊(未示出)的部分來提供,并可從圖4中的例程400的塊455發起,或以其它方式調用。
在所示實施方案中,例程700在塊705開始,在塊705,與立即響應可用能力使用有關的請求、信息和/或其它指示被接收到。在塊710,例程接著確定請求是否是對當前可用的立即響應可用計算能力執行一個或多個程序(例如,對立即執行的當前請求、以前安排的請求等)。如在其它地方討論的,這樣的請求可規定各種類型和/或量的程序執行能力,對該執行能力,代表可變的能力用戶執行一個或多個程序。如果在塊710確定執行一個或多個程序的請求被接收到,則例程繼續到塊744。在塊744和746,例程接著確定所請求的程序執行能力是否當前是可用的。如果是這樣,例程繼續到塊748以發起一個或多個所指示的程序對可用的可變程序執行能力的執行。如果不是,例程繼續到塊750,其中對可變程序執行能力的請求失敗,例如通過不執行所請求的一個或多個程序。在其它實施方案中,在這樣的情況下可任選地采取其它行動,例如以查詢用戶是否將請求移動到隊列以與額外計算能力一起使用,或替代地在至少一些實施方案和情況下自動執行這樣的移動。此外,在一些實施方案中,響應于對可變程序執行能力執行程序的請求,例程可自動終止額外能力用戶的一個或多個程序以釋放可變程序執行能力,例如通過將相應的請求發送到額外能力使用管理器模塊。39
如果替代地在塊710中確定執行一個或多個程序的請求未接收到,則例程繼續到塊790以在適當時執行一個或多個其它操作。在塊748、750或790之后,例程繼續到塊799 并返回。
將認識到,在一些實施方案中,由上面討論的例程提供的功能可用可選的方式被提供,例如在更多的例程當中分開或合并成較少的例程。類似地,在一些實施方案中,所示例程可提供比所描述的更多或更少的功能,例如當其它所示例程替代地分別缺少或包括這樣的功能時,或當所提供的功能的數量改變時。此外,雖然各種操作可以被示為以特定的方式(例如,串行或并行地)和/或以特定的順序被執行,但是本領域技術人員將認識到,在其它實施方案中,操作可按其它順序和以其它方式被執行。本領域技術人員也將認識到,上面討論的數據結構可以用不同的方式構造,例如通過具有分成多個數據結構的單個數據結構或通過使多個數據結構合并成單個數據結構。類似地,在一些實施方案中,所示數據結構可存儲比所描述的更多或更少的信息,例如當其它所示數據結構替代地分別缺少或包括這樣的信息時,或當所存儲的信息的數量或類型改變時。
從前述內容中將認識到,雖然為了說明的目的在本文描述了特定的實施方案,但可進行各種修改而不偏離本發明的精神和范圍。因此,除了被所附權利要求和其中所述的元件限制以外,本發明沒有被限制。此外,雖然下面在某些權利要求形式中介紹了本發明的某些方面,但是發明人設想以任何可用權利要求形式的本發明的各種方面。例如,雖然本發明的僅僅一些方面可目前被描述為體現在計算機可讀介質中,但其它方面可同樣被如此體現。
權利要求
1.一種用于管理用戶的程序的執行的計算機實現的方法,所述方法包括在規定的時間段期間為第一用戶預留一個或多個計算節點的程序執行能力,以使第一用戶能夠接收專門訪問以在所述規定的時間段期間使用所預留的程序執行能力執行程序, 所述預留的程序執行能力是由代表程序執行服務的用戶執行程序的所述程序執行服務的多個計算節點提供的可用程序執行能力的子集,所述多個計算節點每個可配置成執行所述用戶的一個或多個的一個或多個程序;使用所述預留的程序執行能力在所述規定的時間段期間的第一時間段子集期間執行所述第一用戶的一個或多個第一程序,所述一個或多個第一程序的執行響應于第一請求來對所述預留的程序執行能力使用所述第一用戶的所述專門訪問;在不同于所述第一時間段子集的所述規定的時間段的第二時間段子集期間從所述第一用戶接收第二請求以執行所述第一用戶的一個或多個第二程序,所述第二請求使用所述第一用戶沒有專門訪問的所述程序執行服務的所述可用程序執行能力的未使用的額外能力來執行所述一個或多個第二程序,所述程序執行服務的所述額外能力的使用具有由所述程序服務控制的第一程序執行特征,所述第一程序執行特征不同于由所述程序執行服務控制的從所述預留的程序執行能力的使用出現的第二程序執行特征;自動確定使用所述第一用戶的所述預留的程序執行能力來在所述第二時間段子集期間對第二請求執行所述一個或多個第二程序,自動確定使用所述預留的程序執行能力由所述程序執行服務的一個或多個編程的計算系統執行并至少部分地基于所述第一用戶否則不在所述第二時間段子集期間使用對所述預留的程序執行能力的所述專門訪問;以及通過使用所述預留的程序執行能力在所述第二時間段子集期間發起所述第一用戶的所述一個或多個第二程序的執行,所述一個或多個第二程序的執行具有基于所述預留的程序執行能力的使用的所述第二程序執行特征的至少一些。
2.如權利要求I所述的方法,還包括在所述規定的時間段的第三時間段子集期間從所述第一用戶接收第三請求以執行所述第一用戶的一個或多個第三程序,所述第三請求使用所述程序執行服務的未使用的程序執行能力來執行所述一個或多個第三程序,自動確定不使用所述第一用戶的所述預留的程序執行能力來在所述第三時間段子集期間對第三請求執行所述一個或多個第三程序,自動確定不使用所述預留的程序執行能力至少部分地基于所述預留的程序執行能力否則不在所述第三時間段子集期間由所述第一用戶使用;以及試圖通過使用所述程序執行服務的所述未使用的額外能力在所述第三時間段子集期間發起所述第一用戶的所述一個或多個第三程序的執行。
3.如權利要求2所述的方法,其中使用所述未使用的額外能力的所述一個或多個第三程序的執行具有所述第一程序執行特征,所述第一程序執行特征包括對第一規定量的程序執行能力向所述第一用戶收取的第一費用,且其中所述方法還包括,在所述一個或多個第三程序的執行使用所述程序執行服務的所述未使用的額外能力被發起之后且在所述一個或多個第三程序的執行完成之前自動確定所述第一用戶的所述預留的程序執行能力的至少一些變得可用;自動確定修改所述一個或多個第三程序的連續執行來使用至少一些可用的預留程序執行能力;以及使用所述至少一些可用的預留程序執行能力代替所述程序執行服務的所述額外能力來發起所述一個或多個第三程序的連續執行,所述一個或多個第三程序的連續執行具有至少一些第二程序執行特征,所述至少一些第二程序執行特征包括對第二規定量的程序執行能力向所述第一用戶收取的第二費用,所述第二費用與所述第一費用不同。
4.如權利要求I所述的方法,還包括在所述規定的時間段的第三時間段子集期間從第二用戶接收第三請求以執行所述第二用戶的一個或多個第三程序,所述第三請求使用所述程序執行服務的未使用的程序執行能力來執行所述一個或多個第三程序,所述第二用戶不同于所述第一用戶;自動確定不使用所述第一用戶的所述預留的程序執行能力來在所述第三時間段子集期間對第三請求執行所述一個或多個第三程序,自動確定不使用所述預留的程序執行能力至少部分地基于所述第二用戶不同于所述第一用戶且不考慮所述預留的程序執行能力否則不在所述第三時間段子集期間由所述第二用戶使用;以及試圖通過使用所述程序執行服務的所述未使用的額外能力在所述第三時間段子集期間發起所述第二用戶的所述一個或多個第三程序的執行。
5.如權利要求I所述的方法,其中來自所述第一用戶的執行所述第一用戶的所述一個或多個第二程序的所述第二請求包括要使用的多個計算節點的數量的指示,其中否則不在所述第二時間段子集期間由所述第一用戶使用的所述第一用戶的所述預留的程序執行能力相應于小于所指示的數量的所述一個或多個計算節點的可用數量,其中通過使用所述預留的程序執行能力發起所述第一用戶的所述一個或多個第二程序的執行包括使用可用數量的所述一個或多個計算節點,以及其中所述方法還包括通過使用所述程序執行服務的未使用的額外能力在所述第二時間段子集期間發起所述第一用戶的所述一個或多個第二程序的其它執行,所述執行的發起包括使用一定數量的一個或多個未使用的額外計算節點, 所述數量是在所指示的數量和所述可用數量之間的數值差。
6.如權利要求I所述的方法,還包括自動確定在所述規定的時間段期間使用所述預留的程序執行能力作為所述第一用戶的私用額外計算能力池的部分,同時所述預留的程序執行能力不在使用中,向所述第一用戶提供專門訪問,以及自動監控所述第一用戶的所述預留的程序執行能力的使用以確定所述預留的程序執行能力對所述私用額外計算能力池的可用性。
7.如權利要求6所述的方法,其中所述自動確定使用所述預留的程序執行能力作為所述第一用戶的所述私用額外計算能力池的部分在不告訴所述第一用戶的情況下被執行。
8.如權利要求I所述的方法,其中所述自動確定使用所述第一用戶的所述預留的程序執行能力來在所述第二時間段子集期間對所述第二請求執行所述一個或多個第二程序包括確定使用所述預留的程序執行能力代替所述程序執行服務的所述未使用的額外能力,所述自動確定使用所述第一用戶的所述預留的程序執行能力作為所述第一用戶的所述私用額外計算能力池的部分以對所述第二請求執行所述一個或多個第二程序在不告訴所述第一用戶的情況下被執行。
9.如權利要求I所述的方法,其中來自所述預留的程序執行能力的使用的所述第二程序執行特征包括所述第一用戶的所述預留的程序執行能力的被保證的可用性,且其中對所CN 102934083 A書求要利權3/9頁述程序執行服務的所述額外能力的使用的所述第一程序執行特征包括所述額外能力的連續可用性的保證的缺乏。
10.如權利要求I所述的方法,其中來自所述預留的程序執行能力的使用的所述第二程序執行特征包括對在規定的時間間隔內規定數量的所述預留的程序執行能力的使用向所述第一用戶收取的第一進行的費用,其中對所述程序執行服務的所述額外能力的使用的所述第一程序執行特征包括對在規定的時間間隔內規定數量的額外能力的使用向所述第一用戶收取的第二費用,所述第一費用小于所述第二費用,其中所述自動確定使用所述第一用戶的所述預留的程序執行能力以執行所述一個或多個第二程序至少部分地基于對使用所述預留的程序執行能力執行所述一個或多個第二程序而向所述第一用戶收取較低的第一費用,且其中對所述一個或多個第二程序的執行的所述至少一些第二程序執行特征包括所述較低的第一費用的使用。
11.如權利要求I所述的方法,其中所述預留的程序執行能力基于對所述第一用戶的多個預留的計算節點的使用,其中所述多個預留的計算節點的全部由所述第一用戶指定以在所述規定的時間段的部分而不是所述第一時間段子集期間用于代替所述程序執行服務的所述未使用的額外能力,其中通過使用所述預留的程序執行能力發起所述第一用戶的所述一個或多個第二程序的執行包括使用所述多個預留的計算節點的子集,且其中所述方法還包括通過使用所述多個預留的計算節點中的至少一些在所述規定的時間段的一個或多個部分期間代表所述第一用戶發起一個或多個其它第三程序的執行。
12.如權利要求I所述的方法,還包括在所述一個或多個第二程序的執行期間使用所述預留的程序執行能力從所述第一用戶接收第三請求以使用所述第一用戶對所述預留的程序執行能力的專門訪問來執行所述第一用戶的一個或多個第三程序;確定基于所接收的第三請求使用所述預留的程序執行能力終止所述一個或多個第二程序的執行;以及通過使用所述預留的程序執行能力代替所述一個或多個第二程序的執行來發起所述第一用戶的所述一個或多個第三程序的執行。
13.如權利要求I所述的方法,還包括在所述一個或多個第二程序的執行期間使用所述預留的程序執行能力從所述第一用戶接收第三請求以使用所述第一用戶對所述預留的程序執行能力的專門訪問來執行所述第一用戶的一個或多個第三程序;以及響應于所接收的第三請求,自動確定修改所述一個或多個第二程序的連續執行以使用所述程序執行服務的所述額外能力,以及使用所述額外能力而不是所述預留的程序執行能力來發起所述一個或多個第二程序的所述連續執行,所述一個或多個第二程序的所述連續執行具有所述第一程序執行特征。
14.如權利要求13所述的方法,其中使用所述預留的程序執行能力執行所述一個或多個第二程序的至少一些第二程序執行特征包括對第一規定量的程序執行能力向所述第一用戶收取的第一費用,且其中使用所述額外能力連續執行所述一個或多個第二程序的所述第一程序執行特征包括對第二規定量的程序執行能力向所述第一用戶收取的第二費用,所述第二費用不同于所述第一費用。4
15.如權利要求I所述的方法,其中所述多個計算節點對于多個物理計算系統的每個包括由所述物理計算系統托管的多個虛擬機,每個虛擬機可配置成執行至少一個程序,且其中用于所述預留的程序執行能力的所述一個或多個計算節點每個是托管的虛擬機。
16.如權利要求1-3中的任一項所述的方法,還包括從第二用戶接收第三請求以在所述規定的時間段的第三時間段子集期間執行所述第二用戶的一個或多個第三程序,所述第三請求是使用所述程序服務的所述未使用的額外能力執行所述一個或多個第三程序,所述第二用戶不同于所述第一用戶;自動確定不使用所述第一用戶的所述預留的程序執行能力來在所述第三時間段子集期間對第三請求執行所述一個或多個第三程序,自動確定不使用所述預留的程序執行能力至少部分地基于所述第二用戶不同于所述第一用戶且不考慮所述預留的程序執行能力否則不在所述第三時間段子集期間由所述第二用戶使用;以及試圖通過使用所述程序執行服務的所述未使用的額外能力在所述第三時間段子集期間發起所述第二用戶的所述一個或多個第三程序的執行。
17.如權利要求1-3或16中的任一項所述的方法,其中來自所述第一用戶的執行所述第一用戶的所述一個或多個第二程序的所述第二請求包括要使用的多個計算節點的數量的指示,其中否則不在所述第二時間段子集期間由所述第一用戶使用的所述第一用戶的所述預留的程序執行能力相應于小于所指示的數量的所述一個或多個計算節點的可用數量, 其中通過使用所述預留的程序執行能力發起所述第一用戶的所述一個或多個第二程序的執行包括使用可用數量的所述一個或多個計算節點,以及其中所述方法還包括通過使用所述程序執行服務的所述未使用的額外能力在所述第二時間段子集期間發起所述第一用戶的所述一個或多個第二程序的其它執行,所述其它執行的發起包括使用作為在所指示的數量和所述可用數量之間的數值差的數量的一個或多個未使用的額外計算節點。
18.如權利要求1-3或16-17中的任一項所述的方法,還包括自動確定在所述規定的時間段期間使用所述預留的程序執行能力作為所述第一用戶的私用額外計算能力池的部分, 同時所述預留的程序執行能力不在使用中,向所述第一用戶提供專門訪問,以及自動監控所述第一用戶的所述預留的程序執行能力的使用以確定所述預留的程序執行能力對所述私用額外計算能力池的可用性。
19.如權利要求18所述的方法,其中所述自動確定使用所述預留的程序執行能力作為所述第一用戶的所述私用額外計算能力池的部分在不告訴所述第一用戶的情況下被執行。
20.如權利要求1-3或16-19中的任一項所述的方法,其中所述自動確定使用所述第一用戶的所述預留的程序執行能力來在所述第二時間段子集期間對所述第二請求執行所述一個或多個第二程序包括確定使用所述預留的程序執行能力代替所述程序執行服務的所述未使用的額外能力,所述自動確定使用所述第一用戶的所述預留的程序執行能力作為所述第一用戶的所述私用額外計算能力池的部分以對所述第二請求執行所述一個或多個第二程序在不告訴所述第一用戶的情況下被執行。
21.如權利要求1-3或16-20中的任一項所述的方法,其中來自所述預留的程序執行能力的使用的所述第二程序執行特征包括所述第一用戶的所述預留的程序執行能力的被保證的可用性,且其中對所述程序執行服務的所述額外能力的使用的所述第一程序執行特征包括所述額外能力的連續可用性的保證的缺乏。
22.如權利要求1-3或16-21中的任一項所述的方法,其中來自所述預留的程序執行能力的使用的所述第二程序執行特征包括對在規定的時間間隔內規定數量的所述預留的程序執行能力的使用向所述第一用戶收取的第一進行的費用,其中對所述程序執行服務的所述額外能力的使用的所述第一程序執行特征包括對在規定的時間間隔內規定數量的額外能力的使用向所述第一用戶收取的第二費用,所述第一費用小于所述第二費用,其中所述自動確定使用所述第一用戶的所述預留的程序執行能力以執行所述一個或多個第二程序至少部分地基于對使用所述預留的程序執行能力執行所述一個或多個第二程序而向所述第一用戶收取較低的第一費用,且其中對所述一個或多個第二程序的執行的所述至少一些第二程序執行特征包括所述較低的第一費用的使用。
23.如權利要求1-3或16-22中的任一項所述的方法,其中所述預留的程序執行能力基于對所述第一用戶的多個預留的計算節點的使用,其中所述多個預留的計算節點的全部由所述第一用戶指定以在所述規定的時間段的部分而不是所述第一時間段子集期間用于代替所述程序執行服務的所述未使用的額外能力,其中通過使用所述預留的程序執行能力發起所述第一用戶的所述一個或多個第二程序的執行包括使用所述多個預留的計算節點的子集,且其中所述方法還包括通過使用所述多個預留的計算節點中的至少一些在所述規定的時間段的一個或多個部分期間代表所述第一用戶發起一個或多個其它第三程序的執行。
24.如權利要求1-3或16-23中的任一項所述的方法,還包括在所述一個或多個第二程序的執行期間使用所述預留的程序執行能力從所述第一用戶接收第三請求以使用所述第一用戶對所述預留的程序執行能力的專門訪問來執行所述第一用戶的一個或多個第三程序;確定基于所接收的第三請求使用所述預留的程序執行能力終止所述一個或多個第二程序的執行;以及通過使用所述預留的程序執行能力代替所述一個或多個第二程序的執行來發起所述第一用戶的所述一個或多個第三程序的執行。
25.如權利要求1-3或16-24中的任一項所述的方法,還包括在所述一個或多個第二程序的執行期間使用所述預留的程序執行能力從所述第一用戶接收第三請求以使用所述第一用戶對所述預留的程序執行能力的專門訪問來執行所述第一用戶的一個或多個第三程序;以及響應于所接收的第三請求,自動確定修改所述一個或多個第二程序的連續執行以使用所述程序執行服務的所述額外能力,以及使用所述額外能力代替所述預留的程序執行能力來發起所述一個或多個第二程序的所述連續執行,所述一個或多個第二程序的所述連續執行具有所述第一程序執行特征。
26.如權利要求25所述的方法,其中使用所述預留的程序執行能力執行所述一個或多個第二程序的至少一些第二程序執行特征包括對第一規定量的程序執行能力向所述第一用戶收取的第一費用,且其中使用所述額外能力連續執行所述一個或多個第二程序的所述第一程序執行特征包括對第二規定量的程序執行能力向所述第一用戶收取的第二費用,所述第二費用不同于所述第一費用。
27.如權利要求1-3或16-26中的任一項所述的方法,其中所述多個計算節點對于多個物理計算系統的每個包括由所述物理計算系統托管的多個虛擬機,每個虛擬機可配置成執CN 102934083 A書求要利權6/9頁行至少一個程序,且其中用于所述預留的程序執行能力的所述一個或多個計算節點每個是托管的虛擬機。
28.一種計算機可讀存儲介質,其內容使計算系統能夠執行方法,所述方法包括提供第一用戶專門訪問的一個或多個預留的計算相關的資源用于在規定的時間段內的程序執行期間使用,所述預留的計算相關的資源由遠離所述第一用戶的網絡可訪問的服務管理且不用于在所述規定的時間段的所指示的部分期間由所述第一用戶專門訪問;自動響應于來自所述第一用戶的請求以在所指示的部分期間在所述第一用戶的一個或多個第一程序的執行期間使用至少一個所指示的計算相關的資源,所述至少一個計算相關的資源被指示為所述第一用戶沒有專門訪問的遠程服務的未使用的額外計算相關的資源,所述自動響應包括確定所述第一用戶的所述預留的計算相關的資源包括所述至少一個所指示的計算相關的資源,并確定在所指示的部分期間在所述第一用戶的所述一個或多個第一程序的執行期間使用所述預留的計算相關的資源代替所述遠程服務的所述未使用的額外計算相關的資源;以及在所指示的部分期間在所述第一用戶的所述一個或多個第一程序的執行期間發起所述預留的計算相關的資源的使用。
29.如權利要求28所述的計算機可讀存儲介質,其中所述服務是程序執行服務,所述程序執行服務提供可配置來執行所述程序執行服務的用戶的程序的多個計算節點,其中所述一個或多個預留的計算相關的資源包括被分配來由所述第一用戶在執行一個或多個程序時使用的所述多個計算節點中的一個或多個,其中所述至少一個所指示的計算相關的資源是所述多個計算節點中的規定數量的一個或多個,且其中在所述一個或多個第一程序的執行期間所述預留的計算相關的資源的使用的發起包括通過來自被分配來由所述第一用戶使用的所述一個或多個計算節點的所述規定數量的計算節點來發起所述一個或多個第一程序的執行。
30.如權利要求29所述的計算機可讀存儲介質,其中提供所述第一用戶專門訪問的所述一個或多個預留的計算相關的資源包括使用所述第一用戶的專門訪問在所述規定的時間段的第二部分期間執行所述第一用戶的一個或多個第二程序,所述第二部分不同于所指示的部分,且其中通過所述至少規定數量的計算節點執行所述第一用戶的所述一個或多個第一程序具有第一程序執行特征,所述第一程序特征不同于從所述遠程服務的所述未使用的額外計算相關的資源的使用出現的第二程序執行特征。
31.如權利要求28所述的計算機可讀存儲介質,其中來自所述第一用戶的使用至少一個所指示的計算相關的資源的所述請求包括一種類型的計算相關的資源的指示,且其中所述至少一個所指示的計算相關的資源是確定數量的所指示的類型。
32.如權利要求28所述的計算機可讀存儲介質,其中所述至少一個所指示的計算相關的資源是永久存儲器、內存和處理器循環中的至少一個。
33.如權利要求28所述的計算機可讀存儲介質,其中所述計算機可讀介質是存儲所述內容的所述計算系統的內存,且其中所述內容是當執行程序時所述計算系統執行所述方法的指令。
34.一種配置成管理用戶的程序的執行的計算系統,包括7一個或多個處理器;以及系統管理器模塊,其配置成當被所述一個或多個處理器中的至少一個執行時對于多個所述用戶中的每個通過下列操作來管理程序執行服務的用戶的程序的執行提供所述用戶專門訪問的規定的第一量的預留的程序執行能力用于執行程序,所述預留的程序執行能力是由所述程序執行服務提供的程序執行能力的子集;以及在提供規定的第一量的預留的程序執行能力之后,自動響應于來自所述用戶的請求以使用所述用戶沒有專門訪問的所述程序執行服務的第二量的額外程序執行能力來執行所述用戶的一個或多個第一程序,所述自動響應包括自動確定所述用戶的所述預留的程序執行能力是否包括沒有被所述用戶使用的至少所述第二量的可用程序執行能力;如果所述用戶的所述預留的程序執行能力被自動確定為包括至少所述第二量的所述可用程序執行能力,則使用所述用戶的所述預留的程序執行能力來發起所述用戶的所述一個或多個第一程序的執行;以及如果所述用戶的所述預留的程序執行能力被自動確定為不包括至少所述第二量的所述可用程序執行能力,則試圖通過獲得當前未使用的所述程序執行服務的其它額外程序執行能力的使用來發起所述用戶的所述一個或多個第一程序的執行,所述程序執行服務的所述其它額外程序執行能力不同于所述用戶的所述預留的程序執行能力。
35.如權利要求34所述的計算系統,其中所述程序執行服務使用多個計算節點來提供所述程序執行服務的所述程序執行能力,所述多個計算節點每個可配置成執行所述程序執行服務的所述用戶中的一個或多個的一個或多個程序,其中為所述多個用戶提供所述規定的第一量的預留的程序執行能力包括分配所述多個計算節點中的一個或多個用于由一個用戶在規定的時間段內專門使用,并包括使用所述一個用戶對所分配的一個或多個計算節點的所述預留的程序執行能力的專門訪問在所述規定的時間段的一部分內執行所述一個用戶的一個或多個第二程序,且其中所述一個用戶的所述預留的程序執行能力被自動確定為不包括至少所述第二量的所述可用程序執行能力,如果在所述一個用戶對所分配的一個或多個計算節點的所述預留的程序執行能力的專門訪問用于執行所述一個或多個第二程序時所述自動確定在所述規定的時間段的所述部分期間出現。
36.如權利要求35所述的計算系統,其中所述一個用戶的所述預留的程序執行能力是否包括至少所述第二量的可用程序執行能力的所述自動確定包括確定所述一個用戶的所述預留的程序執行能力不包括至少所述第二量的可用程序執行能力,且其中使用所述一個用戶的所述預留的程序執行能力執行所述一個用戶的所述一個或多個第一程序具有第一程序執行特征,所述第一程序特征不同于從所述程序執行服務的所述其它額外程序執行能力的使用出現的第二程序執行特征。
37.如權利要求34所述的計算系統,其中所述系統管理器模塊包括用于由所述計算系統的所述一個或多個處理器執行的軟件指令。
38.如權利要求34所述的計算系統,其中所述系統管理器模塊由用于對于多個所述用戶中的每個通過下列操作來管理程序執行服務的用戶的程序的執行的裝置組成提供所述用戶專門訪問的規定的第一量的預留的程序執行能力用于執行程序,所述預留的程序執行能力是由所述程序執行服務提供的程序執行能力的子集;以及在提供規定的第一量的預留的程序執行能力之后,自動響應于來自所述用戶的請求以使用所述用戶沒有專門訪問的所述程序執行服務的第二量的額外程序執行能力來執行所述用戶的一個或多個第一程序,所述自動響應包括自動確定所述用戶的所述預留的程序執行能力是否包括沒有被所述用戶使用的至少所述第二量的可用程序執行能力;如果所述用戶的所述預留的程序執行能力被自動確定為包括至少所述第二量的所述可用程序執行能力,則使用所述用戶的所述預留的程序執行能力來發起所述用戶的所述一個或多個第一程序的執行;以及如果所述用戶的所述預留的程序執行能力被自動確定為不包括至少所述第二量的所述可用程序執行能力,則試圖通過獲得當前未使用的所述程序執行服務的其它額外程序執行能力的使用來發起所述用戶的所述一個或多個第一程序的執行,所述程序執行服務的所述其它額外程序執行能力不同于所述用戶的所述預留的程序執行能力。
39.一種用于管理用戶的程序的執行的計算機實現的方法,所述方法包括預留由第一用戶使用的多個計算節點以使所述第一用戶能夠在規定的時間段期間接收對用于執行程序的所預留的計算節點的專門訪問的被保證的可用性,所預留的計算節點是由程序執行服務提供的多個計算節點的子集,每個計算節點可配置成執行所述程序執行服務的多個用戶之一的一個或多個程序;自動確定在所述規定的時間段期間使用所述預留的計算節點中的每個作為所述第一用戶的私用額外計算能力池的部分,同時所述預留的計算節點不在使用中,向所述第一用戶提供專門訪問,所述自動確定被所述程序執行服務的一個或多個編程計算系統執行而不告訴所述第一用戶;使用所述預留的計算節點在所述規定的時間段的第一時間段子集期間執行所述第一用戶的一個或多個第一程序,所述一個或多個第一程序的執行響應于第一請求以使用所述第一用戶對所述預留的計算節點的專門訪問;在不同于所述第一時間段子集的所述規定的時間段的第二時間段子集期間從所述第一用戶接收第二請求以為所述第一用戶執行在所指示的數量的計算節點上的一個或多個第二程序的執行,所述第二請求是從所述程序執行服務的通用額外計算能力池獲得所指示的數量的計算節點,所述程序執行服務基于所述第一用戶沒有專門訪問的所述程序執行服務的未使用的額外計算節點,所述通用額外計算能力池的使用被提供而沒有那些未使用的額外計算節點的連續使用的被保證的可用性;自動確定使用所述第一用戶的所述私用額外計算能力池用于在所述第二時間段子集期間對所述第二請求在所指示的數量的計算節點上的所述一個或多個第二程序的執行的至少一些,而不是使用所述通用額外計算能力池,自動確定使用所述私用額外計算能力池由所述程序執行服務的一個或多個編程的計算系統執行;以及通過使用所述預留的計算節點中的一個或多個作為所述私用額外計算能力池的部分在所述第二時間段子集期間發起所述第一用戶的所述一個或多個第二程序的執行。
40.如權利要求39所述的方法,其中所述程序執行服務是基于費用的服務,其中所述第一用戶對在指定的時間間隔內使用所述預留的計算節點之一作為所述第一用戶的專門訪問的部分支付第一增加的費用,其中所述第一用戶對在所述指定的時間間隔內使用所述通用額外計算能力池的所述未使用的額外計算節點之一支付第二費用,所述第一費用低于所述第二費用,且其中所述自動確定使用所述第一用戶的所述私用額外計算能力池用于所述一個或多個第二程序的至少一些執行至少部分地基于對使用所述預留的計算節點作為所述私用額外計算能力池的部分向所述第一用戶收取較低的第一費用。
41.如權利要求40所述的方法,其中所述私用額外計算能力池在自動確定使用所述私用額外計算能力池時包括少于所指示的數量的計算節點的一定數量的預留的計算節點,其中通過使用所述一個或多個預留的計算節點作為所述私用額外計算能力池的部分來發起所述一個或多個第二程序的所述至少一些執行包括使用所包括的數量的預留的計算節點, 且其中所述方法還包括通過使用未使用的額外計算節點中的一個或多個作為所述通用額外計算能力池的部分來在所述第二時間段子集期間發起所述第一用戶的所述一個或多個第二程序的其它執行,所述一個或多個未使用的額外計算節點的數量是所指示的數量的計算節點與所包括的數量的預留的計算節點之間的數值差。
全文摘要
描述了用于管理程序的執行的技術,包括使用一個或多個計算系統的額外程序執行能力。例如,可基于為用戶分配的未使用的專用程序執行能力為該用戶維持私用額外計算能力池,私用額外能力池可供該用戶優先使用。除了可供多個用戶(任選地包括與私用額外能力池相關的用戶)使用的通用、非私用額外計算能力池以外,還可在一些實施方案中提供這樣的私用額外能力池。在一些這樣的情況下,額外計算能力可變得可用來在臨時基礎上執行程序,使得使用額外能力執行的程序可在任何時間終止,如果對額外能力的其它優選使用產生。
文檔編號G06F9/46GK102934083SQ201180013470
公開日2013年2月13日 申請日期2011年1月10日 優先權日2010年1月12日
發明者埃里克·詹森·布蘭德外恩, 詹姆士·阿爾弗雷德·戈登·格林菲爾德 申請人:亞馬遜科技公司