欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)中心編程模型的制作方法

文檔序號:6594620閱讀:233來源:國知局
專利名稱:數(shù)據(jù)中心編程模型的制作方法
數(shù)據(jù)中心編程模型背景大規(guī)模數(shù)據(jù)中心是相對較新的人類產(chǎn)物,而其組織和結(jié)構(gòu)隨著其提供的商業(yè)機會 的增加而快速地進化。典型的現(xiàn)代數(shù)據(jù)中心是運行標(biāo)準(zhǔn)軟件包集合的硬件群集的有組織的 集合,諸如由高速聯(lián)網(wǎng)、路由器和防火墻互連的web服務(wù)器數(shù)據(jù)庫服務(wù)器等等。組織這些機 器、優(yōu)化它們的配置、調(diào)試它們配置中的差錯以及在構(gòu)成機器上安裝和卸載軟件的任務(wù)在 很大程度上留給了操作人員。數(shù)據(jù)中心所支持的web服務(wù)(例如,作為服務(wù)的軟件“Mas”)也正在快速地進化 (例如,公司可能首先提供搜索服務(wù),隨后提供電子郵件服務(wù),然后提供地圖服務(wù)等等)。這 些服務(wù)依賴于被分發(fā)到一個或多個數(shù)據(jù)中心且由一個或多個數(shù)據(jù)中心托管的應(yīng)用。服務(wù)運 營者和數(shù)據(jù)中心運營者通常加入對具體硬件資源(例如,處理器的數(shù)量、盤空間、存儲器、 帶寬等等)的協(xié)議。典型的安排按照提供服務(wù)的應(yīng)用“存活”在專用服務(wù)器上的方式來將 特定數(shù)量的服務(wù)器和盤空間貢獻給服務(wù)。當(dāng)條件改變時,這種類型的安排招致數(shù)據(jù)中心和 服務(wù)運營者的大量管理開銷。例如,數(shù)據(jù)中心運營者可以升級影響服務(wù)的應(yīng)用的執(zhí)行的各 種硬件組件。在該示例中,硬件改變可以生成迫使服務(wù)運營者修訂或重新開發(fā)其應(yīng)用來解 決這些改變從而向服務(wù)的最終用戶確??山邮艿姆?wù)水平的連鎖效應(yīng)。本文描述了關(guān)于可以便于應(yīng)用開發(fā)、托管和執(zhí)行的體系結(jié)構(gòu)和編程模型的各種示 例性技術(shù)。概述一種示例性方法包括在數(shù)據(jù)中心處托管服務(wù),該服務(wù)依賴于根據(jù)編程模型而開發(fā) 的至少一個軟件組件,并且該數(shù)據(jù)中心包括抽象該數(shù)據(jù)中心的資源的相應(yīng)的編程模型抽象 層;接收對該服務(wù)的請求;以及響應(yīng)于該請求,將數(shù)據(jù)中心的至少某些資源分配給該服務(wù) 來允許履行該請求,其中該編程模型抽象層至少部分地基于對至少一個軟件組件中的資源 類的引用來執(zhí)行分配,可以修改該資源類來解決數(shù)據(jù)中心的一個或多個資源的改變。還描 述了各種其他設(shè)備、系統(tǒng)和方法。附圖描述參考以下附圖描述非限制性和非窮盡的示例

圖1是應(yīng)用開發(fā)、部署和托管的常規(guī)方法以及包括編程模型和用于抽象數(shù)據(jù)中心 的資源的相應(yīng)的抽象層的示例性方法的框圖;圖2是編程模型以及用于抽象數(shù)據(jù)中心的資源的相應(yīng)的抽象層的示例性體系結(jié) 構(gòu)的框圖;圖3是示例性編程模型抽象層和實際的物理資源以及表示數(shù)據(jù)中心內(nèi)的虛擬資 源的虛擬化層的框圖;圖4是用于部分地基于例如在接收請求時資源的可用性來分配資源以履行對服 務(wù)的請求的示例性技術(shù)的框圖;圖5是包括多個服務(wù)、服務(wù)級協(xié)定和事件跟蹤的示例性方案的框圖;圖6是應(yīng)用代碼和引用資源類和事件跟蹤的編程模型抽象層的近似邏輯的表示的框圖;圖7是其中編程模型抽象層可以例如部分地基于應(yīng)用中的語句或引用來分發(fā)組 件和/或提供組件的并行執(zhí)行的示例性方案的框圖;以及圖8是示例性計算設(shè)備的框圖。詳細(xì)描述示例性編程模型允許開發(fā)者開發(fā)以數(shù)據(jù)中心的編程模型抽象層為目標(biāo)的應(yīng)用 (例如,Web服務(wù)的應(yīng)用)。該編程模型抽象層可以使用數(shù)據(jù)中心資源來監(jiān)督應(yīng)用的執(zhí)行。 因此,開發(fā)者可以在不必知道關(guān)于數(shù)據(jù)中心的服務(wù)器、存儲設(shè)備等某些具體細(xì)節(jié)的情況下 開發(fā)要由數(shù)據(jù)中心托管的應(yīng)用。如此處所描述的,示例性編程模型和相關(guān)聯(lián)的抽象層抽象數(shù)據(jù)中心資源,從而將 應(yīng)用開發(fā)者與數(shù)據(jù)中心資源及其操作、維護等各方面隔離。該系統(tǒng)還可便于服務(wù)和數(shù)據(jù)中 心運營者之間的協(xié)商、增強服務(wù)的質(zhì)量并降低成本。圖1示出用于托管服務(wù)的常規(guī)方法101和示例性方法201。這些方法中的每一個 參考應(yīng)用開發(fā)階段103、應(yīng)用部署階段105、應(yīng)用托管階段107和應(yīng)用使用階段109來描述。對于常規(guī)方法101,在開發(fā)階段103,開發(fā)者根據(jù)編程模型110來選擇和開發(fā)應(yīng)用 120。如圖所示,編程模型110包括可被依賴來執(zhí)行所發(fā)開的應(yīng)用120中的特定功能的各個 類115。類115可以將操作計算機140的操作系統(tǒng)(OS) 130作為目標(biāo)。作為替換,類115可 以將運行時引擎或虛擬機作為目標(biāo),該運行時引擎或虛擬機可以是可存在于應(yīng)用120和OS 130之間的軟件層。在部署階段105,服務(wù)運營者將所開發(fā)的應(yīng)用120部署到數(shù)據(jù)中心150。如圖所示, 數(shù)據(jù)中心150包括各資源152-1,152-2,. . .,152_n。在部署階段105期間,數(shù)據(jù)中心運營 者通常將應(yīng)用120分配給具體資源。如所指示的,在托管階段107,專用資源152-2托管應(yīng) 用 120。一旦被托管,在使用階段109,用戶可以經(jīng)由用戶計算機160來請求使用應(yīng)用(即, 服務(wù))。在數(shù)據(jù)中心150接收到請求之后,該請求通過在專用資源152-2上執(zhí)行應(yīng)用120來
兩足。如“托管成本”框所指示的,在常規(guī)方法101中,服務(wù)運營者對為該服務(wù)獨占地保 留的資源152-2的使用記賬。在常規(guī)方法101中,如果數(shù)據(jù)中心運營者執(zhí)行影響資源152-2的硬件升級,則服務(wù) 運營者可以感受到這一改變的影響。例如,如果數(shù)據(jù)中心運營者升級服務(wù)器硬件和/或軟 件,則應(yīng)用120可能無法正確地執(zhí)行或盡可能高效地執(zhí)行。在這種情形中,數(shù)據(jù)中心運營者 可能無法直接通知服務(wù)運營者提供給最終用戶的服務(wù)中的故障或延遲。相反,服務(wù)運營者 可能接收到來自不滿的最終用戶的投訴。進而,服務(wù)運營者可能向數(shù)據(jù)中心運營者投訴并 從而對關(guān)系施加壓力,甚至要求托管成本的重新協(xié)商或主張違反合同的判斷。雖然服務(wù)運 營者和數(shù)據(jù)中心運營者之間的服務(wù)級協(xié)定可以解決由于升級而導(dǎo)致的服務(wù)中斷,但最終雙 方的目標(biāo)是提供可接受的服務(wù)。相反,示例性方法201依賴于將各種角色和責(zé)任轉(zhuǎn)移給數(shù)據(jù)中心運營者且對服務(wù) 提供者施加附隨義務(wù)的示例性編程模型210和相關(guān)聯(lián)的編程模型抽象層255。如圖1所示, 在開發(fā)階段103,開發(fā)者使用示例性編程模型210來開發(fā)示例性應(yīng)用220,而在部署、托管和使用階段105、107和109,示例性數(shù)據(jù)中心250依賴于編程模型抽象層255來管理應(yīng)用220 的資源。在示例性方法201中,編程模型210包括可被適當(dāng)?shù)胤旁趹?yīng)用220的應(yīng)用代碼中 的類215。類215包括編程模型抽象層255的資源管理專用的各個類。例如,類215可以包 括限制每單位時間的成本的成本類,設(shè)置每一請求的CPU功率的最小量的CPU類,設(shè)置每一 請求的RAM的最小量的存儲器類,等等。因此,編程模型210可以包括在每一請求的基礎(chǔ)上 設(shè)置某些要求的類215之中的一個或多個類。因為請求的數(shù)量可以改變或可以是未知的, 所以這種方法允許服務(wù)運營者和數(shù)據(jù)中心運營者在協(xié)商時具有某種靈活性,即,這種方法 可以減輕將資源專用于服務(wù)運營者的需求。如此處所描述的,可以將專用于數(shù)據(jù)中心250中的應(yīng)用220的管理的類集中(例 如,表現(xiàn)為特定代碼部分)在應(yīng)用220的代碼中或分布在整個應(yīng)用220的代碼中。此外,可 以一次(例如,在抽象層255的初始評估期間)或多次(例如,周期性地或只要數(shù)據(jù)中心 250中的條件發(fā)生改變時)依賴這些類。例如,應(yīng)用220的一部分代碼可以要求之后是引用 一組類215中的資源類的語句的具體功能,該資源類例如在給定典型的用戶請求的情況下 為該功能指定合適的存儲器。在部署階段105,在接收到應(yīng)用220之后,編程模型抽象層255可以執(zhí)行資源類的 所有語句來確定或估計響應(yīng)于每一用戶請求所需的資源要求和資源特性。這種分析還可以 幫助數(shù)據(jù)中心運營者確定托管應(yīng)用220的成本,如“托管成本”框所指示的,它指的是“基于 模型”的成本方法。在托管階段107,編程模型抽象層255可以依賴資源類來將托管特征賦予應(yīng)用 220。在使用階段109,因為可能不存在將應(yīng)用220托管在數(shù)據(jù)中心250內(nèi)的具體專用資源 上的要求,所以在數(shù)據(jù)中心250接收到請求時,可以依賴托管特征從而為應(yīng)用220的執(zhí)行提 供“可用”資源來滿足該請求。取決于托管特征,“可用”資源可以是滿足服務(wù)運營者的預(yù)期 的低成本、高成本等資源(例如,如在開發(fā)階段103期間被直接編程到代碼中)。在該示例 中,“可用”資源可由允許在管理資源時具有更多靈活性的數(shù)據(jù)中心運營者來確定(例如,為 了最低成本、為了維護等等)。在使用階段109,在應(yīng)用220的實際執(zhí)行期間,可以針對實際資源需求忽略資源語 句或偶爾對資源語句進行標(biāo)記和定基準(zhǔn)。編程模型抽象層255可以將這種信息存儲在日志 中以供在管理應(yīng)用220或管理一個或多個其他應(yīng)用時使用??傮w上,示例性方法201允許數(shù)據(jù)中心運營者在不必受到常規(guī)的、不靈活的專用 資源方法101綁定的情況下管理其對于服務(wù)的義務(wù)。圖2示出圖1的編程模型210和抽象層255的示例性體系結(jié)構(gòu)觀0。編程模型210 包括類215,類215進一步包括常規(guī)類216和資源類217。在構(gòu)建或開發(fā)步驟觀3中,根據(jù) 編程模型210來構(gòu)建應(yīng)用220,并且應(yīng)用220包括常規(guī)類221的語句和資源類223的語句。 在部署步驟觀5中,將應(yīng)用220部署到包括數(shù)據(jù)中心資源252的數(shù)據(jù)中心,在那里至少某些 資源支持編程模型抽象層255。如圖2的示例所示,編程模型抽象層255包括類庫模塊256、 數(shù)據(jù)中心信息模塊257和托管成本模塊258。在傳播步驟286中,數(shù)據(jù)中心信息模塊257行 動來將重要的數(shù)據(jù)中心信息傳播給類庫模塊256和/或托管成本模塊258。進而,如果類庫 模塊256確定需要對編程模塊210中的類215升級(例如,修訂、添加等等),則作出這些改變來確保編程模型210保持對編程模型抽象層252及其底層數(shù)據(jù)中心資源有效。如此處所描述的,一種示例性方法可以包括在數(shù)據(jù)中心處托管服務(wù),該服務(wù)依賴 于根據(jù)編程模型而開發(fā)的至少一個軟件組件,并且該數(shù)據(jù)中心包括抽象該數(shù)據(jù)中心的資源 的相應(yīng)的編程模型抽象層(參見,例如,圖1的編程模型210、應(yīng)用220、數(shù)據(jù)中心250和抽 象層25 ;接收對該服務(wù)的請求(參見,例如,圖1的使用階段109);以及,響應(yīng)于該請求, 將數(shù)據(jù)中心的至少某些資源分配給該服務(wù)來允許履行該請求,其中編程模型抽象層部分地 基于對至少一個軟件組件中的資源類的引用來執(zhí)行分配,可以修改該資源類來解決數(shù)據(jù)中 心的一個或多個資源的改變(參見,例如圖1的編程模型210的類215)。例如,資源類可以 是處理器資源類、存儲器資源類、帶寬資源類或另一類型的資源類。如以下更詳細(xì)地描述的,編程模型抽象層在分配資源以履行請求時,可以考慮在 接收到請求時數(shù)據(jù)中心內(nèi)的可用資源。在各示例中,響應(yīng)于對服務(wù)的第一請求所分配的至 少某些資源可以與響應(yīng)于對服務(wù)的第二請求所分配的資源不同。例如,這種差異可以取決 于在第一時刻和第二時刻數(shù)據(jù)中心內(nèi)的資源利用。此外,這種差異可以是實際資源、虛擬資 源或?qū)嶋H和虛擬資源的差異。如上所述,示例性編程模型和編程模型抽象層可以將服務(wù)與資源的改變隔離。例 如,代替修訂服務(wù)的代碼,數(shù)據(jù)中心運營者可以改為基于數(shù)據(jù)中心的硬件資源或其他資源 的改變來修改資源類。以此方式,服務(wù)的代碼(例如,服務(wù)的軟件組件)可以在不需要任何 修改的情況下部分地使用所改變的硬件資源或其他資源來執(zhí)行。這種方法可以有效地減輕 服務(wù)運營者必須處理數(shù)據(jù)中心資源的改變的負(fù)擔(dān)。例如,一種示例性編程模型和編程模型 抽象層可以將服務(wù)的軟件組件與數(shù)據(jù)中心內(nèi)的服務(wù)器的數(shù)量的變化隔離、與數(shù)據(jù)中心內(nèi)的 處理器的類型的變化隔離,等等。如此處所描述的,一種示例性方法可以包括響應(yīng)于對服務(wù)的請求提供資源類以供 在將一種類型的物理資源分配給數(shù)據(jù)中心所托管的服務(wù)時使用;使用該類型的物理資源來 執(zhí)行軟件組件;改變該類型的物理資源的特征;修改資源類;以及使用所改變的類型的物 理資源來執(zhí)行軟件組件,其中修改資源類將軟件組件與改變隔離。如以下進一步描述的,服務(wù)可以依賴數(shù)據(jù)中心所托管的或甚至外部托管的另一服 務(wù)。在這些情形中,可以存在用于其他服務(wù)的服務(wù)級協(xié)定。一種示例性方法可以包括在其 他服務(wù)的執(zhí)行期間執(zhí)行事件跟蹤來收集足夠的信息以確定其他服務(wù)是否符合服務(wù)級協(xié)定 中的一個或多個條款。雖然參考服務(wù)級協(xié)定來描述事件跟蹤,但還可以在一個或多個其他 上下文(例如,根據(jù)服務(wù)的軟件組件中的一個或多個語句)中使用事件跟蹤。圖1的示例性方法201可以被認(rèn)為是服務(wù)的一種體系結(jié)構(gòu),其中該體系結(jié)構(gòu)包括 供數(shù)據(jù)中心實現(xiàn)的編程模型和相應(yīng)的編程模型抽象層;以及根據(jù)編程模型而開發(fā)并由數(shù)據(jù) 中心托管的服務(wù),其中編程模型抽象層響應(yīng)于對服務(wù)的請求,例如,部分地基于對服務(wù)的至 少一個軟件組件中的資源類的引用將數(shù)據(jù)中心的至少某些資源分配給該服務(wù),可以修改資 源類來解決數(shù)據(jù)中心的一個或多個資源的改變。圖3示出編程模型抽象層355可以藉由其來與實際資源352和/或依賴于實際資 源的虛擬化層3M進行接口的示例性安排300。虛擬化層3M可以操作一個或多個虛擬機 或依賴于實際資源352中的一個或多個的其他虛擬資源。例如,編程模型抽象層355可以 實例化一個或多個虛擬機來響應(yīng)于請求來執(zhí)行應(yīng)用。在另一示例中,編程模型抽象層355可以通過直接管理至少某些實際資源352或者通過經(jīng)由虛擬化層3M來間接地另外管理實 際資源352來滿足請求。圖4示出帶有對資源的需求的波動的示例性數(shù)據(jù)中心450。在圖4的示例中,曲線 451示出對CPU和RAM資源的隨時間變化的需求,這兩者不一定按照對于時間相似的方式來 變化。曲線451標(biāo)識了兩個時刻時刻A和時刻B。在時刻A,CPU需求是高的而RAM需求 中等,而在時刻B,CPU需求是低的而RAM需求相對較高。數(shù)據(jù)中心450的一種示例性編程 模型抽象層455可以按照解決當(dāng)前的資源需求的方式來將資源分配給請求。考慮用戶計算 機460發(fā)出對數(shù)據(jù)中心450所托管的應(yīng)用420的請求。如分配框490所示,在時刻A,編程 模型抽象層455向應(yīng)用420分配了刀片452-4和虛擬機454-4 ;而在時刻B,編程模型抽象 層455向應(yīng)用420分配了三個刀片452-2、452-3和452-4。因此,在RAM使用是低的情況 下,編程模型抽象層451可以決定更多地依賴虛擬化層454 ;而當(dāng)RAM使用較高而CPU使用 低的情況下,編程模型模型抽象層451可以決定更多地依賴實際硬件(例如,刀片)。圖5示出其中應(yīng)用520依賴另一應(yīng)用或服務(wù)525的示例性場景。在該示例中,應(yīng) 用520包括客戶機側(cè)組件521,服務(wù)器側(cè)組件522和依賴應(yīng)用525的服務(wù)器側(cè)組件523。如 所指示的,應(yīng)用520的開發(fā)者(例如,應(yīng)用520所提供的服務(wù)的所有者)和應(yīng)用525的開發(fā) 者(例如,應(yīng)用525所提供的服務(wù)的所有者)之間存在服務(wù)級協(xié)定570。服務(wù)級協(xié)定570通 常指定應(yīng)用525對于某些條件的最小標(biāo)準(zhǔn)以及使用應(yīng)用525的特許權(quán)。應(yīng)用525可以被認(rèn) 為是提供其他應(yīng)用可以集成到服務(wù)包中的某種功能(例如,GPS信息)的按需應(yīng)用或服務(wù)。如圖5的示例所示,應(yīng)用520的兩個服務(wù)器側(cè)組件522和523由數(shù)據(jù)中心550托 管并且向編程模型抽象層555注冊。此外,應(yīng)用525由數(shù)據(jù)中心550托管并且向編程模型 抽象層555注冊。因此,編程模型抽象層555可能已經(jīng)知道了應(yīng)用520和應(yīng)用525之間的 關(guān)系。數(shù)據(jù)中心550內(nèi)還包括事件跟蹤(ET)模塊595,該模塊可以依賴各種硬件和/或 軟件來跟蹤數(shù)據(jù)中心550內(nèi)的事件。例如,ET模塊595可以與資源552和/或虛擬化層554 進行通信來收集關(guān)于給定請求的事件次序的信息??紤]用戶經(jīng)由用戶設(shè)備560從應(yīng)用520 的客戶機側(cè)組件521發(fā)出請求。在編程模型抽象層555接收到所發(fā)出的請求之后,分配資 源來允許組件522和523以及應(yīng)用525的執(zhí)行。編程模型抽象層555可以知道應(yīng)用525的 服務(wù)級協(xié)定,并且在分配資源時將其考慮在內(nèi)(例如,來確保遵從SLA 570)。如組件/應(yīng)用對時間的事件曲線所指示的,基于事件跟蹤模塊595所收集的數(shù)據(jù), 首先使用所分配的虛擬層資源5M-2來執(zhí)行組件522,接著使用所分配的實際資源552-1來 執(zhí)行應(yīng)用525,然后使用所分配的虛擬層資源5M-3來執(zhí)行組件523。這些執(zhí)行中的每一個 之間,存在表示或至少包括傳遞(例如,從一個組件/應(yīng)用到另一組件/應(yīng)用)信息的通信 時間的時間間隙。由于應(yīng)用525所提供的服務(wù)與組件522和523相比可能被更頻繁地請求,所以編 程模型抽象層555可以與組件522和523不同地對待應(yīng)用525所提供的服務(wù)。例如,應(yīng)用 525可以被認(rèn)為具有將其分配偏向更持久的實際資源552而非虛擬層資源M4的特性,這可 以在按需的基礎(chǔ)上創(chuàng)建和毀壞。在應(yīng)用525依賴諸如衛(wèi)星系統(tǒng)等外部輸入的情況下,可以 永久地將某些實際資源552鏈接到外部輸入并形成可以執(zhí)行應(yīng)用525的一組資源。如可以理解的,在應(yīng)用(組件)互相依賴的情況下,編程模型抽象層555可以解決這種互相依賴性并且使用一個或多個事件跟蹤模塊595來要求事件跟蹤。還可以使用事 件跟蹤信息來確定是否滿足服務(wù)級協(xié)定。在一個示例性編程模型中,類可任選地包括要求 事件跟蹤的一個或多個類。這種事件跟蹤可以獨立于編程模型抽象層發(fā)生,或者可以由編 程模型抽象層管理。雖然事件跟蹤引入了某些開銷,但出于各種有利目的中的任何一個,可 以使用所收集的信息來改進系統(tǒng)(例如,改進性能、故障診斷、較低的成本、確認(rèn)服務(wù)級等
寸J ο圖6示出示例性應(yīng)用代碼620和相應(yīng)的編程模型抽象層(PMAL)655。代碼620是 可用于實現(xiàn)諸如類似圖5的設(shè)備560的移動計算設(shè)備的地圖服務(wù)之類的服務(wù)的某種代碼的 近似邏輯的表示。代碼620包括依賴于一般與數(shù)據(jù)中心內(nèi)的或者原本可以經(jīng)由數(shù)據(jù)中心訪 問的資源(參見,例如,圖2的資源類217)有關(guān)的編程模型類的PMAL部分。在圖6的示例 中,代碼620引用類PMAL.Comps,該類指示組件的數(shù)量(如果已知的話);類PMAL.Ext,該 類指示代碼620所依賴的外部應(yīng)用或服務(wù)的數(shù)量;類PMAL. SLA,該類指示代碼620至少部 分地根據(jù)服務(wù)級協(xié)定來操作,以及 ’類PMAL. Advertising,該類指示應(yīng)用代碼620可以包括 廣告。如此處所描述的,廣告可以幫助抵消與在使用PMAL 655來操作的數(shù)據(jù)中心處托管并 執(zhí)行代碼620相關(guān)聯(lián)的成本。代碼620包括兩個組件622和623。組件622解析經(jīng)由可能安裝了客戶機側(cè)組件 621的用戶設(shè)備從用戶接收的地圖請求。組件622執(zhí)行包括調(diào)用外部應(yīng)用625在內(nèi)的各種 任務(wù)。由于服務(wù)級協(xié)定(SLA) (ID 34256)涉及外部應(yīng)用625的使用,所以應(yīng)用代碼620的 開發(fā)者已經(jīng)插入了調(diào)用數(shù)據(jù)中心的事件跟蹤的PMAL. ET語句??梢允褂檬录檨硎占P(guān) 于外部應(yīng)用625 (可由數(shù)據(jù)中心托管)的執(zhí)行的信息來確定是否滿足SLA的一個或多個條 款(即,來確定所提供的實際服務(wù)級是否滿足服務(wù)級協(xié)定中指定的服務(wù)級)。組件623生成供傳輸給用戶的設(shè)備的客戶機側(cè)組件612的圖形。另外,它能夠?qū)?廣告插入到所生成的圖形中。如此處所描述的,代碼620對PMAL. Advertising的引用可以 使得PMAL 655將組件623與廣告投放服務(wù)相關(guān)聯(lián)。因此,在響應(yīng)于用戶的請求來執(zhí)行代碼 620期間,PMAL 655確保廣告被組件623接收。關(guān)于圖形的生成,組件623需要特定量的存儲器和CPU資源。為了幫助PMAL 655 管理資源并將資源分配給應(yīng)用組件623,代碼620引用與一個或多個存儲器和CPU密集語句 (例如,“生成位圖”)相關(guān)聯(lián)的PAML. Mem類和PMAL. CPU類。雖然存在分析應(yīng)用代碼來確定執(zhí)行所需的資源量的常規(guī)技術(shù),但這種事后技術(shù)實 現(xiàn)起來很麻煩。相反,組件623中引用的資源類可以肯定地引導(dǎo)PMAL655以合適的水平來 分配資源,如應(yīng)用代碼620的開發(fā)者所估計的。實質(zhì)上,這使得將負(fù)擔(dān)轉(zhuǎn)移到服務(wù)(應(yīng)用代 碼620所提供的)運營者,借此運營者聲明“為了執(zhí)行這一任務(wù),我想要大約X的存儲器 和Y的CPU資源”。進而,PMAL655可以用它認(rèn)為合適的無論什么方式來分配資源以管理服 務(wù)運營者的需要(例如,關(guān)于用戶)以及數(shù)據(jù)中心的運營需要(例如,為了優(yōu)化數(shù)據(jù)中心效 率)。給定代碼620及其資源引用,PMAL 655可以估計每一請求的成本并將這一估計發(fā) 送給操作經(jīng)由應(yīng)用代碼620的執(zhí)行而提供的服務(wù)的服務(wù)運營者。這種方法便于數(shù)據(jù)中心管 理并且可以減輕協(xié)商資源成本和資源專用的需要。這種方法提供了用于部署、托管和使用 服務(wù)并且甚至可以集成廣告和對廣告收入進行記賬(例如,對服務(wù)運營者的支付、保存支持廣告的服務(wù)的折扣等等)的商業(yè)模型。圖7示出其中托管應(yīng)用720的數(shù)據(jù)中心750接收復(fù)雜查詢701來為這些查詢提供 服務(wù)的示例性場景。在該示例中,編程模型抽象層755接收查詢并確定可以通過分配應(yīng)用 資源752-1、752-2和752-3來滿足該查詢。例如,編程模型抽象層755可以允許應(yīng)用720 至少部分地并行操作來快速處理復(fù)雜查詢701。進而,應(yīng)用720用分布式的方式來操作以處 理查詢701的部分,并且隨后合并結(jié)果來生成查詢結(jié)果703。應(yīng)用720的開發(fā)者可以允許通 過引用一個或多個資源類來允許這種并行處理,該一個或多個資源類引導(dǎo)編程模型抽象層 755按照允許對應(yīng)用720的至少某些組件的并行執(zhí)行的方式來分配資源。在圖7的示例中,開發(fā)者可以引用關(guān)于來自應(yīng)用720的用戶的輸入的特定類。例 如,如果X > 3 (其中X等于項),則分配資源來執(zhí)行應(yīng)用720的組件的多個副本。如此處所 描述的,存在便于使用并行處理的各種機會。這種方法對服務(wù)運營者和數(shù)據(jù)中心運營者兩 者可以都有利,因為數(shù)據(jù)中心運營者通常想要維持可用資源的完全使用并且這么做通常會 加速服務(wù)時間。例如,在存在機會窗口的情況下,在接收到用戶要使用例如四個可用刀片的 請求之后,數(shù)據(jù)中心隨后應(yīng)該充分利用這一機會。如此處所描述的,一種示例性編程模型和相關(guān)聯(lián)的編程模型抽象層可以動態(tài)地操 作來增強用戶體驗和數(shù)據(jù)中心性能和利用兩者。在服務(wù)具有通常過度指定的專用資源的情 況下,常規(guī)的方法受到了限制。進而,資源常常處于等待中。與這種常規(guī)方法相關(guān)聯(lián)的成本 被傳遞給一方或多方-通常以混淆解決方案的方式。此處描述的示例性方法合并數(shù)據(jù)中心 和服務(wù)運營的各個方面,進而通過對編程模型和/或編程模型抽象層作出調(diào)整方便了相互 促進的解決方案。如上所述,這種方法可以幫助將用戶和服務(wù)運營者與日常數(shù)據(jù)中心基礎(chǔ) 結(jié)構(gòu)維護和升級進行分離。在數(shù)據(jù)中心包括事件跟蹤技術(shù)的情況下,經(jīng)由事件跟蹤所收集的信息可以便于資 源的獲取和借出獲取(例如,預(yù)配任務(wù))。此外,事件跟蹤可以允許關(guān)于是否滿足服務(wù)級協(xié) 定的更準(zhǔn)確的成本評估、基準(zhǔn)確定和決定。雖然參考單個數(shù)據(jù)中心來示出各個示例,但服務(wù)運營者可以將應(yīng)用部署到多個數(shù) 據(jù)中心。如此處所描述的,對于服務(wù)運營者和多個數(shù)據(jù)中心的一個或多個運營者有利的是 在本質(zhì)上依賴同一個編程模型,且在編程模型抽象層中出現(xiàn)合適的變形來結(jié)局?jǐn)?shù)據(jù)中心之 間的物理差異。以此方式,開發(fā)者不會有數(shù)據(jù)中心之間的差異的負(fù)擔(dān)。對于旨在經(jīng)由某種互相關(guān)應(yīng)用或組件來擴展服務(wù)的服務(wù)運營者而言,一種示例性 編程模型抽象層可以便于這種擴展,因為總的方法固有地比需要協(xié)商資源增加的常規(guī)方法 更加可伸縮,無論資源的增加是由運營者對服務(wù)的改變所驅(qū)動的還是由對服務(wù)的用戶需求 的提升所驅(qū)動的。圖8示出了可用于實現(xiàn)各示例性組件并形成示例性系統(tǒng)的示例性計算設(shè)備800。 例如,圖1的數(shù)據(jù)中心150或250的計算設(shè)備可以包括設(shè)備800的各種特征。在非?;镜呐渲弥校嬎阍O(shè)備800通常包括至少一個處理單元802和系統(tǒng)存儲 器804。取決于計算設(shè)備的確切配置和類型,系統(tǒng)存儲器804可以是易失性的(諸如RAM)、 非易失性的(諸如ROM、閃存等)或是兩者的某種組合。系統(tǒng)存儲器804通常包括操作系統(tǒng) 805、一個或多個程序模塊806,且可以包括程序數(shù)據(jù)807。操作系統(tǒng)805包括基于組件的框 架820,其支持組件(包括屬性和事件)、對象、繼承、多態(tài)性、反射,并且提供面向?qū)ο蟮幕诮M件的應(yīng)用程序編程接口(API),諸如由華盛頓州雷蒙德市的微軟公司制造的.NETTM框 架的API。計算設(shè)備800具有由虛線808劃分的非常基本的配置。同樣,一終端可具有更少 的組件,但將與可具有這一基本配置的計算設(shè)備交互。計算設(shè)備800可具有附加特征或功能。例如,計算設(shè)備800還可包括附加數(shù)據(jù)存 儲設(shè)備(可移動和/或不可移動),諸如例如磁盤、光盤或磁帶。這樣的附加存儲在圖8中 由可移動存儲809和不可移動存儲810例示。計算機存儲介質(zhì)可包括以用于存儲諸如計算 機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)實現(xiàn)的易失性和非 易失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器804、可移動存儲809和不可移動存儲810都 是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、閃存或其他 存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他 磁性存儲設(shè)備、或能用于存儲所需信息且可以由計算設(shè)備800訪問的任何其他介質(zhì)。任何 這樣的計算機存儲介質(zhì)都可以是設(shè)備800的一部分。計算設(shè)備800也可具有諸如鍵盤、鼠 標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等的輸入設(shè)備812。也可包括輸出設(shè)備814,如顯示器、 揚聲器、打印機等等。這些設(shè)備在本領(lǐng)域中是已知的,這里就不再對它們進行詳細(xì)討論。計算設(shè)備800還可包含允許該設(shè)備諸如通過網(wǎng)絡(luò)來與其他計算設(shè)備818進行通信 的通信連接816。通信連接816是通信介質(zhì)的一個示例。通信介質(zhì)通??梢跃唧w化為計算 機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊等。通信可以經(jīng)由有線(例如,有線網(wǎng)絡(luò)、直連線連接等 等)或無線(例如,聲學(xué)、RF、紅外和其他無線傳輸)來發(fā)生。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán) 利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為 實現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種方法,包括在數(shù)據(jù)中心處托管服務(wù),所述服務(wù)依賴于根據(jù)編程模型而開發(fā)的至少一個軟件組件, 并且所述數(shù)據(jù)中心包括經(jīng)由硬件和軟件實現(xiàn)的、抽象所述數(shù)據(jù)中心的資源的相應(yīng)的編程模 型抽象層;經(jīng)由網(wǎng)絡(luò)接收對在所述數(shù)據(jù)中心處托管的所述服務(wù)的請求;以及響應(yīng)于接收到所述請求,將所述數(shù)據(jù)中心的至少某些資源分配給所述服務(wù)來允許履行 所述請求,其中所述編程模型抽象層部分地基于對所述至少一個軟件組件中的資源類的引 用來執(zhí)行所述分配,可以修改所述資源類來解決所述數(shù)據(jù)中心的一個或多個資源的改變。
2.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)中心的資源包括硬件資源、依賴硬 件資源的虛擬資源、或硬件資源和虛擬資源的組合。
3.如權(quán)利要求1所述的方法,其特征在于,所述資源類包括處理器資源類、存儲器資源 類和帶寬資源類中的一個或多個。
4.如權(quán)利要求1所述的方法,其特征在于,所述分配考慮在接收到所述請求的時刻所 述數(shù)據(jù)中心內(nèi)的可用資源。
5.如權(quán)利要求1所述的方法,其特征在于,所述請求包括在第一時刻接收的第一請求, 并且所述方法還包括重復(fù)在第二時刻接收第二請求,其中所述分配將至少某些資源分配給 所述第一請求并且將至少某些資源分配給所述第二請求。
6.如權(quán)利要求5所述的方法,其特征在于,響應(yīng)于所述第一請求分配的至少某些資源 與響應(yīng)于所述第二請求分配的至少某些資源不同,其中差異取決于在所述第一時刻和所述 第二時刻所述數(shù)據(jù)中心內(nèi)的資源利用,并且可任選地其中差異包括實際資源、虛擬資源、或 實際和虛擬資源的差異。
7.如權(quán)利要求1所述的方法,其特征在于,還包括基于所述數(shù)據(jù)中心的硬件資源的改 變來修改所述資源類,可任選地其中所述至少一個軟件組件在不需要對其代碼的任何修改 的情況下部分地使用所改變的硬件資源來執(zhí)行。
8.如權(quán)利要求1所述的方法,其特征在于,所述編程模型和所述編程模型抽象層將所 述至少一個軟件組件與所述數(shù)據(jù)中心內(nèi)的服務(wù)器的數(shù)量的改變、所述數(shù)據(jù)中心內(nèi)的處理器 的類型的改變、或所述數(shù)據(jù)中心內(nèi)的服務(wù)器的數(shù)量和處理器的類型的改變隔離。
9.如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)依賴所述數(shù)據(jù)中心所托管的另一 服務(wù),并且可任選地其中存在用于所述數(shù)據(jù)中心所托管的其他服務(wù)的服務(wù)級協(xié)定,并且可 任選地所述方法還包括在所述其他服務(wù)的執(zhí)行期間執(zhí)行事件跟蹤來收集足夠的信息以確 定所述其他服務(wù)是否符合所述服務(wù)級協(xié)定的一個或多個條款。
10.一種用于在數(shù)據(jù)中心處托管服務(wù)的體系結(jié)構(gòu),所述體系結(jié)構(gòu)包括供經(jīng)由數(shù)據(jù)中心的硬件和軟件來實現(xiàn)的編程模型和相應(yīng)的編程模型抽象層;以及根據(jù)所述編程模型來開發(fā)的并由所述數(shù)據(jù)中心托管的服務(wù),其中所述編程模型抽象層 響應(yīng)于對所述服務(wù)的請求,并且部分地基于對所述服務(wù)的至少一個軟件組件中的資源類的 引用來將所述數(shù)據(jù)中心的至少某些資源分配給所述服務(wù),可以修改所述資源類來解決所述 數(shù)據(jù)中心的一個或多個硬件資源、軟件資源、或硬件和軟件資源的改變。
全文摘要
一種示例性方法包括在數(shù)據(jù)中心處托管服務(wù),該服務(wù)依賴于根據(jù)編程模型來開發(fā)的至少一個軟件組件,并且該數(shù)據(jù)中心包括抽象該數(shù)據(jù)中心的資源的相應(yīng)的編程模型抽象層;接收對該服務(wù)的請求;以及響應(yīng)于該請求,將數(shù)據(jù)中心的至少某些資源分配給該服務(wù)來允許履行該請求,其中該編程模型抽象層部分地基于對至少一個軟件組件中的資源類的引用來執(zhí)行分配,可以修改該資源類來解決數(shù)據(jù)中心的一個或多個資源的改變。還描述了各種其他設(shè)備、系統(tǒng)和方法。
文檔編號G06F15/16GK102132268SQ200980134130
公開日2011年7月20日 申請日期2009年7月28日 優(yōu)先權(quán)日2008年8月26日
發(fā)明者B·J·史密斯, J·R·漢米爾頓 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
磐安县| 崇信县| 峨边| 三亚市| 香格里拉县| 牙克石市| 蛟河市| 保山市| 穆棱市| 涪陵区| 定日县| 曲麻莱县| 天台县| 瑞丽市| 甘肃省| 绿春县| 商洛市| 常宁市| 芜湖县| 扶余县| 龙州县| 东宁县| 弋阳县| 扶风县| 满洲里市| 句容市| 重庆市| 比如县| 千阳县| 海门市| 双峰县| 绥滨县| 安义县| 尼勒克县| 阳城县| 麻江县| 赣榆县| 灵石县| 千阳县| 平南县| 沈丘县|