計算機系統當前被廣泛使用。一些計算機系統是本地計算機系統,而其他系統在遠程服務器環境中使用。
公司或另一個組織在計算機系統的本地(內部)實現與計算機系統的遠程服務器實現(例如基于云的實現)之間進行切換不是不常見的。作為示例,公司有時候在它們的電子郵件系統、它們的文檔管理系統、或者它們的商業系統的本地實現與遠程服務器實現之間進行切換。商業系統的一些示例包括:企業資源規劃(ERP)系統、客戶關系管理(CRM)系統、經營范圍(LOB)系統等。這些僅僅是其中公司在本地的、內部的實現與遠程服務器或基于云的實現之間進行切換的計算機系統的類型的一些示例。
類似地,一些組織具有混合的實現。服務中的一些服務是由計算機系統的本地的、內部的組件執行的,而其他服務是在遠程服務器或基于云的環境中執行的。在混合的系統中,組織將某些服務從內部實現遷移至基于云的實現不是不常見的。
具有遠程服務器或基于云的實現的一些公司是相對大型的。企業組織例如可以具有數千雇員。因此,它們的計算機系統的遠程服務器或基于云的實現必須服務大量個體。對計算機系統進行的許多業務或改變涉及對大量用戶賬戶或大量用戶數據進行改變。
作為示例,當企業組織想要將一些計算系統功能從內部實現遷移至基于云的實現時,這可能涉及對企業的計算機系統的許多不同的更新。作為示例,如果企業正在遷移其電子郵件系統,則這可能涉及大量雇員賬戶的創建。賬戶創建通常以序列化的方式完成,這可能花費大量時間。另外,在進行一些改變的情況下,那些改變會消耗遠程服務器或基于云的實現的大量處理和存儲器開銷,以及帶寬。
許多基于云的或遠程的服務器實現還是多租戶系統。即,它們為多個不同的租戶提供一定等級的服務,所述多個租戶通常是多個不同的組織。當一個租戶進行大量改變時,這可能負面地影響其他租戶所體驗的性能。
以上討論僅僅是針對一般的背景信息而提供的,而不旨在用來幫助確定所要求保護的主題的范圍。
技術實現要素:
在多租戶服務處接收租戶改變。將租戶改變劃分成多個部分。在多租戶服務處、跨已經請求了改變的所有租戶來處理租戶改變的多個部分,以跨所有進行請求的租戶而均勻地分配處理資源。
提供了該發明內容以用簡化的形式引入在以下的具體實施方式中進一步描述的概念的選擇。該發明內容不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用來幫助確定所要求保護的主題的范圍。所要求保護的主題不限于解決了在
背景技術:
中所提出的任何或所有缺點的實現。
附圖說明
圖1是基于云的多租戶服務架構的一個示例的框圖。
圖2是更加詳細地示出了改變調度組件的一個示例的框圖。
圖3A和圖3B(統稱為圖3)示出了在圖1中所示出的架構的操作的一個示例的流程圖。
圖4是圖示了多租戶云架構的一個示例中的不同等級的多租戶的框圖。
圖5-圖7示出了移動設備的示例。
圖8是計算環境的一個示例的框圖。
具體實施方式
圖1是基于云的多租戶服務架構100的一個示例的框圖。架構100包括能夠由多個不同的租戶系統104-106來訪問的基于云的多租戶服務系統102。如在下文中參考圖4更加詳細地描述的,基于云的多租戶服務系統102向使用租戶系統104-106的租戶提供某等級的多租戶服務。所述租戶說明性地是分離的組織,以使得由系統102提供的多租戶服務在期望的等級處是每租戶分離或隔離的。另外,如以下參考圖4更加詳細地描述的,可以在基礎設施等級、在應用平臺等級、或者在應用軟件等級等處提供多租戶服務。因此,取決于由系統102所提供的多租戶的特定等級,與特定的客戶端(或租戶)相對應的信息將在該等級處是分離的并且被隔離,從而其不能由其他客戶端(或租戶)來訪問。
作為示例,如果系統102提供基礎設施即服務,則系統102的基礎設備組件由租戶104-106共享,但是它們的信息以其他方式保持為分離的。如果系統102提供平臺即服務,則平臺組件由租戶104-106共享。如果系統102提供應用軟件即服務,則通用應用由系統102運行,以對租戶104-106進行服務。在這些實現中的任何實現中,由于系統102提供某等級的多租戶,因此與不同的租戶104-106相對應的信息保持為分離的。這在下文中關于圖4更加詳細地進行了描述。
在圖1中所示出的系統102的示例中,租戶系統104-106訪問對它們對應的租戶數據108-110進行操作的應用。租戶系統104-106可以提供改變請求112-114以改變它們對應的租戶數據108-110。作為示例,租戶104可以將多個用戶從內部系統遷移至基于云的系統102。因此,改變請求112可以用于為租戶系統104而添加內部系統102中的大量電子郵件賬戶。在另一個示例中,租戶系統106可以已經獲取了另一個組織,并且因此可能需要將大量電子郵件賬戶添加至系統102中的其基于云的實現。在另一個示例中,可以已經重新組織了使用租戶系統104的組織。因此,可能需要改變大量雇員記錄以示出他們不再是人力資源部的一部分,而現在是市場部的一部分。在這些示例或者寬泛的多種其他示例中的任何示例中,對租戶的基于云的實現的改變在數量上可以是相對大的。然而,在一個示例中,系統102以將在服務其他租戶時不影響系統102的性能的方式來處理這些改變。
以下關于圖2和圖3提供了對進行租戶更新或改變時系統102的操作的更加詳細的描述。現在將提供簡要概述以加強理解。
系統102說明性地包括改變請求處理系統116、改變調度組件118、租戶行為監視系統120、以及其他云實現組件122。其還可以包括公平策略119。改變調度組件118(其在圖2中更加詳細地示出)從租戶系統104-106接收改變請求并且訪問租戶行為監視系統120,該租戶行為監視系統120提供由改變調度組件118用來調度改變請求的信息。在一個示例中,改變調度組件118將從各個租戶系統104-106接收到的改變請求劃分成部分,并跨各個租戶而分配改變請求處理系統116的資源,以使得可能提交相對大數量的改變請求的單個租戶不會壓制(overwhelm)這些資源而損害其他租戶。
在對改變進行調度時,組件118訪問由租戶行為系統120所提供的信息。租戶行為系統120本身說明性地包括租戶類型識別器124、流入業務監視器126、流出業務監視器128、以及其他識別器組件130。租戶類型識別器124可以識別進行請求的租戶104的不同的特性。例如,其可以確定租戶是對基于云的服務付費的租戶還是具有試用賬戶的租戶。其可以識別租戶的大小(例如,座位和活躍用戶的數量)并且其還可以通過監視流入和流出業務來考慮當前的業務等級或者改變請求處理系統116上的負載。其可以計算由各個租戶104-106當前觀察到的延遲(例如,通過測量改變請求與實際進行的改變之間的時間),其可以分析歷史業務數據、以及寬泛的多種其他數據。在任何情況下,改變調度組件118說明性地控制提交至改變請求處理系統116的改變,以使得租戶的任何集合的行為都不會壓制系統或者以其他方式顯著地降低其他租戶所體驗的性能。
圖2是改變調度組件的一個示例的更加詳細的框圖。組件118說明性地包括改變切分(slice)組件132、下一改變識別器組件134、調度器通信組件136、以及未決改變儲存138。組件118還可以包括其他項目140。組件118說明性地從各個租戶系統104-106接收改變請求112-114。組件118還從租戶行為監視系統120接收進行請求的租戶行為特性142。改變切分組件132接著按租戶來劃分所請求的改變,并將它們作為租戶改變144-146保存在未決改變儲存138中。基于當前正請求的改變的數量(和其他信息),改變切分組件132可以針對租戶中的每個租戶將改變144-146切分成多個不同的部分148-150。每個部分都可具有相同數量的改變,并且該數量可以是預先定義的或動態地確定的。下一改變識別器組件134識別部分148-150中的哪個部分是應當被處理以便確保各個租戶系統104-106看到可接受的性能的下一個部分。它將這向調度器通信組件136進行指示,調度器通信組件136接著向改變請求處理系統116發送接下來的改變152。通過將針對每個租戶的改變請求分割成常見尺寸的部分,并且接著通過對待由改變請求處理系統116進行的改變的那些部分進行調度,改變調度組件118可以控制由租戶系統104-106中的每個租戶系統在進行他們所請求的改變時所觀察到的性能等級(例如,延遲)。組件118可以根據預先定義的公平策略119或者以其他方式來完成該動作。因此,組件118可以確保沒有單個租戶或租戶的分組壓制改變請求處理系統116從而極大地損害其他租戶。替代地,組件118可以根據可以由管理員或其他人員設置或者以其他方式確定的公平策略119來對改變進行調度。
圖3A和圖3B(統稱為圖3)示出了在進行租戶改變時基于云的多租戶服務系統102的改變調度組件118和其他組件的操作的一個示例。系統102首先接收針對租戶的改變請求。這由圖3中的框156指示。改變請求將說明性地包括識別正在進行改變的租戶系統104-106的租戶識別器,以及對對應的租戶數據的一組所請求的改變。
一旦接收到改變請求,改變調度組件118中的改變切分組件132就訪問租戶行為監視系統120以獲得進行請求的租戶行為特性和其他數據142。這由框158指示。如在上文中簡要地討論的,那些特性可以包括租戶類型160。租戶類型可以指示租戶是付費租戶還是具有試用賬戶的租戶。租戶類型還可以指示已經由進行請求的租戶購買的、或者被許可給進行請求的租戶的服務的等級。另外,租戶類型識別器124可以提供對被許可給進行請求的租戶的座位的數量162以及進行請求的租戶的活動用戶的數量164的指示。其也可以包括識別特定的類型的租戶的多種其他識別器。
流入業務監視器126和流出業務監視器128可以提供指示當前正請求改變的租戶的數量的信息。這由框166指示。其可以識別流入和流出業務168的單位(例如,已經接收到的改變請求的數量、每個改變請求中的改變的數量等)、正被請求的改變的類型、以及分別由流入和流出業務監視器126和128所執行的其他分析結果。
其他行為監視組件130也可以提供其他項目。例如,它們可以監視或測量由租戶104-106所進行的改變請求與其中由改變請求處理系統116實際所進行的寫操作之間的延遲。延遲由圖3中的框170來指示。其他組件130可以提供指示延遲如何隨著時間改變的歷史數據172。所述數據可以是滾動的平均數、或者其他歷史數據172。另外,租戶行為監視系統120可以提供可以由改變調度組件118用來調度待進行的改變的其他特性174。
基于由改變調度組件118所接收到的改變請求以及行為特性和其他數據142,改變切分組件132確定是否需要將當前接收到的改變請求切分成部分。這由圖3中的框176來指示。這可以參考公平策略119來完成。公平策略119可以采用寬泛的多種不同的形式。例如,公平策略119可以被實施為標識在由數據142所指示的某些條件下改變請求將如何被切分和調度的一組規則。公平策略119可以是靜態策略或者是隨著可用資源的等級、隨著被服務的租戶的數量等而改變的動態策略。
例如,如果當前接收到的改變請求是針對對租戶的電子郵件系統的大量增加的,則改變切分組件132可以確定,如果請求這些改變中的所有改變,則這將壓制改變請求處理系統116的資源,以使得其他進行請求的租戶將在延遲方面遭受性能降低。因此,改變切分組件132可以將剛接收到的改變請求切分成較小的部分148,以使得針對該進行請求的租戶的改變僅僅每次一個部分地被提供給改變請求處理系統116,以與來自其他進行請求的租戶的改變請求部分交織。以該方式,可以以交織的方式將來自其他進行請求的租戶的改變的部分提供至處理系統116,以使得在進行所請求的改變時所有進行請求的租戶都關于改變請求處理系統116的性能而受到公平的對待。在一些示例中,可以不以相同的速率(例如,每個租戶一個部分)將不同租戶的部分提供至處理系統116。替代地,可以針對某些類型的租戶而優先地提供部分。例如,針對已經對服務付費的進行請求的租戶、針對從具有試用賬戶的進行請求的租戶提供的每一個部分,可以將兩個部分提供至處理系統116。可以在公平策略196中或者在其他地方陳述這些類型的優先化的處理。類似地,改變切分組件132也可以改變每個進行請求的租戶的部分的大小,以獲得期望的公平。
如果改變切分組件132確定(基于當前所接收到的請求中的改變的數量或者基于其他特性和數據142)不需要將請求切分成部分,則將改變請求視為單個部分。這由框178來指示。
然而,如果需要將改變請求切分,則改變切分組件132將改變請求切分成部分并且以每個租戶為基礎將它們儲存在未決改變儲存138中。將改變請求切分成部分由圖3中的框180來指示。
接著,下一改變識別器組件134確定待處理部分的順序。即,下一改變識別器組件134對數據儲存器138中的各個部分進行調度,以用于由改變請求處理系統116來處理。下一改變識別器組件134以這樣的方式來進行操作:其以公平的方式跨所有進行請求的租戶來分配改變請求處理系統116的處理資源。在一個示例中,其按順序每租戶調度一個部分,并且重復該調度過程直到針對所有進行請求的租戶進行了改變的部分中的所有部分為止。在另一個示例中,如在上文中所提及的,其可以針對付費租戶調度多個部分而針對具有試用賬戶的租戶調度較少部分。當然,其也可以以其他方式在租戶間進行區分。其說明性地根據可以由管理員或者以其他方式確定的公平策略119來對改變進行調度。對部分進行調度由圖3中的框182來指示。
一旦調度了改變的部分,下一改變識別器組件134就選擇待進行的改變的下一部分并將其識別至調度器通信組件136。調度器通信組件136向改變請求處理系統116發送該部分,或者將其識別至改變請求處理系統116,以使得系統116可以從未決改變儲存138中拉取那些改變請求。在兩種情況中的任一情況下,系統116進行與待針對其進行改變的下一部分相對應的改變。選擇下一部分并且在所選擇的部分中進行改變由圖3中的框184和186來指示。
下一改變識別器組件134接著確定是否存在待處理的更多部分。這由框188來指示。如果存在,則改變切分組件132確定其他租戶是否同時具有所請求的更多改變。這由框190來指示。如果沒有,則處理便回到框184,其中,下一所調度的部分被識別并且被提供至改變請求處理系統116。
然而,如果在框190處確定一個或多個額外的租戶已經請求了改變,則改變切分組件132再次接收與進行請求的租戶相對應的特性142,并且確定新進行請求的租戶的請求是否也需要被切分。這由框192來指示。如果不需要,則處理回到框182,其中,對新的改變請求進行調度。然而,如果新的改變請求中的改變需要被切分,則改變切分組件132將那些改變請求切分成部分并且將它們置于未決改變儲存138中。這由圖3中的框194來指示。同樣,在框182處,新切分的改變請求與已經存在的改變請求一起被調度,并且處理繼續直到在框188處確定不需要處理更多的改變請求為止。
因此,可以看到改變調度組件118和監視系統120確保大租戶不會耗盡(starve)較小的租戶的規定的資源。其調度板載(onboarding)活動和其他改變請求活動,以使得以公平的方式來分配由所有租戶所體驗的性能。改變調度組件118是可擴展的以迎合不同的商業場景,例如基于使用系統102的租戶的類型的差異化行為。同樣,系統并不依賴于租戶的良好的行為。即,系統不依賴于租戶控制它們自身的改變請求,以便不造成其他租戶的性能上的降低。替代地,系統可以調度系統的資源,以使得相比于其他的、較大的租戶,較小的租戶不受影響(例如,它們不體驗較高的延遲)。系統實時地或接近實時地監視租戶的行為,并且系統決定對于給定的租戶一次處理多少改變。這使得系統能夠針對板載或其他改變處理活動而為所有租戶提供公平的量的帶寬和其他計算資源。
本討論已經提及了處理器和服務器。在一個實施例中,處理器和服務器包括具有相關聯的存儲器和定時電路(沒有分別地示出)的計算機處理器。它們是其所屬的系統或設備的功能部件,并且由這些系統或設備來激活,并且它們促進這些系統中的其他部件或項目的功能。
同樣,還討論了多個用戶界面顯示。所述用戶界面顯示可以采用寬泛的多種不同的形式,并可以具有布置在其上的寬泛的多種不同的用戶可致動輸入機制。例如,用戶可致動輸入機制可以是文本框、勾選框、圖標、鏈接、下拉菜單、搜索框等。它們還可以以寬泛的多種不同的方式來致動。例如,它們可以使用指向和點擊設備(例如,軌跡球或鼠標)來致動。它們可以使用硬件按鍵、開關、操縱桿或鍵盤、拇指開關或者拇指墊等來致動。它們還可以使用虛擬鍵盤或者其他虛擬致動器來致動。另外,在顯示這些用戶界面的屏幕是觸摸感應屏幕的情況下,它們可以使用觸摸手勢來致動。同樣,在顯示它們的設備具有語音識別組件的情況下,它們可以使用語音命令來致動。
還討論了多個數據存儲。應當注意的是,可以將它們中的每個數據存儲分成多個數據存儲。所有這些數據存儲可以對訪問這些數據存儲的系統而言是本地的,所有這些數據存儲可以是遠程的,或者可以一些是本地的而其他的是遠程的。在本文中構想所有這些配置。
同樣,附圖示出了具有歸屬于每個框的功能的多個框。應當注意的是,可以使用更少的框因此由更少的組件來執行功能。此外,可以使用具有分布在更多組件之間的功能的更多的框。
圖4是示出了其中可以實現系統102的多租戶云架構196(云196)的更加詳細的示例的框圖。圖4示出了更加詳細的其他云實現組件122(在圖1中所示出的)的一個示例。
云計算提供了不需要末端用戶了解傳遞服務的系統的物理位置或配置的計算、軟件、數據訪問、和存儲服務。在各種實施例中,云計算使用合適的協議而通過諸如互聯網之類的廣域網來傳遞服務。例如,云計算提供者通過廣域網傳遞應用并且可以通過網絡瀏覽器或任何其他計算組件對它們進行訪問。可以將架構100的軟件或組件以及對應的數據存儲在遠程位置處的服務器上。可以在遠程數據中心位置處對云計算環境中的計算資源進行整合,或者它們可以是分散的。云計算基礎設施可以通過共享的數據中心來傳遞服務,即使它們對用戶而言表現為單個訪問點。因此,在本文中所描述的組件和功能可以使用云計算架構從遠程位置處的服務提供者來提供。可替代地,它們可以從傳統服務器來提供,或者它們可以直接安裝在客戶端設備上,或者以其他方式來提供。
該描述旨在包括公共云計算和私有云計算兩者。云計算(公共的和私有的兩者)提供大體上資源的無縫集中化(pooling),而且降低了管理和配置底層硬件基礎設施的需求。
公共云是由供應者所管理的,并且通常支持多個客戶使用相同的基礎設施。同樣,與私有云相反,公共云可以使得末端用戶免于對硬件進行管理。私有云可以由組織自行管理并且設施通常并不與其他組織共享。該組織仍然要在一定程度上維護硬件,例如安裝和維修等。
圖4示出了系統102中的組件122,其說明性地包括虛擬化系統198、基礎設施組件200、應用平臺組件202、和應用軟件組件204。基礎設施組件200可以包括安全組件206、硬件/軟件基礎設施208、服務器210、負載平衡組件212、網絡組件214,并且其也可以包括其他組件216。
應用平臺組件202可以包括執行運行時組件218、操作系統組件220、數據庫組件222、網絡服務器組件224,并且其也可以包括其他組件226。應用軟件組件204說明性地包括用戶接口組件228、應用工作流230、應用邏輯232、數據庫系統234,并且其可以包括其他項目236。
取決于由云196所實現的多租戶的等級,虛擬化系統198將把物理計算設備組件122電子地分隔成一個或多個虛擬設備。可以使用和管理這些設備中的每個設備以執行計算任務。
多租戶云計算架構196可以根據多個不同的模型而在多個不同的等級處提供服務。所述服務可以包括例如基礎設施即服務(IaaS)、平臺即服務(PaaS)、和軟件即服務(SaaS)等。IaaS是最基礎的,并且較高等級的模型中的每個模型(分別為PaaS和SaaS)是從較低等級的模型的細節中提取的。
在IaaS中,提供了物理機或虛擬機、以及其他資源。監督組件(有時也被稱為管理程序)運行虛擬機。多個不同的管理程序可以用于運行相對大數量的虛擬機,并且根據各個租戶的需求來按比例縮放。IaaS模型還可以按需求供應額外的資源(例如,其他基礎設施組件200)。為了使租戶部署它們的應用,它們在云基礎設施組件200上安裝操作系統映像以及它們的應用軟件。接著,租戶負責維護操作系統和應用軟件。
PaaS涉及云架構196提供應用平臺組件202即服務。應用開發者可以在云平臺組件202上開發并運行他們的軟件,而不需要管理底層硬件和軟件層。
SaaS涉及架構196提供對應用組件204中的應用軟件和數據庫的訪問。云架構196管理基礎設施組件200和運行應用的平臺組件202。云196還安裝并操作在應用組件204中的應用軟件,并且租戶對軟件進行訪問但不管理云基礎設施組件200或應用在其中運行的平臺組件202。在這樣的實現中,虛擬化系統198在運行時提供多個虛擬機以滿足變化的工作負荷。負載平衡器跨虛擬機來分配工作。該過程對于僅看到至應用的單個接入點的租戶而言常常是透明的。
在多租戶環境中,任何機器都可以對部署租戶系統104-106的多于一個的用戶組織進行服務。然而,多租戶可以應用于云架構的所有三個層(IaaS、PaaS、和SaaS)。精確的多租戶的程度可以基于核心應用(或應用組件204)中有多少被設計為跨租戶104-106共享。相對高程度的多租戶允許數據庫方案被共享,并且支持商業邏輯、工作流、和用戶接口層的自定義。在相對低程度的多租戶中,IaaS和PaaS組件200和202分別由具有專用于每個租戶的專用虛擬化組件的應用組件204共享。
已經關于供應軟件即服務的基于云的多租戶服務系統102進行了以上的討論。因此,虛擬化系統198將提供分離的虛擬機以在應用軟件層上為每個租戶104-106提供它們自己的、安全的、和分離的虛擬計算環境。因此,每個租戶104-106可以對它們自己的應用(例如,它們自己的電子郵件應用、文檔管理系統、商業系統等)進行改變。當如在上文中關于圖1-圖3所描述的那樣完成時,它們可以這樣做而不會不公平地影響由其他租戶所觀察到的性能。
還預期到的是,系統102的一些元件可以被設置在云中,而其他元件可以不被設置在云中。作為示例,數據庫和數據儲存器可以被設置在云196外部,并且通過云196來訪問。在另一個示例中,其他組件可以位于云196外部。無論它們位于何處,它們都可以由租戶系統104-106中的設備通過網絡300(廣域網或局域網)直接地訪問,它們可以由服務托管在遠程站點處,或者它們可以通過云被提供為服務或者由駐留在云中的連接服務來訪問。在本文中預期到這些架構中的所有架構。
還應當注意的是,可以將架構100或其部分設置在寬泛的多種不同的設備上。這些設備中的一些設備包括:服務器、臺式計算機、膝上型計算機、平板計算機、或其他移動設備,例如掌上計算機、蜂窩電話、智能電話、多媒體播放機、個人數字助理等。
圖5提供了可以運行架構100或租戶104-106的組件或者與架構100進行交互、或兩者的客戶端設備16的組件的總體框圖。在設備16中,提供允許手持設備與其他計算設備進行通信的通信鏈路13,并且在某些實施例中,提供用于自動地接收信息(例如,通過掃描)的信道。通信鏈路13的示例包括紅外端口、串行/USB端口、諸如以太網端口之類的有線網絡端口、以及允許通過一個或多個通信協議進行通信的無線網絡端口,其中所述一個或多個通信協議包括通用分組無線服務(GPRS)、LTE、HSPA、HSPA+和其他3G與4G無線協議、1Xrtt和短消息服務(其是用于提供至網絡的蜂窩接入的無線服務)、以及提供至網絡的本地無線連接的Wi-Fi協議和藍牙協議。
在其他實施例中,在連接至可移動安全數字(SD)卡接口15的SD卡上接收應用或系統。SD卡接口15和通信鏈路13沿著總線19與處理器17(其也可以實施在其他附圖中所描述的處理器或服務器)進行通信,其中總線19也連接至存儲器21和輸入/輸出(I/O)組件23、以及時鐘25和定位系統27。
在一個實施例中,提供I/O組件23以促進輸入和輸出操作。設備16的各種實施例的I/O組件23可以包括諸如按鍵、觸摸傳感器、多點觸摸傳感器、光學或視頻傳感器、語音傳感器、觸摸屏、接近度傳感器、麥克風、傾斜傳感器、以及重力開關之類的輸入組件和諸如顯示設備、揚聲器、和/或打印機端口之類的輸出組件。也可以使用其他I/O組件23。
時鐘25說明性地包括輸出時間和日期的實時時鐘組件。還可以說明性地為處理器17提供定時功能。
定位系統27說明性地包括輸出設備16的當前地理位置的組件。這可以包括例如全球定位系統(GPS)接收機、LORAN系統、航位推算系統、蜂窩三角測量系統、或其他定位系統。還可以包括例如生成期望的地圖、導航路線、和其他地理功能的地圖軟件或者導航軟件。
存儲器21存儲操作系統29、網絡設置31、應用33、應用配置設置35、數據存儲37、通信驅動器39、以及通信配置設置41。存儲器21可以包括所有類型的有形的易失性和非易失性計算機可讀存儲器設備。其還可以包括計算機存儲介質(在下文中所描述的)。存儲器21存儲計算機可讀指令,當由處理器17執行時,所述計算機可讀指令使得該處理器根據這些指令來執行計算機實現的步驟或功能。類似地,設備16可以具有客戶端商業系統24,其可以運行各種商業應用或者實施租戶系統104-106的部分或全部。也可以由其他組件來激活處理器17以促進它們的功能。
網絡設置31的示例包括諸如代理信息、互聯網連接信息、以及映射之類的事情。應用配置設置35包括針對具體的企業或用戶來定制應用的設置。通信配置設置41提供用于與其他計算機進行通信的參數,并包括諸如GPRS參數、SMS參數、連接用戶名和密碼之類的項目。
應用33可以是先前已經存儲在設備16上的應用,或者在使用期間安裝的應用,盡管這些應用也可以是操作系統29的一部分,或者托管在設備16外部。
圖6示出了在其中設備16是平板計算機600的一個實施例。在圖6中,計算機600被示為具有用戶界面顯示屏602。屏幕602可以是觸摸屏(因此可以使用來自用戶的手指的觸摸手勢來與應用進行交互),或者是從筆或者觸摸筆接收輸入的支持筆的界面。其也可以使用屏上虛擬鍵盤。當然,也可以通過合適的附接機制(例如,無線鏈路或者USB端口)來附接至鍵盤或者其他用戶輸入設備。計算機600也可以說明性地接收語音輸入。
也可以使用設備16的額外的示例。它們可以包括功能電話、智能電話、或移動電話。電話可以包括用于撥打電話號碼的一組鍵盤、能夠顯示包括應用圖像、圖標、網頁、照片、和視頻在內的圖像的顯示器、以及用于選擇在顯示器上所示出的項目的控制按鈕51。電話包括用于接收諸如通用分組無線服務(GPRS)和1Xrtt之類的蜂窩電話信號以及短消息服務(SMS)信號的天線。在一些實施例中,電話還包括接受安全數字(SD)卡57的SD卡插槽55。
移動設備也可以是個人數字助理(PDA)或多媒體播放器或平板計算設備、等等(在下文中成為PDA)。PDA包括感應屏,其感測當觸摸筆(或者其他指向器,例如用戶的手指)位于該屏幕上時該觸摸筆的位置。這允許用戶選擇、突出顯示和移動屏幕上的項目、以及畫和寫。PDA還包括多個用戶輸入鍵或者按鈕,其允許用戶滾動瀏覽在顯示器上所顯示的菜單選項或其他顯示選項,并且允許用戶在不接觸顯示器的情況下改變應用或者選擇用戶輸入功能。盡管沒有示出,但PDA可以包括內置天線和支持與其他計算機進行無線通信的紅外發射機/接收機、以及支持至其他計算設備的硬件連接的連接端口。通常而言,這樣的硬件連接是通過支架(cradle)來實現的,該支架通過串行或USB端口連接至其他計算機。因此,這些連接是非網絡連接。
圖7示出了智能電話71。智能電話71具有顯示圖標或區塊(tile)或者其他用戶輸入機制75的觸摸感應顯示器73。用戶可以使用機制75來運行應用、進行通話、執行數據傳輸操作等。通常而言,智能電話71構建在移動操作系統上,并且提供比特征電話更先進的計算能力和連通性。
應當注意的是,其他形式的設備16是可能的。
圖8是其中可以部署架構100或其部分的計算環境的一個示例。參考圖8,用于實現一些實施例的示例系統包括以計算機810為形式的通用計算設備。計算機810的組件可以包括但不限于:處理單元820(其可以包括在上文中所討論的處理器或服務器)、系統存儲器830、以及將包括系統存儲器的各種系統組件耦合至處理單元820的系統總線821。系統總線821可以是幾種類型的總線結構中的任何一種,包括使用多種總線架構中的任何一種的存儲器總線或存儲器控制器、外圍總線、以及本地總線。作為示例而非限制,這樣的架構包括工業標準結構(ISA)總線、微通道架構(MCA)總線、增強型ISA(EISA)總線、視頻電子標準關聯(VESA)本地總線、以及外圍組件互連(PCI)總線(也被稱為Mezzanine總線)。關于圖1所描述的存儲器和程序可以部署在圖8的對應的部分中。
計算機810通常包括寬泛的多種計算機可讀介質。計算機可讀介質可以是能夠由計算機810來訪問的任何可用的介質,并且包括易失性介質和非易失性介質兩者、可移動介質和不可以移動介質兩者。作為示例而非限制,計算機可讀介質可以包括計算機存儲介質和通信介質。計算機存儲介質不同于并且不包括經調制的數據信號或載波。計算機存儲介質包括硬件存儲介質,所述硬件存儲介質包括以用于存儲信息(例如,計算機可讀指令、數據結構、程序模塊、或其他數據)的任何方法或技術來實現的易失性和非易失性的、可以移動和不可移動的介質。計算機存儲介質包括但不限于:RAM、ROM、EEPROM、閃速存儲器或其他存儲器技術、CD-ROM、數字通用盤(DVD)或者其他光盤存儲、盒式磁帶、磁帶、磁盤存儲或其他磁存儲設備、或者可以用于存儲期望的信息并且可以由計算機810來訪問的任何其他介質。通常而言,通信介質實施計算機可讀指令、數據結構、程序模塊、或傳輸機制中的其他數據,并且包括任何信息傳遞介質。術語“已調制的數據信號”是指這樣的信號:具有使該信號的特性中的一個或多個以如將信息編碼在信號中的方式來設置或改變的信號。作為示例而非限制,通信介質包括諸如有線網絡或直接有線連接之類的有線介質,以及諸如聲學、RF、紅外、和其他無線介質之類的無線介質。上文中的任何組合也應當被包括在計算機可讀介質的范圍內。
系統存儲器830包括以易失性存儲器和/或非易失性存儲器為形式的計算機存儲介質,例如只讀存儲器(ROM)831和隨機存取存儲器(RAM)832。通常將基本輸入/輸出系統833(BIOS)(其包含有助于例如在啟動期間,在計算機810中的元件之間傳輸信息的基本例程)存儲在ROM 831中。RAM 832通常包含可以由處理單元820立即訪問和/或目前由處理單元820操作的數據和/或程序模塊。作為示例而非限制,圖8示出了操作系統834、應用程序835、其他程序模塊836、以及程序數據837。
計算機810還可以包括其他可移動/不可移動易失性/非易失性計算機存儲介質。僅僅作為示例,圖8示出了從不可移動、非易失性磁介質中讀取信息或者向其寫入信息的硬盤驅動器841、用于從可移動、非易失性磁盤852中讀取信息或者向其寫入信息的磁盤驅動器851、以及用于從可移動、非易失性光盤856(例如,CD ROM或其他光學介質)中讀取信息或者向其寫入信息的光盤驅動器855。可以在示例性操作環境中使用的其他可移動/不可移動、易失性/非易失性計算機存儲介質包括但不限于:盒式磁帶、閃速存儲器卡、數字通用盤、數字視頻磁帶、固態RAM、固態ROM等。硬盤驅動器841通常通過不可移動存儲器接口(例如,接口840)而連接至系統總線821,磁盤驅動器851和光盤驅動器855通常通過可移動存儲器接口(例如,接口850)連接至系統總線821。
可替代地或額外地,在本文中所描述的功能可以至少部分地由一個或多個硬件邏輯組件來執行。作為示例而非限制,可以使用的說明性類型的硬件邏輯組件包括:現場可編程門陣列(FPGA)、專用集成電路(ASIC)、專用標準產品(ASSP)、片上系統(SOC)、復雜可編程邏輯器件(CPLD)等。
在上文中討論并在圖8中示出的驅動器及其相關聯的計算機存儲介質提供對計算機可讀指令、數據結構、程序模塊、和針對計算機810的其它數據的存儲。例如,在圖8中,硬盤驅動器841被示出為對操作系統844、應用程序845、其它程序模塊846、以及程序數據847進行存儲。應當注意的是,這些組件可以與操作系統834、應用程序835、其它程序模塊836、以及程序數據837相同或不同。在這里,給操作系統844、應用程序845、其它程序模塊846、以及程序數據847以不同的標號從而說明至少它們是不同的復本。
用戶可以通過諸如鍵盤862、麥克風863、以及指向設備861(例如,鼠標、軌跡球、或觸摸板)之類的輸入設備來向計算機810中輸入命令和信息。其它輸入設備(未示出)可以包括:操縱桿、游戲墊、碟式衛星天線、掃描儀等。這些和其它輸入設備通常通過耦合至系統總線的用戶輸入接口860而連接至處理單元820,但也可以通過諸如并行端口、游戲端口、或通用串行總線(USB)之類的其它接口和總線結構而連接。可視顯示器891或者其它類型的顯示設備也經由諸如視頻接口890之類的接口而連接至系統總線821。除了監視器之外,計算機還可以包括其它外圍輸出設備,例如揚聲器897和打印機896,它們可以通過輸出外圍接口895而連接。
使用至一個或多個遠程計算機(例如,遠程計算機880)的邏輯連接來在網絡化環境下操作計算機810。遠程計算機880可以是個人計算機、手持設備、服務器、路由器、網絡PC、對等設備、或其它公共網絡節點,并且通常包括在上文中相對于計算機810所描述的元件中的許多個或全部元件。在圖8中所描繪的邏輯連接包括局域網(LAN)871和廣域網(WAN)873,但也可以包括其它網絡。這樣的網絡環境在辦公室、企業范圍的計算機網絡、內聯網、以及互聯網中是常見的。
當在LAN網絡環境中使用時,將計算機810通過網絡接口或者適配器870連接至LAN 871。當在WAN網絡環境中使用時,計算機810通常包括調制解調器872、或者用于通過WAN 873(例如,互聯網)來建立通信的其它單元。可以將調制解調器872(其可以是內置的或者外置的)經由用戶輸入接口860或者其它合適的機制連接至系統總線821。在網絡化環境中,可以將相對于計算機810或其一部分所描述的程序模塊存儲在遠程存儲器存儲設備中。作為示例而非限制,圖8將遠程應用程序885示出為駐留在遠程計算機880上。應當理解的是,所示出的網絡連接是示例性的,并且也可以使用在計算機之間建立通信鏈路的其它方式。
還應當注意的是,可以以不同的方式對在本文中所描述的不同的實施例進行組合。即,可以將一個或多個實施例的部分與一個或多個其它實施例的部分進行組合。在本文中構想所有這些組合。
示例1是一種多租戶計算系統,包括:
租戶行為監視系統,其生成指示發送對應的改變請求的進行請求的租戶的特性的數據,每個改變請求都指示對與所述進行請求的租戶相對應的租戶數據的所請求的改變;
改變調度組件,其從多個不同的租戶接收改變請求,所述改變調度組件基于所述進行請求的租戶的所述特性而將所述改變請求劃分成多個部分的改變,并且調度待對對應的租戶數據進行的改變的部分;以及
改變請求處理系統,其按照由所述改變調度組件所調度的那樣對所述租戶數據進行改變請求。
示例2是任何或所有先前的示例的多租戶計算系統,其中,所述改變調度組件包括:
改變切分組件,其基于指示在針對所述進行請求的租戶進行改變時所述改變請求處理系統的性能的性能信息,來確定是否要將每個改變請求分成多個不同的部分以供調度。
示例3是任何或所有先前的示例的多租戶計算系統,其中,所述改變調度組件還包括:
下一改變識別器組件,其基于所述性能信息來對待由所述改變請求處理系統進行的下一改變進行調度。
示例4是任何或所有先前的示例的多租戶計算系統,其中,所述下一改變切分組件和所述下一改變識別器組件基于指示針對不同的進行請求的租戶的期望的性能的租戶公平策略來分別確定是否要將每個改變請求分成多個不同的部分,并且調度待進行的所述下一改變。
示例5是任何或所有先前的示例的多租戶計算系統,其中,所述下一改變切分組件和所述下一改變識別器組件基于對針對不同的進行請求的租戶的性能的測量來分別確定是否要將每個改變請求分成多個不同的部分,并且調度待進行的所述下一改變。
示例6是任何或所有先前的示例的多租戶計算系統,其中,所述租戶行為監視系統包括:
一組性能測量組件,其提供對針對所述不同的進行請求的租戶的性能的測量。
示例7是任何或所有先前的示例的多租戶計算系統,其中,所述租戶行為監視系統包括:
業務監視組件,其將由所述進行請求的租戶中的每個進行請求的租戶所請求的改變的數量作為對性能的測量來監視并提供。
示例8是任何或所有先前的示例的多租戶計算系統,其中,所述租戶行為監視系統包括:
延遲監視器,其將指示由所述進行請求的租戶中的每個進行請求的租戶在發送所述改變請求與具有由所述改變請求處理系統所進行的對租戶數據的所述對應的改變之間所體驗的延遲的延遲測量作為對性能的測量來監視并提供。
示例9是示例6的所述多租戶計算系統,其中,所述租戶行為監視系統包括:
租戶類型識別器,其識別每個行請求的租戶的的租戶類型,并且將所述租戶類型作為所述進行請求的租戶的特性中的一個特性來提供。
示例10是多租戶計算系統,包括:
租戶改變系統,其從多個不同的進行請求的租戶接收改變請求,所述改變請求指示對與所述不同的進行請求的租戶相對應的租戶數據的改變;以及
調度組件,其基于所述改變請求中的每個改變請求中的改變的數量,來針對所述多個不同的進行請求的租戶而將所述改變請求劃分成改變的分組并對所述改變的分組進行調度,以跨所述改變請求來分配改變處理資源。
示例11是任何或所有先前的示例的多租戶計算系統,其中,所述租戶改變系統還包括:
改變請求處理系統,其包括所述改變處理資源,所述改變請求處理系統按照由所述調度組件所調度的那樣在所述改變的分組中對所述租戶數據進行改變。
示例12是任何或所有先前的示例的多租戶計算系統,其中,所述租戶改變系統還包括:
租戶行為監視系統,其監視所述改變請求中的每個改變請求中的改變的數量。
示例13是任何或所有先前的示例的多租戶計算系統,其中,所述租戶行為監視系統包括:
延遲監視器,其監視指示發送改變請求與具有由所述改變請求處理系統所進行的改變請求中的改變之間的時間的針對每個租戶的延遲。
示例14是任何或所有先前的示例的多租戶計算系統,其中,所述租戶行為監視系統包括:
租戶識別器,其識別與每個進行請求的租戶相對應的租戶的類型。
示例15是一種方法,其包括:
在多租戶計算系統中,監視指示在進行由進行請求的租戶所請求的、對租戶數據的所請求的改變時租戶改變系統的性能的性能度量;
將所述所請求的改變劃分成改變的多個部分;
基于所述性能度量,通過在所述進行請求的租戶間分配改變請求處理資源來調度待進行的改變的所述部分;以及
使用所分配的改變請求處理資源,按照所調度的那樣進行改變的所述部分中的每個部分中的對所述租戶數據的改變。
示例16是任何或所有先前的示例的方法,其中,調度改變的所述部分包括:
調度改變的所述部分以針對相對于請求相對大量改變的進行請求的租戶而言的請求相對少量改變的進行請求的租戶而保持給定的性能等級,所述相對大量的改變相對于相對少量的改變是大的。
示例17是任何或所有先前的示例的方法,其中,調度改變的所述部分包括:
從第一所請求的改變調度待進行的改變的第一部分,所述改變的第一部分是在所述第一所請求的改變中所請求的改變的子集。
示例18是任何或所有先前的示例的方法,其中,調度改變的所述部分包括:
在從所述第一所請求的改變調度改變的任何額外的部分之前,從第二所請求的改變調度待進行的改變的第二部分,改變的所述第二部分是在所述第二所請求的改變中的所述改變的子集。
示例19是任何或所有先前的示例的方法,其中,監視性能包括:
檢測與每個進行請求的租戶相對應的租戶的類型,所述租戶的類型至少標識每個進行請求的租戶包括支付對所述多租戶計算系統的訪問的付費租戶還是包括具有對多租戶計算系統的非支付訪問的租戶。
示例20是任何或所有先前的示例的方法,其中,調度改變的所述部分包括:
基于所述租戶的類型來調度改變的所述部分,從而每個進行請求的租戶都具有在給定范圍內的延遲。
盡管已經用特定于結構特征和/或方法行為的語言描述了本主題,但應當理解的是,在所附權利要求中所定義的主題非必須限于在上文中所描述的具體的特征或行為。相反,在上文中所描述的具體的特征或行為是作為實現所述權利要求的示例形式而公開的。