專利名稱:一種基于事務(wù)的服務(wù)控制系統(tǒng)及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)虛擬化技術(shù)及面向服務(wù)的體系領(lǐng)域,尤其涉及一種基于事務(wù)的服務(wù)控制系統(tǒng)及其控制方法。
背景技術(shù):
面向服務(wù)的架構(gòu)(service-oriented architecture, S0A)是在基礎(chǔ)技術(shù)日趨成熟的條件下,提出的一種對(duì)現(xiàn)代軟件架構(gòu)的新思維。SOA被認(rèn)為是一種設(shè)計(jì)和構(gòu)建松散耦合分布式系統(tǒng)的應(yīng)用程序的最佳解決方案,它能夠以程序化的、可訪問的軟件服務(wù)形式公開業(yè)務(wù)功能,將應(yīng)用程序功能作為服務(wù)發(fā)送給最終用戶或者其他服務(wù)。SOA強(qiáng)調(diào)標(biāo)準(zhǔn)化、跨企業(yè)應(yīng)用、動(dòng)態(tài)性、模塊化以及服務(wù)組合。服務(wù)導(dǎo)向的架構(gòu)提升了將用戶從服務(wù)實(shí)現(xiàn)分開的目標(biāo)。從總體上來講,SOA是一種結(jié)構(gòu)模型,它可以根據(jù)需求并通過網(wǎng)絡(luò)對(duì)松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)可以運(yùn)行在不同的服務(wù)器上,并通過網(wǎng)絡(luò)被訪問。這也大大增加了服務(wù)的重用。IBM、惠普、Oracle等IT巨頭在SOA方面已有多年經(jīng)驗(yàn),并把SOA作為未來IT軟件服務(wù)的方向。盡管如此,在如何提升服務(wù)性能,保證服務(wù)質(zhì)量 (QoS)方面,SOA還未成熟,許多地方亟待改進(jìn)?,F(xiàn)在流行的虛擬化技術(shù)VMM,全稱虛擬機(jī)管理器(Virtual machine monitor),在硬件和操作系統(tǒng)之間提供了一個(gè)虛擬抽象層,VMM也稱之為主機(jī)操作系統(tǒng),VMM之上是客戶機(jī)操作系統(tǒng),也稱為虛擬機(jī)(VM),以下簡稱虛機(jī)。這些VM都是一些相互隔離的操作系統(tǒng),可以共享硬件資源。VMM允許多個(gè)相互隔離的虛擬機(jī)同時(shí)運(yùn)行在一個(gè)主機(jī)(host)上,一個(gè)服務(wù)器(server)上可以安裝大量的虛擬機(jī)。每個(gè)虛擬機(jī)都是邏輯上獨(dú)立的,它能被分配一定比例的主機(jī)內(nèi)存和處理能力,并可以很容易地與其它的虛擬機(jī)區(qū)分開來,甚至也可以與安裝該虛擬機(jī)的主機(jī)(host)區(qū)分。對(duì)于網(wǎng)絡(luò)上的用戶而言,虛擬機(jī)本身就是一個(gè)分離的可尋址的計(jì)算機(jī)系統(tǒng)。虛擬機(jī)可以有多種用途,既可以用作網(wǎng)絡(luò)上的另一個(gè)服務(wù)器,用于軟件或硬件測試,作為瘦客戶端(Thin Client)的主要的計(jì)算機(jī)系統(tǒng),等等。虛擬機(jī)還有其它的優(yōu)點(diǎn),例如易于創(chuàng)建和刪除,可以提高硬件服務(wù)器的使用率等。正因?yàn)樘摂M機(jī)的靈活性和強(qiáng)大的能力等優(yōu)點(diǎn),使得虛擬機(jī)得到了廣為應(yīng)用,很多組織都在原來的物理服務(wù)器上安裝十臺(tái)甚至上百臺(tái)虛擬機(jī),使得組織內(nèi)的計(jì)算機(jī)系統(tǒng)的數(shù)目成十倍甚至百倍的擴(kuò)張。在使用面向服務(wù)的體系時(shí),就需要考慮虛擬機(jī)作為執(zhí)行服務(wù)的最基本的計(jì)算系統(tǒng)的情況。與一般的硬件計(jì)算系統(tǒng)不同,虛擬機(jī)具有自己的生命周期。在面向服務(wù)的分布式計(jì)算環(huán)境下,如何解決并發(fā)性服務(wù)請求訪問虛擬機(jī)的問題,保護(hù)核心資源,也是一個(gè)重要的需要解決的問題。事務(wù)(Transaction)是構(gòu)建可靠性應(yīng)用的基本組成元素,是一種用來確保應(yīng)用程序中的所有參與方都能達(dá)到彼此已達(dá)成協(xié)定的輸出結(jié)果的機(jī)制。當(dāng)應(yīng)用包括多個(gè)分布式的子系統(tǒng),或應(yīng)用由多個(gè)獨(dú)立的成分組成時(shí),事務(wù)可以幫助應(yīng)用在每個(gè)分離的不同的塊中來清晰地處理失敗。傳統(tǒng)的事務(wù)處理技術(shù)主要應(yīng)用于數(shù)據(jù)庫系統(tǒng)。然而隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,事務(wù)處理的概念已經(jīng)被引入了更為廣泛的分布式網(wǎng)絡(luò)計(jì)算環(huán)境,出現(xiàn)了對(duì)分布式事務(wù)的處理。分布式事務(wù)指一個(gè)事務(wù)可能涉及多個(gè)數(shù)據(jù)存儲(chǔ)(數(shù)據(jù)存儲(chǔ)可以基于塊,即一個(gè)LUN或一組LUN、基于文件,即本地或遠(yuǎn)程文件系統(tǒng)或者基于關(guān)系型數(shù)據(jù)庫)操作,是一個(gè)分布式操作序列,被操作的數(shù)據(jù)分布在網(wǎng)絡(luò)的不同站點(diǎn)上,以實(shí)現(xiàn)相應(yīng)站點(diǎn)上數(shù)據(jù)存儲(chǔ)的存取操作。當(dāng)一個(gè)應(yīng)用有單獨(dú)的功能需要在多個(gè)事務(wù)資源中訪問或更新數(shù)據(jù),它應(yīng)該使用分布式的事務(wù),應(yīng)用從一個(gè)數(shù)據(jù)庫移動(dòng)數(shù)據(jù)到另一個(gè)數(shù)據(jù)庫要求分布式的事務(wù)。X/Open組織定義了分布式事務(wù)處理參考模型(DTP)。因而,為了有效地提升服務(wù)性能,保證服務(wù)質(zhì)量,可以考慮使用分布式事務(wù)處理方法,來控制服務(wù)請求從開始到執(zhí)行結(jié)束的全過程的狀態(tài)。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)存在的問題,本發(fā)明旨在提供一種基于事務(wù)的服務(wù)控制系統(tǒng)及其控制方法,通過使用分布式事務(wù)處理方法,結(jié)合狀態(tài)機(jī)機(jī)制,以及資源調(diào)度和事務(wù)路由策略,來控制服務(wù)請求從開始到執(zhí)行結(jié)束的全過程的狀態(tài),并及時(shí)響應(yīng)給用戶,同時(shí)監(jiān)控資源狀態(tài)信息,消除并發(fā)性處理的資源沖突,使服務(wù)請求可以經(jīng)過最優(yōu)的路徑到達(dá)負(fù)荷最小的節(jié)點(diǎn),從而有效地提升服務(wù)性能,保證服務(wù)質(zhì)量。本發(fā)明之一所述的一種基于事務(wù)的服務(wù)控制系統(tǒng),與外圍的服務(wù)工廠連接,并接收該服務(wù)工廠發(fā)出的服務(wù)請求,所述系統(tǒng)包括域管理器、component (組件)管理器、資源控制器、事務(wù)管理器和資源管理器;若所述服務(wù)工廠請求執(zhí)行業(yè)務(wù),則將請求發(fā)送到所述域管理器,若所述服務(wù)工廠請求操作虛機(jī),則將請求發(fā)送到所述component管理器;所述域管理器分別與所述資源控制器和事務(wù)管理器相連,向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù);所述component管理器分別與所述資源控制器和事務(wù)管理器相連,向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù);所述資源控制器中存放資源的狀態(tài)及資源使用情況信息,根據(jù)所述域管理器或 component管理器發(fā)出的資源申請請求,返回可用的資源信息;所述事務(wù)管理器根據(jù)所述域管理器或component管理器發(fā)出的創(chuàng)建全局事務(wù)的指示,創(chuàng)建全局事務(wù)及其事務(wù)分支;所述資源管理器的數(shù)量至少為一個(gè),它分別與所述事務(wù)管理器和資源控制器相連,接收所述事務(wù)管理器發(fā)送的事務(wù)分支,管理所述事務(wù)分支的執(zhí)行,并將更新的資源信息發(fā)送到所述資源控制器。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述域管理器用于管理域的生命周期,包括從域的創(chuàng)建到刪除,并將一個(gè) domain (域)請求分解成多個(gè)component請求;所述component管理器用于管理組件的生命周期,包括從組件的創(chuàng)建到刪除,并將一個(gè)component請求分解成多個(gè)事務(wù)分支。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述資源控制器包括調(diào)度器、事務(wù)路由器、 虛機(jī)狀態(tài)機(jī)和資源引用表,其中所述調(diào)度器與所述事務(wù)路由器相連,并根據(jù)所述虛機(jī)狀態(tài)機(jī)和資源引用表中的信息確定事務(wù)的調(diào)度,并將調(diào)度結(jié)果發(fā)送到所述事務(wù)路由器;所述事務(wù)路由器接收所述調(diào)度器發(fā)送的信息,并根據(jù)所述資源引用表中的信息做出路由決策。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述資源控制器還與外圍的節(jié)點(diǎn)服務(wù)器連接,所述節(jié)點(diǎn)服務(wù)器的數(shù)量至少為一個(gè),且每個(gè)節(jié)點(diǎn)服務(wù)器包括虛機(jī)API (應(yīng)用編程接口) 和Monitor (監(jiān)控器)API,其中所述虛機(jī)API用于將虛機(jī)的最新信息傳送至所述虛機(jī)狀態(tài)機(jī);所述Monitor API用于將資源引用和資源使用情況的最新信息傳送至所述資源引用表。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述調(diào)度器包括互連的事務(wù)執(zhí)行規(guī)劃模塊和執(zhí)行控制模塊,其中所述事務(wù)執(zhí)行規(guī)劃模塊用于規(guī)劃事務(wù)的調(diào)度,并將規(guī)劃的結(jié)果發(fā)送至所述執(zhí)行控制模塊;所述執(zhí)行控制模塊根據(jù)所述事務(wù)執(zhí)行規(guī)劃模塊輸出的規(guī)劃結(jié)果,確定執(zhí)行控制的策略。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述事務(wù)執(zhí)行規(guī)劃模塊包括調(diào)度控制器以及與該調(diào)度控制器連接的負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊,且所述調(diào)度控制器用于調(diào)用負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊,并決定調(diào)度策略。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述事務(wù)路由器包括互連的路由管理器和路由信息存儲(chǔ)器,其中所述路由管理器通過所述路由信息存儲(chǔ)器中的邏輯路由信息和策略確定事務(wù)的路由;所述路由信息存儲(chǔ)器根據(jù)所述資源引用表中的信息,存儲(chǔ)并向所述路由管理器提供邏輯路由信息。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述路由管理器包括路由控制器以及分別與該路由控制器連接的連接協(xié)調(diào)器、最優(yōu)路徑計(jì)算器、流控制器和錯(cuò)誤控制模塊,其中所述路由控制器根據(jù)所述連接協(xié)調(diào)器、最優(yōu)路徑計(jì)算器和流控制器的運(yùn)作,確定事務(wù)的邏輯路由決策;所述連接協(xié)調(diào)器用于管理網(wǎng)絡(luò)的邏輯連接,包括確定所述邏輯連接是否異常;所述最優(yōu)路徑計(jì)算器用于求解從源到目的地的花費(fèi)最小的邏輯路徑;所述流控制器用于監(jiān)控所述每條邏輯路徑上的網(wǎng)絡(luò)流量。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述路由信息存儲(chǔ)器存儲(chǔ)的邏輯路由信息包括邏輯路徑拓?fù)浔砀?、邏輯流狀態(tài)表格和事務(wù)狀態(tài)表格,其中所述邏輯路徑拓?fù)浔砀裼糜诖鎯?chǔ)網(wǎng)絡(luò)邏輯路徑拓?fù)湫畔?;所述邏輯流狀態(tài)表格用于存儲(chǔ)網(wǎng)絡(luò)流量狀態(tài)信息;所述事務(wù)狀態(tài)表格用于存儲(chǔ)所述事務(wù)分支的狀態(tài)信息。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述事務(wù)管理器包括事務(wù)處理器和計(jì)時(shí)器,其中所述事務(wù)處理器用于處理全局事務(wù)、與所述全局事務(wù)相關(guān)的多個(gè)異步事件以及由所述全局事務(wù)分解出來的多個(gè)事務(wù)分支所產(chǎn)生的延遲工作;所述計(jì)時(shí)器用于對(duì)所述事務(wù)分支所產(chǎn)生的延遲工作進(jìn)行計(jì)時(shí),并設(shè)定一個(gè)閥值,以確定所述事務(wù)分支從發(fā)出到返回結(jié)果所用的時(shí)間是否超過閥值。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述資源管理器運(yùn)行在所述節(jié)點(diǎn)服務(wù)器上,且該資源管理器包括主機(jī)資源管理層以及分別與該主機(jī)資源管理層連接的資源管理器服務(wù)器和資源控制器客戶端,其中所述資源管理器服務(wù)器接收所述事務(wù)管理器發(fā)送的請求,并調(diào)用所述主機(jī)資源管
理層;所述主機(jī)資源管理層接收所述資源管理器服務(wù)器發(fā)送的調(diào)用信號(hào),配置執(zhí)行所述事務(wù)分支所需的資源;所述資源控制器客戶端接收所述主機(jī)資源管理層返回的虛機(jī)狀態(tài)更新信息,并將更新的虛機(jī)狀態(tài)發(fā)送給所述資源控制器。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述資源管理器服務(wù)器包括資源管理器代理、工作線程、請求隊(duì)列和事務(wù)分支隊(duì)列,其中所述資源管理器代理將所述事務(wù)管理器發(fā)送的并發(fā)性請求通過所述請求隊(duì)列傳至所述工作線程進(jìn)行處理,該工作線程將處理后的請求發(fā)送到所述事務(wù)分支隊(duì)列中,并處理所述事務(wù)分支以及維持事務(wù)分支的生命周期。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述主機(jī)資源管理層包括管理控制中心以及分別與該管理控制中心連接的共享存儲(chǔ)器、Mac Store (mac庫)、虛機(jī)實(shí)例和事件管理器, 其中所述管理控制中心用于提供獲取主機(jī)資源的API,并注冊或注銷到所述資源控制器客戶端;所述共享存儲(chǔ)器為所述管理控制中心提供共享的存儲(chǔ)資源訪問接口 ;所述Mac Store用于管理mac (媒體訪問控制)地址;所述虛機(jī)實(shí)例提供API以使用外圍Iibvirt來操作虛機(jī),并提供API以得到該虛機(jī)的狀態(tài);所述事件管理器提供事件功能并將它們注冊到所述libvirt。在上述的基于事務(wù)的服務(wù)控制系統(tǒng)中,所述管理控制中心包括虛機(jī)哈希表,且該虛機(jī)哈希表用于存儲(chǔ)所述虛機(jī)的生命周期。本發(fā)明之二所述的一種如上述的基于事務(wù)的服務(wù)控制系統(tǒng)的服務(wù)控制方法,該方法包括所述服務(wù)工廠向所述域管理器或component管理器發(fā)送服務(wù)請求;所述域管理器或component管理器向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù)和事務(wù)分支;所述資源控制器判斷是否有可用的資源,以及執(zhí)行請求的最優(yōu)資源,并返回;所述事務(wù)管理器將所述事務(wù)分支發(fā)送至所述資源管理器;所述資源管理器管理所述事務(wù)分支的執(zhí)行,當(dāng)所述事務(wù)分支執(zhí)行完后,將執(zhí)行結(jié)果返回給所述事務(wù)管理器,并將資源信息更新到所述資源控制器。在上述的基于事務(wù)的服務(wù)控制方法中,所述月艮務(wù)i青求為domain i青求或component i青求;若所述服務(wù)請求是domain請求,則每個(gè)domain請求作為一個(gè)domain全局事務(wù), 每個(gè)domain全局事務(wù)可分解成多個(gè)component全局事務(wù),每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支;若所述月艮務(wù)請求是component請求,則每個(gè)component請求作為一個(gè)component 全局事務(wù),每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括當(dāng)所述domain請求到達(dá)所述域管理器后,該域管理器訪問所述資源控制器中的調(diào)度控制器;所述調(diào)度控制器到所述資源引用表中查看資源的引用信息及資源的使用情況,并判斷所述domain請求能否執(zhí)行。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述資源引用表中顯示的資源可用,并滿足所述domain請求的執(zhí)行,則將可以執(zhí)行的結(jié)果返回到所述域管理器,且該域管理器鎖住執(zhí)行所需的資源。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述資源引用表中顯示沒有可用的資源,則返回沒有資源不能執(zhí)行的結(jié)果到所述域管理器,所述domain請求進(jìn)入等待狀態(tài),且所述域管理器繼續(xù)申請資源直到超時(shí)退出ο在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括
所述域管理器將所述domain請求發(fā)送到所述事務(wù)管理器;所述事務(wù)管理器生成domain全局事務(wù),并將該domain全局事務(wù)分解成多個(gè) component全局事務(wù)后發(fā)送到所述component管理器。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括所述component管理器將所述component全局事務(wù)分解成多個(gè)事務(wù)分支,并訪問所述資源控制器中的調(diào)度控制器;所述調(diào)度控制器到所述虛機(jī)狀態(tài)機(jī)中查看虛機(jī)的狀態(tài),并根據(jù)虛機(jī)的狀態(tài),判斷所述事務(wù)分支是否在虛機(jī)上執(zhí)行。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述事務(wù)分支與虛機(jī)的狀態(tài)不沖突,則所述調(diào)度控制器進(jìn)一步到所述資源引用表中查看資源的引用信息,并調(diào)用所述負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述事務(wù)分支與虛機(jī)的狀態(tài)沖突,則該事務(wù)分支不能執(zhí)行,并將結(jié)果返回到所述component管理器,所述component請求進(jìn)入等待狀態(tài),且所述component管理器繼續(xù)申請資源直到超時(shí)退出。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括所述負(fù)載計(jì)算器根據(jù)所述每個(gè)節(jié)點(diǎn)服務(wù)器上的資源使用情況,采用統(tǒng)一的算法計(jì)算和評(píng)估每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載;所述花費(fèi)評(píng)估模塊根據(jù)所述每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載以及節(jié)點(diǎn)服務(wù)器在較短的時(shí)間內(nèi)承受負(fù)載的能力,計(jì)算所述每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載執(zhí)行情況,以及釋放資源所需的時(shí)間;所述調(diào)度控制器根據(jù)所述負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊輸出的結(jié)果,確定將所述事務(wù)分支調(diào)度到哪個(gè)節(jié)點(diǎn)服務(wù)器上執(zhí)行。
在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括所述調(diào)度控制器將調(diào)度結(jié)果發(fā)送到所述事務(wù)路由器中的路由控制器;所述路由控制器調(diào)用所述連接協(xié)調(diào)器,該連接協(xié)調(diào)器檢查從源到目的地之間的邏輯路徑。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述連接協(xié)調(diào)器檢查從源到目的地之間有可走的邏輯路徑,則所述路由控制器進(jìn)一步調(diào)用所述最優(yōu)路徑計(jì)算器和流控制器;所述最優(yōu)路徑計(jì)算器根據(jù)所述邏輯路徑拓?fù)浔砀裰械男畔?,?jì)算每條邏輯路徑的花費(fèi);所述流控制器根據(jù)所述邏輯流狀態(tài)表格中的信息,計(jì)算每條邏輯路徑的網(wǎng)絡(luò)流量;所述路由控制器根據(jù)所述最優(yōu)路徑計(jì)算器和流控制器的計(jì)算結(jié)果,通過折中策略為事務(wù)選擇一條最優(yōu)的邏輯路徑。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括若所述連接協(xié)調(diào)器檢查從源到目的地之間沒有可走的邏輯路徑,則所述路由控制器進(jìn)一步調(diào)用所述錯(cuò)誤控制模塊,對(duì)邏輯路徑的錯(cuò)誤情況進(jìn)行恢復(fù),直至異常得到恢復(fù)或超時(shí)。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括所述component管理器收到所述調(diào)度控制器返回的結(jié)果,鎖住執(zhí)行所述 component請求所需的資源,并將component請求發(fā)送到所述事務(wù)管理器。在上述的基于事務(wù)的服務(wù)控制方法中,所述方法進(jìn)一步包括當(dāng)所述一個(gè)component全局事務(wù)完成后,所述事務(wù)管理器將結(jié)果返回到所述 component管理器,該component管理器指示component全局事務(wù)的提交或回滾后,釋放鎖住的資源,并將結(jié)果發(fā)送到所述事務(wù)管理器;當(dāng)所述一個(gè)domain全局事務(wù)完成后,所述事務(wù)管理器將結(jié)果返回到所述域管理器,該域管理器指示domain全局事務(wù)的提交或回滾后,釋放鎖住的資源。本發(fā)明之三所述的一種如上述基于事務(wù)的服務(wù)控制系統(tǒng)的包含多個(gè)異步事件的全局事務(wù)處理方法,所述服務(wù)控制系統(tǒng)中的事務(wù)管理器還包括AP(C0mp0nent管理器或 domain管理器)代理、全局事務(wù)隊(duì)列、全局事務(wù)等待隊(duì)列、事件等待隊(duì)列、RPC(遠(yuǎn)程過程調(diào)用)客戶端和延時(shí)的工作隊(duì)列,所述方法包括所述AP代理將所述服務(wù)請求作為全局事務(wù)送至所述全局事務(wù)隊(duì)列中,以備所述事務(wù)處理器處理,同時(shí)生成開始事務(wù)事件,并使該開始事務(wù)事件進(jìn)入所述事件等待隊(duì)列中;所述事務(wù)處理器開始處理全局事務(wù),并將開始處理的全局事務(wù)送至所述全局事務(wù)等待隊(duì)列中;所述事務(wù)處理器將全局事務(wù)分解成多個(gè)事務(wù)分支后發(fā)送至所述RPC客戶端,并為該事務(wù)分支生成延時(shí)的工作后送至所述延時(shí)的工作隊(duì)列;所述計(jì)時(shí)器對(duì)所述延時(shí)的工作計(jì)時(shí),等待該延時(shí)的工作所對(duì)應(yīng)的事務(wù)分支的返回結(jié)果。
在上述的包含多個(gè)異步事件的全局事務(wù)處理方法中,所述方法進(jìn)一步包括若所述事務(wù)分支在所述資源管理器中執(zhí)行后返回執(zhí)行結(jié)果到所述事務(wù)管理器的時(shí)間在所述計(jì)時(shí)器的閥值內(nèi),則該事務(wù)分支將執(zhí)行結(jié)果返回到所述事務(wù)管理器,與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從所述延時(shí)的工作隊(duì)列中刪除,并通過所述RPC客戶端回調(diào)所述事務(wù)分支的執(zhí)行結(jié)果,以及回調(diào)事件進(jìn)入所述事件等待隊(duì)列中。在上述的包含多個(gè)異步事件的全局事務(wù)處理方法中,所述方法進(jìn)一步包括若所述事務(wù)分支在所述資源管理器中執(zhí)行后返回執(zhí)行結(jié)果到所述事務(wù)管理器的時(shí)間超過所述計(jì)時(shí)器的閥值,則該計(jì)時(shí)器返回事件timeout(過時(shí))到所述事件等待隊(duì)列中,且與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從所述延時(shí)的工作隊(duì)列中刪除。在上述的包含多個(gè)異步事件的全局事務(wù)處理方法中,所述事件等待隊(duì)列中存放的事件類型包括全局事務(wù)相關(guān)的事件和事務(wù)分支相關(guān)的事件,且所述不同的事件具有不同的優(yōu)先級(jí)。在上述的包含多個(gè)異步事件的全局事務(wù)處理方法中,所述方法進(jìn)一步包括所述事務(wù)處理器對(duì)所述全局事務(wù)隊(duì)列、事件等待隊(duì)列和延時(shí)的工作隊(duì)列中的每個(gè)組成元素上鎖;所述事務(wù)處理器維持所述全局事務(wù)的生命狀態(tài)周期。在上述的包含多個(gè)異步事件的全局事務(wù)處理方法中,所述全局事務(wù)的生命狀態(tài)周期中包括七種狀態(tài),分別是committecK提交完)、 rollbacked( 0 )、FetalError ( I^i^IhT^ )、committing(11 ψ )、rollbacking( [Hi 滾中)、preparing (準(zhǔn)備中)和pr印ared(準(zhǔn)備完);所述事務(wù)處理器以所述全局事務(wù)的狀態(tài)為依據(jù),控制事件的執(zhí)行。本發(fā)明之四所述的一種如上述的基于事務(wù)的服務(wù)控制系統(tǒng)的處理虛機(jī)事務(wù)的主機(jī)資源管理方法,所述方法包括將所述事務(wù)分支隊(duì)列中創(chuàng)建虛機(jī)的請求的事務(wù)分支發(fā)送到所述管理控制中心;所述管理控制中心將查詢虛機(jī)模板的請求發(fā)送到所述共享存儲(chǔ)器,且該共享存儲(chǔ)器返回虛機(jī)模板的URL(統(tǒng)一資源定位符)到所述管理控制中心;所述管理控制中心根據(jù)返回的虛機(jī)模板的URL,到所述Mac Store中獲取虛機(jī)模板的mac地址信息;所述管理控制中心發(fā)送創(chuàng)建虛機(jī)的指令到所述Iibvirt,且該Iibvirt返回創(chuàng)建好的虛機(jī);所述管理控制中心將虛機(jī)鏡像的內(nèi)容發(fā)送到所述共享存儲(chǔ)器,以確認(rèn)是否創(chuàng)建完成虛機(jī)鏡像;若所述虛機(jī)鏡像創(chuàng)建完成,則所述管理控制中心返回完成指令到所述資源管理
ο由于采用了上述的技術(shù)解決方案,當(dāng)用戶的請求到達(dá)主服務(wù)器中的服務(wù)工廠,由服務(wù)工廠創(chuàng)建服務(wù),并將服務(wù)請求發(fā)送到本發(fā)明的服務(wù)控制器后,本發(fā)明對(duì)服務(wù)請求進(jìn)行管理和控制,包括保證服務(wù)的可靠性,以及對(duì)服務(wù)進(jìn)行調(diào)度和路由,從而使得服務(wù)能快速有效地在節(jié)點(diǎn)服務(wù)器上的虛機(jī)上執(zhí)行。本發(fā)明可以控制和管理業(yè)務(wù)和資源(虛機(jī))兩個(gè)層次的服務(wù)請求;通過分布式事務(wù)處理,結(jié)合狀態(tài)機(jī)機(jī)制,以及事務(wù)調(diào)度和事務(wù)路由策略,控制服務(wù)請求從開始到執(zhí)行結(jié)束的全過程的狀態(tài),并及時(shí)響應(yīng)給用戶,同時(shí)監(jiān)控資源狀態(tài)信息, 消除并發(fā)性處理的資源沖突,使服務(wù)請求可以經(jīng)過最優(yōu)的路徑到達(dá)負(fù)荷最小的節(jié)點(diǎn),從而有效地保證了服務(wù)質(zhì)量。
圖Ia是本發(fā)明之--的一種基于事務(wù)的服務(wù)控制系統(tǒng)的結(jié)構(gòu)框圖Ib是本發(fā)明之--的一種基于事務(wù)的服務(wù)控制系統(tǒng)的邏輯體系框圖2是本發(fā)明之一-的資源控制器的組成框圖3是本發(fā)明之一-的資源控制器中調(diào)度器的組成框圖4是本發(fā)明之一-的資源控制器中事務(wù)路由器的組成框圖5a是本發(fā)明之-一的路由決策環(huán)境圖5b是本發(fā)明之-一的路由決策流程圖6是本發(fā)明之一-的事務(wù)管理器的組成框圖7是本發(fā)明之一-的資源管理器的組成框圖8是本發(fā)明之一-的資源管理器中主機(jī)資源管理層的組成框圖9是本發(fā)明之二的一種基于事務(wù)的服務(wù)控制方法的流程圖10是本發(fā)明之:二和本發(fā)明之三的domain全局事務(wù)狀態(tài)轉(zhuǎn)移過程圖11是本發(fā)明之:二和本發(fā)明之三的component全局事務(wù)狀態(tài)轉(zhuǎn)移過程圖
圖12是本發(fā)明之:二和本發(fā)明之三的事務(wù)分支狀態(tài)轉(zhuǎn)移過程圖13是本發(fā)明之:二和本發(fā)明之三的事務(wù)執(zhí)行流程圖。
具體實(shí)施例方式下面結(jié)合附圖,對(duì)本發(fā)明的具體實(shí)施例進(jìn)行詳細(xì)說明。請參閱圖la,為本發(fā)明之一的總圖,反映了本發(fā)明之一的各組成模塊間的邏輯關(guān)系,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可以在此實(shí)施。本發(fā)明之一的一種基于事務(wù)的服務(wù)控制系統(tǒng)10,與外圍的服務(wù)工廠1連接,并接收該服務(wù)工廠1發(fā)出的服務(wù)請求。服務(wù)控制系統(tǒng)10包括域管理器2 (domain manager)、component管理器4、資源控制器3、事務(wù)管理器5和資源管理器6,若服務(wù)工廠1請求執(zhí)行業(yè)務(wù),則將domain請求發(fā)送到域管理器2,若服務(wù)工廠1請求操作虛機(jī),則將component請求發(fā)送到component管理器 4。域管理器2分別與資源控制器3和事務(wù)管理器5相連,向資源控制器3申請資源, 并指示事務(wù)管理器5開始創(chuàng)建全局事務(wù);域管理器2用于管理域的生命周期,包括從域的創(chuàng)建到刪除,并將一個(gè)domain請求分解成多個(gè)component請求;component管理器4分別與資源控制器3和事務(wù)管理器5相連,向資源控制器3申請資源,并指示事務(wù)管理器5開始創(chuàng)建全局事務(wù);component管理器4用于管理組件的生命周期,包括從組件的創(chuàng)建到刪除,并將一個(gè)component請求分解成多個(gè)事務(wù)分支;資源控制器3中存放資源的狀態(tài)及資源使用情況信息,根據(jù)域管理器2或 component管理器4發(fā)出的資源申請請求,返回可用的資源信息;
事務(wù)管理器5根據(jù)域管理器2或component管理器4輸出的創(chuàng)建全局事務(wù)的指示, 創(chuàng)建全局事務(wù)及其事務(wù)分支;資源管理器6的數(shù)量至少為一個(gè),它分別與事務(wù)管理器5和資源控制器3相連,接收事務(wù)管理器5發(fā)送的事務(wù)分支,管理事務(wù)分支的執(zhí)行,并將更新的資源信息發(fā)送到資源控制器3。在本發(fā)明中,服務(wù)工廠1是運(yùn)行在服務(wù)器上的一個(gè)管理程序,服務(wù)工廠1作為客戶端,向服務(wù)控制系統(tǒng)10請求資源。服務(wù)工廠11與域管理器2和component管理器4相連。若用戶請求的是一個(gè)業(yè)務(wù),則請求到達(dá)域管理器2,在本發(fā)明的一個(gè)較佳實(shí)施例中,用戶請求deploy (部署)一個(gè)lamp (lamp是linux,apache,mysql,PHP的縮寫,而這四個(gè)都是計(jì)算機(jī)專有名詞),請求達(dá)到域管理器2。域管理器2管理域的創(chuàng)建和刪除,并將請求劃分為多個(gè)operation (操作),以及定義這些operation間的關(guān)系;審核和鎖住RC (資源控制器)的資源,發(fā)送operation到事務(wù)管理器5,完成任務(wù)后,對(duì)資源進(jìn)行解鎖。domain 向外提供一個(gè)web (網(wǎng)絡(luò)),其實(shí)是提供一個(gè)service (服務(wù)),比如lamp。domain有共享VM 的機(jī)制,一個(gè)VM可以為多個(gè)域使用。domain有多租戶的特征一個(gè)域可以給多個(gè)用戶同時(shí)使用,用戶的信息是分離的。若用戶請求操作虛機(jī),即資源,則請求到達(dá)component管理器4,在本發(fā)明的又一較佳實(shí)施例中,若用戶發(fā)出一個(gè)創(chuàng)建虛機(jī)的請求,則請求到達(dá)component管理器4。 component管理器4管理組件的創(chuàng)建和刪除,其它方面的功能與域管理器2相同,只是處理對(duì)象是組件。component是一種只有一個(gè)VM的特殊的domain。component在創(chuàng)建時(shí),在VM 中查是否有符合復(fù)用的VM,如果有,domain復(fù)用VM,component的ID記錄在VM類中。一個(gè) VM可能對(duì)應(yīng)多個(gè)component。域管理器2與資源控制器3和事務(wù)管理器5相連。資源控制器13控制事務(wù)對(duì)資源的訪問,為域管理器2和component管理器4提供申請和釋放資源的接口,以及事務(wù)的調(diào)度和路由,以保證事務(wù)的并發(fā)性處理,實(shí)現(xiàn)輕量級(jí)的資源保護(hù)。事務(wù)管理器5負(fù)責(zé)事務(wù)的管理,使用AP發(fā)送過來的operations創(chuàng)建GT (全局事務(wù)),并維持GT的生命周期,以及創(chuàng)建 BT (事務(wù)分支),按照BT的優(yōu)先級(jí)把BT發(fā)送給資源管理器6,并向域管理器2和component 管理器4提供tx接口。資源管理器6維持BT的生命周期,并向事務(wù)管理器5提供API。域管理器2、資源控制器3、C0mp0nent管理器4、事務(wù)管理器5作為服務(wù)控制系統(tǒng)10的核心成分,運(yùn)行在一個(gè)主服務(wù)器上。資源管理器6運(yùn)行在一個(gè)節(jié)點(diǎn)(從屬)服務(wù)器上。一般而言, 在一個(gè)group (組群)中,有一個(gè)主服務(wù)器和多個(gè)節(jié)點(diǎn)(從屬)服務(wù)器。資源指各種基礎(chǔ)設(shè)施資源,包括虛機(jī)、主機(jī)、存儲(chǔ)和網(wǎng)絡(luò),服務(wù)實(shí)例運(yùn)行在這些資源上。請參閱圖lb,圖中示出了本發(fā)明之一的環(huán)境圖,反映了服務(wù)請求從客戶端發(fā)出到在具體的節(jié)點(diǎn)服務(wù)器上執(zhí)行的整個(gè)流程,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可以在此實(shí)施??蛻舳?1指各種用戶終端設(shè)備,既可以是傳統(tǒng)PC、個(gè)人筆記本,也可以是上網(wǎng)本、 手機(jī)等終端設(shè)備,還可以是各種胖瘦終端設(shè)備。這些設(shè)備可以配置生成請求,并通過網(wǎng)絡(luò) 12,將請求發(fā)送到主服務(wù)器13。網(wǎng)絡(luò)12可以是局域網(wǎng)、廣域網(wǎng),以及不同網(wǎng)絡(luò)的集合,也可以是互聯(lián)網(wǎng)或另一個(gè)由計(jì)算設(shè)備相互連接組成的系統(tǒng)。主服務(wù)器13負(fù)責(zé)生成服務(wù)和控制服務(wù),由服務(wù)工廠1和服務(wù)控制系統(tǒng)10組成。服務(wù)工廠1是生產(chǎn)服務(wù)的單位,接收用戶的請求,通過組件和契約創(chuàng)建服務(wù),并以服務(wù)為單位響應(yīng)用戶的請求;服務(wù)具有松散耦合和可重用等特征,可實(shí)現(xiàn)基礎(chǔ)設(shè)施資源的最大化復(fù)用。服務(wù)工廠1將生成好的服務(wù)以及相關(guān)策略發(fā)送到服務(wù)控制系統(tǒng)10,服務(wù)控制系統(tǒng)10通過分布式事務(wù)處理方法,結(jié)合狀態(tài)機(jī)機(jī)制,以及事務(wù)調(diào)度和事務(wù)路由策略,控制服務(wù)請求從開始到執(zhí)行結(jié)束的全過程的狀態(tài),并及時(shí)響應(yīng)給用戶,同時(shí)監(jiān)控資源狀態(tài)信息,消除并發(fā)性處理的資源沖突,使服務(wù)請求可以經(jīng)過最優(yōu)的路徑到達(dá)負(fù)荷最小的節(jié)點(diǎn)。服務(wù)控制系統(tǒng)10也可以控制和管理業(yè)務(wù)和資源(虛機(jī))兩個(gè)層次的服務(wù)請求。在本發(fā)明的一較佳實(shí)施例中,主服務(wù)器13是一個(gè)性能高的服務(wù)器硬件, 服務(wù)工廠1和服務(wù)控制系統(tǒng)10是運(yùn)行在主服務(wù)器13上的軟件系統(tǒng)。節(jié)點(diǎn)服務(wù)器14是執(zhí)行服務(wù)的計(jì)算節(jié)點(diǎn)。在本發(fā)明的一較佳實(shí)施例中,每個(gè)節(jié)點(diǎn)服務(wù)器14由硬件141、VMM142、虛機(jī)143組成,虛機(jī)143是執(zhí)行服務(wù)的基本計(jì)算單元。當(dāng)然,本發(fā)明也不限定在虛機(jī)為最基本的計(jì)算單元,根據(jù)用戶的需求,虛機(jī)143和主機(jī)都可以作為執(zhí)行服務(wù)的最基本的計(jì)算單元。請參閱圖2,圖中示出了本發(fā)明之一的資源控制器3的組成框架。資源控制器3控制事務(wù)對(duì)資源的訪問,為域管理器2和component管理器4提供申請和釋放資源的接口 ;以及事務(wù)的調(diào)度和路由,以保證事務(wù)的并發(fā)性處理,實(shí)現(xiàn)輕量級(jí)的資源保護(hù)。資源控制器3包括調(diào)度器331、事務(wù)路由器332和資源中心333,其中資源中心333是資源控制器3的資源存儲(chǔ)中心,可以以數(shù)據(jù)庫、表格等各種存儲(chǔ)方式存儲(chǔ)資源信息;資源中心333主要由虛機(jī)狀態(tài)機(jī)3331和資源引用表3332兩部分組成;調(diào)度器331與事務(wù)路由器332相連,并根據(jù)虛機(jī)狀態(tài)機(jī)3331和資源引用表3332 中的信息確定事務(wù)的調(diào)度,并將調(diào)度結(jié)果發(fā)送到事務(wù)路由器332 ;事務(wù)路由器332接收調(diào)度器331發(fā)送的信息,并根據(jù)資源引用表3332中的信息做出路由決策。資源控制器3還與外圍的節(jié)點(diǎn)服務(wù)器14連接,節(jié)點(diǎn)服務(wù)器14的數(shù)量至少為一個(gè), 且每個(gè)節(jié)點(diǎn)服務(wù)器14包括虛機(jī)API 341和Monitor API ;342,其中虛機(jī)API 341用于將虛機(jī)的最新信息傳送至虛機(jī)狀態(tài)機(jī)3331 ;Monitor API 342用于將資源引用和資源使用情況的最新信息傳送至資源引用表 3332。在本發(fā)明中,虛機(jī)狀態(tài)機(jī)3331中存儲(chǔ)的是虛機(jī)狀態(tài)信息,維持虛機(jī)的生命周期, 并采用分布式哈希表的形式存儲(chǔ),其作用是根據(jù)虛機(jī)的生命周期狀態(tài)控制對(duì)虛機(jī)的訪問, 避免異常的出現(xiàn)。資源引用表3332中存儲(chǔ)的是各種資源的引用路徑,以及資源的使用情況,這里的資源包括cpu,memory, storage, 1/0等;引用路徑是指如何從最上層引用到最下面的某個(gè)具體的物理資源,比如從數(shù)據(jù)中心到組,再從組到組內(nèi)的某一個(gè)節(jié)點(diǎn)host,再從 host到host中的cpu或memory,資源引用通過樹形結(jié)構(gòu)實(shí)現(xiàn);當(dāng)引用到某個(gè)節(jié)點(diǎn)host上的cpu時(shí),cpu的使用情況則是這里所說的資源的使用情況,當(dāng)然還可以是各種具體的物理資源的使用情況。每次主服務(wù)器重啟時(shí),或節(jié)點(diǎn)服務(wù)器14上的虛機(jī)狀態(tài)發(fā)生改變時(shí),則節(jié)點(diǎn)服務(wù)器14的虛機(jī)API 341都會(huì)把最新的虛機(jī)狀態(tài)信息發(fā)送到資源中心333中的虛機(jī)狀態(tài)機(jī)3331中。在本發(fā)明中,資源引用表3332中的信息由host上的monitor提供,并通過 Monitor API 342傳送到資源引用表3332。monitor主要是實(shí)現(xiàn)資源監(jiān)控,包括硬件資源及虛擬機(jī)資源,發(fā)現(xiàn)資源使用異常并報(bào)告,為資源分配,有效利用資源提供依據(jù)。monitor 可作為Linux內(nèi)核的一個(gè)可配置的模塊及一個(gè)應(yīng)用層接口,也可供其他程序來注冊一個(gè)監(jiān)控。調(diào)度器331負(fù)責(zé)對(duì)請求的調(diào)度,即根據(jù)資源中心333中的虛機(jī)狀態(tài)信息和資源引用信息來確定請求是否可以執(zhí)行,以及每個(gè)operation在哪個(gè)節(jié)點(diǎn)服務(wù)器14上執(zhí)行。事務(wù)路由器332負(fù)責(zé)對(duì)事務(wù)(這里的事務(wù)指每個(gè)operation)的路由,根據(jù)資源中心333中的資源引用信息確定事務(wù)的路由。在本發(fā)明的一較佳實(shí)施例中,調(diào)度器331接收域管理器2或component管理器4 的請求,到資源中心333中查看虛機(jī)狀態(tài),以及物理資源的使用情況。調(diào)度器331根據(jù)這些資源信息判斷請求是否可以執(zhí)行,如果不能執(zhí)行,則返回“不能執(zhí)行”到域管理器2或 component管理器4 ;如果可以執(zhí)行,則調(diào)度器331進(jìn)一步確定該請求中的每個(gè)operation 在什么地方執(zhí)行,并調(diào)用事務(wù)路由器332確定每個(gè)operation的路由。調(diào)度器331將這些每個(gè)operation執(zhí)行的目的節(jié)點(diǎn)服務(wù)器14,以及路由信息一起返回到域管理器2或 component管理器4,域管理器2或component管理器4鎖住執(zhí)行所需的資源。同時(shí),節(jié)點(diǎn)服務(wù)器14上的虛機(jī)API 341和Monitor API 342會(huì)把虛機(jī)狀態(tài)更新信息和資源狀態(tài)更新信息上報(bào)到資源中心333。請參閱圖3,圖中示出了本發(fā)明之一的資源控制器中的調(diào)度器331的組成框架。調(diào)度器331負(fù)責(zé)對(duì)請求的調(diào)度,即根據(jù)資源中心333中的虛機(jī)狀態(tài)信息和資源引用信息來確定請求是否可以執(zhí)行,以及每個(gè)operation在哪個(gè)節(jié)點(diǎn)上執(zhí)行(一個(gè)請求包括多個(gè)operation),目的主要是為了實(shí)現(xiàn)負(fù)載均衡。調(diào)度器331主要包括互連的事務(wù)執(zhí)行規(guī)劃模塊41和執(zhí)行控制模塊42兩部分,其中事務(wù)執(zhí)行規(guī)劃模塊41用于規(guī)劃事務(wù)的調(diào)度,并將規(guī)劃的結(jié)果發(fā)送至執(zhí)行控制模塊42 ;事務(wù)執(zhí)行規(guī)劃模塊41包括調(diào)度控制器411以及與該調(diào)度控制器411連接的負(fù)載計(jì)算器412和花費(fèi)評(píng)估模塊413,且調(diào)度控制器411用于調(diào)用負(fù)載計(jì)算器412和花費(fèi)評(píng)估模塊 413,并決定調(diào)度策略;執(zhí)行控制模塊42根據(jù)事務(wù)執(zhí)行規(guī)劃模塊41輸出的規(guī)劃結(jié)果,確定執(zhí)行控制的策略。在本發(fā)明中,一旦收到請求,事務(wù)執(zhí)行規(guī)劃模塊41就將請求送到調(diào)度控制器411 中,調(diào)度控制器411首先到虛機(jī)狀態(tài)機(jī)3331中查看虛機(jī)的狀態(tài),根據(jù)虛機(jī)的狀態(tài),判斷 operation是否能在虛機(jī)上執(zhí)行(亦即能否對(duì)虛機(jī)進(jìn)行操作),若operation與虛機(jī)的狀態(tài)不沖突,則調(diào)度控制器進(jìn)一步到資源引用表3332中查看資源的引用信息,并調(diào)用負(fù)載計(jì)算器412,負(fù)載計(jì)算器412根據(jù)每個(gè)節(jié)點(diǎn)上的資源狀態(tài)(資源使用情況)采用統(tǒng)一的算法計(jì)算和評(píng)估每個(gè)節(jié)點(diǎn)上的負(fù)載,并通過花費(fèi)評(píng)估模塊413計(jì)算每個(gè)節(jié)點(diǎn)上的負(fù)載的執(zhí)行情況,以及將在多長的時(shí)間內(nèi)釋放資源,綜合考慮該節(jié)點(diǎn)可以在以較短的時(shí)間內(nèi)承受負(fù)載的能力。存在這種情況,某個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載很多,占用資源也很多,但是這些負(fù)載都處于執(zhí)行后期,即將執(zhí)行完,因此可以在很短的時(shí)間內(nèi)釋放大量的資源,這時(shí)就需要考慮后續(xù)執(zhí)行負(fù)載的能力。調(diào)度控制器411根據(jù)負(fù)載計(jì)算器412和花費(fèi)評(píng)估模塊413來綜合確定計(jì)算哪些節(jié)點(diǎn)上有執(zhí)行operation所需的資源,其中哪個(gè)節(jié)點(diǎn)是執(zhí)行operation的最優(yōu)的節(jié)點(diǎn)。若每個(gè)operation都不與虛機(jī)狀態(tài)機(jī)3331中的虛機(jī)狀態(tài)沖突,且有執(zhí)行operation的硬件資源,則認(rèn)為有執(zhí)行整個(gè)請求所需的資源。事務(wù)執(zhí)行規(guī)劃模塊41將規(guī)劃結(jié)果傳到執(zhí)行控制模塊42中。調(diào)度控制器411將結(jié)果返回到component管理器或域管理器,結(jié)果包括是否有執(zhí)行請求所需的資源,每個(gè)operation在哪個(gè)節(jié)點(diǎn)上執(zhí)行,component管理器或域管理器并鎖住執(zhí)行請求所需的資源。請參閱圖4,圖中示出了本發(fā)明之一的資源控制器中的事務(wù)路由器332的組成框架。事務(wù)路由器332包括互連的路由管理器511和路由信息存儲(chǔ)器512,其中路由管理器511是事務(wù)路由器332的路由處理中心,它通過路由信息存儲(chǔ)器512 中的邏輯路由信息和策略確定事務(wù)的路由;路由信息存儲(chǔ)器512是事務(wù)路由器332的信息存儲(chǔ)中心,它根據(jù)資源引用表3332 中的信息,存儲(chǔ)并向路由管理器511提供邏輯路由信息。具體來說,路由管理器511包括路由控制器5112以及分別與該路由控制器5112 連接的連接協(xié)調(diào)器5111、最優(yōu)路徑計(jì)算器5113、流控制器5115和錯(cuò)誤控制模塊5114,其中路由控制器5112是路由管理器511的核心,它通過連接協(xié)調(diào)器5111、最優(yōu)路徑計(jì)算器5113、流控制器5115的協(xié)同工作來確定事務(wù)的邏輯路由決策;連接協(xié)調(diào)器5111用于管理網(wǎng)絡(luò)的邏輯連接,包括確定所述邏輯連接是否異常,具體來說,即確定哪個(gè)連接是通的,確定哪條路能走,哪條不能走,怎樣走,以及根據(jù)用戶的不同的權(quán)限,來確定事務(wù)的邏輯路徑;最優(yōu)路徑計(jì)算器5113是一個(gè)計(jì)算功能模塊,它用于通過一定的算法求解從源到目的地的花費(fèi)最小的邏輯路徑,所謂花費(fèi)最小是指從源到目的地,即路由的目標(biāo)節(jié)點(diǎn)服務(wù)器14的最短路徑;流控制器5115用于監(jiān)控每條邏輯路徑上的網(wǎng)絡(luò)流量。在本發(fā)明中,流控制器5115與最優(yōu)路徑計(jì)算器5113的結(jié)合可以得出一個(gè)最優(yōu)的折中路徑,連接協(xié)調(diào)器5111再根據(jù)用戶的權(quán)限(根據(jù)用戶請求服務(wù)時(shí)定義的策略,不同的用戶有不同的權(quán)限)以及網(wǎng)絡(luò)的邏輯連接情況,最終確定事務(wù)的邏輯路由。錯(cuò)誤控制模塊 5114監(jiān)控網(wǎng)絡(luò)上的出錯(cuò)情況,并對(duì)鏈路錯(cuò)誤情況進(jìn)行恢復(fù)。路由信息存儲(chǔ)器512存儲(chǔ)的邏輯路由信息包括邏輯路徑拓?fù)浔砀?121、邏輯流狀態(tài)表格5122和事務(wù)狀態(tài)表格5123,路由信息存儲(chǔ)器512與資源引用表3332相連,并根據(jù)資源引用表3332提供的信息確定邏輯路徑拓?fù)浔砀?121,邏輯流狀態(tài)表格5122以及事務(wù)狀態(tài)表格5123,其中邏輯路徑拓?fù)浔砀?121存儲(chǔ)的是網(wǎng)絡(luò)邏輯路徑拓?fù)湫畔?;邏輯流狀態(tài)表格5122存儲(chǔ)的是網(wǎng)絡(luò)流量狀態(tài)信息;事務(wù)狀態(tài)表格5123存儲(chǔ)的是事務(wù)分支的狀態(tài)信息。在本發(fā)明中,事務(wù)路由器332工作在網(wǎng)絡(luò)的傳輸層,在傳輸層空間執(zhí)行邏輯路由決策。請參閱圖5a,圖中示出了本發(fā)明之一的路由決策流程。路由決策的制定首先依賴于邏輯環(huán)境,不同組之間的邏輯連接情況,在本發(fā)明中,主要考慮與路由相關(guān)的組件和策略,具體步驟如下步驟611,調(diào)度器331將事務(wù)調(diào)度決定發(fā)送到事務(wù)路由器332 ;步驟612,根據(jù)事務(wù)的權(quán)限和邏輯路徑拓?fù)湫畔?,連接協(xié)調(diào)器5111檢查從源到目的地之間的邏輯路徑;步驟613,根據(jù)步驟612的檢查結(jié)果,判斷是否有可通的邏輯路徑,若有可走的邏輯路徑,轉(zhuǎn)入到步驟617,否則轉(zhuǎn)入到步驟614 ;
步驟614,路由控制器5112調(diào)用錯(cuò)誤控制模塊5114對(duì)路徑錯(cuò)誤情況進(jìn)行恢復(fù);步驟615,判斷路徑異常是否得到了解決,若得到了解決,則轉(zhuǎn)入到步驟617,否則轉(zhuǎn)入到步驟616;步驟616,返回錯(cuò)誤信息,網(wǎng)絡(luò)不通,事務(wù)無法執(zhí)行;步驟617,路由控制器5112調(diào)用最優(yōu)路徑計(jì)算器5113,最優(yōu)路徑計(jì)算器5113根據(jù)邏輯路徑拓?fù)浔砀?121的信息,計(jì)算每條邏輯路徑的花費(fèi);步驟618,路由控制器5112調(diào)用流控制器5115,流控制器5115根據(jù)邏輯流狀態(tài)表格5122的信息,計(jì)算每條邏輯路徑的網(wǎng)絡(luò)流量;步驟619,路由控制器5112根據(jù)最優(yōu)路徑計(jì)算器5113和流控制器5115的計(jì)算結(jié)果,通過折中策略為事務(wù)選擇一條最優(yōu)的邏輯路徑;步驟620,路由控制器5112將路由決策結(jié)果返回給調(diào)度器331。請參閱圖5b,圖中示出了是本發(fā)明之一的路由決策環(huán)境。每個(gè)主服務(wù)器13和它管理的若干個(gè)節(jié)點(diǎn)服務(wù)器14共同組成了一個(gè)組62,每個(gè)節(jié)點(diǎn)服務(wù)器14都包括硬件141、 VMM142和虛機(jī)143。當(dāng)有多個(gè)主服務(wù)器13的時(shí)候,就有多個(gè)組62,這些組62之間構(gòu)成了邏輯連接。邏輯連接有多種情況,本發(fā)明采用任意兩個(gè)組62之間相互連接的分布式連接方式。多個(gè)組62連接在一起就構(gòu)成了一個(gè)服務(wù)聯(lián)邦,服務(wù)(事務(wù))的路由即在聯(lián)邦環(huán)境中的邏輯路由。服務(wù)請求到達(dá)某個(gè)組62的主服務(wù)器13,通過調(diào)度器確定將請求調(diào)度到哪個(gè)節(jié)點(diǎn)服務(wù)器14上執(zhí)行,如果這個(gè)節(jié)點(diǎn)服務(wù)器14在組62內(nèi),則通過事務(wù)路由器將請求路由到組 62內(nèi)的節(jié)點(diǎn)服務(wù)器14上;若這個(gè)節(jié)點(diǎn)服務(wù)器14在組62外,則通過事務(wù)路由器將請求路由到組62外的節(jié)點(diǎn)服務(wù)器14上。請參閱圖6,圖中示出了本發(fā)明之一的事務(wù)管理器5的事務(wù)管理框架。事務(wù)管理器5包括事務(wù)處理器713、計(jì)時(shí)器717、AP代理(本實(shí)施例中,AP代理以 component管理器代理711為例)、全局事務(wù)隊(duì)列7121、全局事務(wù)等待隊(duì)列7122、事件等待隊(duì)列714、RPC客戶端715和延時(shí)的工作隊(duì)列716,其中事務(wù)處理器713是事務(wù)管理器5的處理中心,它用于處理全局事務(wù)、與全局事務(wù)相關(guān)的多個(gè)異步事件以及由全局事務(wù)分解出來的多個(gè)事務(wù)分支所產(chǎn)生的延遲工作;具體來說,即負(fù)責(zé)全局事務(wù)等待隊(duì)列7122、事件等待隊(duì)列714和延時(shí)的工作隊(duì)列716三個(gè)部分的處理工作,主要包括創(chuàng)建全局事務(wù)、維持全局事務(wù)的生命周期、將全局事務(wù)解析出來、創(chuàng)建多個(gè)事務(wù)分支和將事務(wù)分支發(fā)送給RPC客戶端715 ;計(jì)時(shí)器717用于對(duì)事務(wù)分支所產(chǎn)生的延遲工作進(jìn)行計(jì)時(shí),并設(shè)定一個(gè)閥值,以確定事務(wù)分支從發(fā)出到返回結(jié)果所用的時(shí)間是否超過閥值。下面結(jié)合圖6,對(duì)本發(fā)明之三的包含多個(gè)異步事件的全局事務(wù)處理方法的具體實(shí)施例進(jìn)行說明。具體步驟如下component管理器代理711將服務(wù)請求作為全局事務(wù)送至全局事務(wù)隊(duì)列7121中, 以備事務(wù)處理器713處理,同時(shí)生成開始事務(wù)事件(即事件tX_begin),并使該開始事務(wù)事件進(jìn)入事件等待隊(duì)列714中;事務(wù)處理器713開始處理全局事務(wù),并將開始處理的全局事務(wù)送至全局事務(wù)等待隊(duì)列7122中;事務(wù)處理器713在創(chuàng)建全局事務(wù)后,為全局事務(wù)創(chuàng)建多個(gè)事務(wù)分支,并將事務(wù)分支通過RPC客戶端715發(fā)送到資源管理器16處理,同時(shí)為該事務(wù)分支生成一個(gè)延時(shí)的工作 (delayed work),并送至延時(shí)的工作隊(duì)列716 ;計(jì)時(shí)器717對(duì)延時(shí)的工作計(jì)時(shí),等待該延時(shí)的工作所對(duì)應(yīng)的事務(wù)分支的返回結(jié)果;具體來說計(jì)時(shí)器717從延時(shí)的工作生成即開始計(jì)時(shí),并設(shè)置一個(gè)最大時(shí)間閥值,計(jì)時(shí)器717和資源管理器6同時(shí)工作,若事務(wù)分支在資源管理器6中執(zhí)行后返回執(zhí)行結(jié)果到事務(wù)管理器5的時(shí)間在計(jì)時(shí)器717的閥值內(nèi),則該事務(wù)分支將執(zhí)行結(jié)果返回到事務(wù)管理器5, 且事務(wù)分支的執(zhí)行結(jié)果可以是branch pr印ared(分支準(zhǔn)備)、branCh failed(分支失敗) 或branch rollbacked(分支回滾)等,與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從延時(shí)的工作隊(duì)列716中刪除,并通過RPC客戶端715回調(diào)(callback)事務(wù)分支的執(zhí)行結(jié)果,以及回調(diào)事件進(jìn)入事件等待隊(duì)列714中。若事務(wù)分支在資源管理器6中執(zhí)行后返回執(zhí)行結(jié)果到事務(wù)管理器5的時(shí)間超過計(jì)時(shí)器717的閥值,即計(jì)時(shí)器717所記時(shí)的某個(gè)事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作在閥值時(shí)間內(nèi)未返回事務(wù)分支執(zhí)行結(jié)果,則該計(jì)時(shí)器717返回事件timeout到事件等待隊(duì)列714中,且與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從延時(shí)的工作隊(duì)列716中刪除。事務(wù)處理器713根據(jù)事務(wù)分支返回的結(jié)果通知資源管理器6準(zhǔn)備事務(wù)分支的提交或回滾。由于一個(gè)全局事務(wù)中有很多異步事件,對(duì)全局事務(wù)加鎖處理很麻煩,所以采用事件的處理方式,即不管是什么樣的操作,全局事務(wù)還是事務(wù)分支的,都可以認(rèn)為是一個(gè)事件, 從而對(duì)處理進(jìn)行了統(tǒng)一。在這種方式下,事務(wù)處理器713需要對(duì)全局事務(wù)隊(duì)列7121、事件等待隊(duì)列714和延時(shí)的工作隊(duì)列716中的每個(gè)組成元素,即全局事務(wù)、事件以及延時(shí)的工作上鎖。另外,為了避免處理眾多異步事件可能出現(xiàn)的異常和錯(cuò)誤,事務(wù)處理器713以全局事務(wù)的狀態(tài)為依據(jù),控制事件的執(zhí)行(作用與虛機(jī)狀態(tài)機(jī)的控制機(jī)制相同),這里的事務(wù)狀態(tài)包括全局事務(wù)狀態(tài)和事務(wù)分支狀態(tài),其中,事務(wù)處理器713維持的全局事務(wù)的生命狀態(tài)周期中包括七禾中狀態(tài),分別是 committed、rollbacked、FetalErrorΛ committing、rollbacking、 preparing 禾口 prepared。在本發(fā)明中,事件等待隊(duì)列714中存放的事件類型包括全局事務(wù)相關(guān)的事件和事務(wù)分支相關(guān)的事件,全局事務(wù)相關(guān)的事件包括tx_begin、tx_commit、tx_roIlback和wait for event (均為函數(shù)),事務(wù)分支才目關(guān)的事件包括branch prepared、branch failed、 branch rollbacked和timeout等,且不同的事件具有不同的優(yōu)先級(jí),如rolIl^ack的優(yōu)先級(jí)比commit的優(yōu)先級(jí)高;對(duì)于線程多、異步事件多的情況,可以歸納為幾類,一起處理。請參閱圖7,圖中示出了本發(fā)明之一的資源管理器6的組成框架。資源管理器6運(yùn)行在節(jié)點(diǎn)服務(wù)器上,用于接收來自事務(wù)管理器5的請求,管理事務(wù)分支的生命周期;它包括主機(jī)資源管理層82以及分別與該主機(jī)資源管理層82連接的資源管理器服務(wù)器83和資源控制器客戶端81,其中資源管理器服務(wù)器83接收事務(wù)管理器5發(fā)送的請求,并調(diào)用主機(jī)資源管理層82 ;主機(jī)資源管理層82接收資源管理器服務(wù)器83發(fā)送的調(diào)用信號(hào),配置執(zhí)行事務(wù)分支所需的資源;資源控制器客戶端81接收主機(jī)資源管理層82返回的虛機(jī)狀態(tài)更新信息,并將更新的虛機(jī)狀態(tài)發(fā)送給資源控制器。具體來說,資源管理器服務(wù)器83包括資源管理器代理834、工作線程833、請求隊(duì)列831和事務(wù)分支隊(duì)列832,其中資源管理器代理834將事務(wù)管理器5發(fā)送的并發(fā)性請求通過請求隊(duì)列831傳至工作線程833進(jìn)行處理;工作線程833通過ax_begin(為函數(shù))開始事務(wù)分支,將處理后的請求發(fā)送到事務(wù)分支隊(duì)列832中,并處理事務(wù)分支以及維持事務(wù)分支的生命周期;這里的請求包括Ax_begin、Ax_commit和Ax_rollback (均為函數(shù)),通過工作線程833來處理請求。開始事務(wù)分支后,資源管理器服務(wù)器83將請求發(fā)送到主機(jī)資源管理層82,主機(jī)資源管理層82配置執(zhí)行事務(wù)分支所需的資源并調(diào)用Iibvirt執(zhí)行事務(wù)分支,Iibvirt將執(zhí)行結(jié)果返回主機(jī)資源管理層82,主機(jī)資源管理層82將執(zhí)行結(jié)果返回到資源管理器服務(wù)器83, 并將虛機(jī)狀態(tài)更新信息發(fā)送到資源控制器客戶端81 ;資源管理器服務(wù)器83更新事務(wù)分支的狀態(tài),并將結(jié)果返回到事務(wù)管理器5。請參閱圖8,圖中示出了本發(fā)明之一的資源管理器中的主機(jī)資源管理層82的組成框架。主機(jī)資源管理層82是主機(jī)上的一個(gè)資源管理模塊,與資源控制器客戶端81和資源管理器服務(wù)器83相連,同時(shí)提供調(diào)用Iibvirt 96的接口。主機(jī)資源管理層82包括管理控制中心91以及分別與該管理控制中心91連接的共享存儲(chǔ)器92、Mac Store 93、虛機(jī)實(shí)例94和事件管理器95,其中管理控制中心91是主機(jī)資源管理層82的核心,它用于提供獲取主機(jī)資源的API, 并注冊或注銷到資源控制器客戶端81 ;管理控制中心91包括虛機(jī)哈希表911,且該虛機(jī)哈希表911用于管理虛機(jī)的生命周期。共享存儲(chǔ)器92是指可共享的存儲(chǔ),可以是存儲(chǔ)域網(wǎng)絡(luò)(SAN)、網(wǎng)絡(luò)附加存儲(chǔ) (NAS),也可以是獨(dú)立磁盤冗余陣列(Raid),它用于為管理控制中心91提供共享的存儲(chǔ)資源訪問接口;Mac Store 93用于管理mac地址(里面存儲(chǔ)一個(gè)group或更大的范圍內(nèi)的多個(gè) mac地址),并為管理控制中心91執(zhí)行操作提供支持;虛機(jī)實(shí)例94提供API以使用外圍Iibvirt 96來操作虛機(jī),并提供API以得到該虛機(jī)的狀態(tài);事件管理器95提供事件功能并將它們注冊到libvirt96。下面結(jié)合圖7、圖8,對(duì)本發(fā)明之四的處理虛機(jī)事務(wù)的主機(jī)資源管理方法的具體實(shí)施例進(jìn)行說明。具體步驟如下將事務(wù)分支隊(duì)列832中操作虛機(jī)的請求(包括創(chuàng)建虛機(jī)、start虛機(jī)、shutdown虛機(jī)等,本實(shí)施例中以創(chuàng)建虛機(jī)為例)的事務(wù)分支發(fā)送到管理控制中心91 ;管理控制中心91將查詢虛機(jī)模板的請求發(fā)送到共享存儲(chǔ)器92,且該共享存儲(chǔ)器 92返回虛機(jī)模板的URL到管理控制中心91 ;管理控制中心91根據(jù)返回的虛機(jī)模板的URL信息,到Mac Store 93中獲取虛機(jī)模板的mac地址信息;管理控制中心91發(fā)送創(chuàng)建虛機(jī)的指令到Iibvirt 96,且該Iibvirt 96返回創(chuàng)建好的虛機(jī);管理控制中心91將虛機(jī)鏡像的內(nèi)容發(fā)送到共享存儲(chǔ)器92,以確認(rèn)是否創(chuàng)建完成虛機(jī)鏡像;若虛機(jī)鏡像創(chuàng)建完成,則管理控制中心91返回完成指令(即0K)到資源管理器。請參閱圖9,并結(jié)合圖Ia至圖8,對(duì)本發(fā)明之二一種基于上述事務(wù)的服務(wù)控制系統(tǒng)的服務(wù)控制方法的具體實(shí)施例進(jìn)行說明。本發(fā)明之二的基于事務(wù)的服務(wù)控制方法包括服務(wù)工廠1向域管理器2或component管理器4發(fā)送服務(wù)請求;服務(wù)請求可以為 domain請求或?yàn)閏omponent請求,若服務(wù)請求的是業(yè)務(wù),則domain請求到達(dá)域管理器2,若服務(wù)請求的是虛機(jī),則component請求到達(dá)component管理器4 ;域管理器2或component管理器4向資源控制器3申請資源,并指示事務(wù)管理器 5開始創(chuàng)建全局事務(wù)和事務(wù)分支;具體來說,若服務(wù)請求是domain請求,則每個(gè)domain請求作為一個(gè)domain全局事務(wù),每個(gè)domain全局事務(wù)可分解成多個(gè)component全局事務(wù), 每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支;若服務(wù)請求是component請求,則每個(gè) component請求作為一個(gè)component全局事務(wù),每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支;資源控制器3判斷是否有可用的資源,以及執(zhí)行請求的最優(yōu)資源,并返回;事務(wù)管理器5將事務(wù)分支發(fā)送至資源管理器6 ;資源管理器6管理事務(wù)分支的執(zhí)行,當(dāng)事務(wù)分支執(zhí)行完后,將執(zhí)行結(jié)果返回給事務(wù)管理器5,并將資源信息更新到所述資源控制器。圖9示出了本發(fā)明之二的總流程圖,本發(fā)明之二的具體工作流程如下步驟201,服務(wù)工廠1向服務(wù)控制系統(tǒng)10發(fā)出服務(wù)請求;步驟202,判斷服務(wù)請求的類型;這里的服務(wù)請求分為兩個(gè)不同層次的請求,一個(gè)是業(yè)務(wù)層次的請求,一個(gè)是資源層次的請求;若請求的是域(即業(yè)務(wù)請求),則請求轉(zhuǎn)入到步驟203,否則請求轉(zhuǎn)入到步驟209 ;步驟203,服務(wù)請求,即domain請求到達(dá)域管理器2 ;步驟204,域管理器2將domain請求分解成多個(gè)operations (這里是將一個(gè) domain請求分解成多個(gè)component請求),并到資源控制器3中申請資源,即域管理器2訪問資源控制器3中的調(diào)度控制器411 ;步驟205,通過資源控制器3中的信息,域管理器2判斷是否有執(zhí)行服務(wù)請求所需的資源,即調(diào)度控制器411到資源引用表3332中查看資源的引用信息及資源的使用情況, 并判斷domain請求能否執(zhí)行;若有可用的資源,則轉(zhuǎn)入到步驟206,否則轉(zhuǎn)入到步驟207 ;步驟206,域管理器2鎖住資源,并將operations傳送到事務(wù)管理器5 ;具體來說, 即若資源引用表3332中顯示的資源可用,并滿足domain請求的執(zhí)行,則將可以執(zhí)行的結(jié)果返回到域管理器2,且該域管理器2鎖住執(zhí)行所需的資源,并將domain請求發(fā)送到事務(wù)管理器5 ;步驟207,等待直到有可用的資源,當(dāng)?shù)却臅r(shí)間超過了設(shè)定的時(shí)間界限,則結(jié)束事務(wù)的執(zhí)行,返回“無可用資源,事務(wù)無法執(zhí)行”的結(jié)果;具體來說,即若資源引用表3332中顯示沒有可用的資源,則返回沒有資源不能執(zhí)行的結(jié)果到域管理器2,domain請求進(jìn)入等待狀態(tài),且域管理器2繼續(xù)申請資源直到超時(shí)退出;步驟208,事務(wù)管理器5根據(jù)operations創(chuàng)建全局事務(wù),并為每個(gè)全局事務(wù)創(chuàng)建多個(gè)事務(wù)分支,將事務(wù)分支傳送到component管理器4 (這里的全局事務(wù)是domain全局事務(wù), 事務(wù)分支是domain事務(wù)分支,亦即component全局事務(wù));步驟209,請求到達(dá)component管理器4,這里的請求既可以是直接來自于服務(wù)工廠1的component請求,也可以是來自于事務(wù)管理器5的事務(wù)分支請求,即component全局事務(wù)請求(也可視為component請求);步驟210,component管理器4將component請求分解成多個(gè)operations (這里是指將一個(gè)component請求分解成多個(gè)子操作),并到資源控制器3中申請資源,即 component管理器4訪問資源控制器3中的調(diào)度控制器411 ;步驟211,通過資源控制器3中的信息,component管理器4判斷是否有執(zhí)行請求所需的資源,即調(diào)度控制器411到虛機(jī)狀態(tài)機(jī)3331中查看虛機(jī)的狀態(tài),并根據(jù)虛機(jī)的狀態(tài), 判斷事務(wù)分支是否在虛機(jī)上執(zhí)行;若有可用的資源,則轉(zhuǎn)入到步驟212,否則轉(zhuǎn)入到步驟 216 ;步驟212,component管理器4鎖住資源,并將operations傳送到事務(wù)管理器5 ; 具體來說若事務(wù)分支與虛機(jī)的狀態(tài)不沖突,則調(diào)度控制器411進(jìn)一步到資源引用表3332中查看資源的引用信息,并調(diào)用負(fù)載計(jì)算器412和花費(fèi)評(píng)估模塊413 ;負(fù)載計(jì)算器412根據(jù)每個(gè)節(jié)點(diǎn)服務(wù)器14上的資源使用情況,采用統(tǒng)一的算法計(jì)算和評(píng)估每個(gè)節(jié)點(diǎn)服務(wù)器14上的負(fù)載;花費(fèi)評(píng)估模塊413根據(jù)每個(gè)節(jié)點(diǎn)服務(wù)器14上的負(fù)載以及節(jié)點(diǎn)服務(wù)器14在較短的時(shí)間內(nèi)承受負(fù)載的能力,計(jì)算每個(gè)節(jié)點(diǎn)服務(wù)器14上的負(fù)載執(zhí)行情況,以及釋放資源所需的時(shí)間;調(diào)度控制器411根據(jù)負(fù)載計(jì)算器412和花費(fèi)評(píng)估模塊413輸出的結(jié)果,確定將事務(wù)分支調(diào)度到哪個(gè)節(jié)點(diǎn)服務(wù)器14上執(zhí)行;調(diào)度控制器411將調(diào)度結(jié)果發(fā)送到事務(wù)路由器332中的路由控制器5112 ;路由控制器5112調(diào)用連接協(xié)調(diào)器5111,該連接協(xié)調(diào)器5111檢查從源到目的地之間的邏輯路徑;若連接協(xié)調(diào)器5111檢查從源到目的地之間有可走的邏輯路徑,則路由控制器 5112進(jìn)一步調(diào)用最優(yōu)路徑計(jì)算器5113和流控制器5115 ;最優(yōu)路徑計(jì)算器5113根據(jù)邏輯路徑拓?fù)浔砀?121中的信息,計(jì)算每條邏輯路徑的花費(fèi);流控制器5115根據(jù)邏輯流狀態(tài)表格5122中的信息,計(jì)算每條邏輯路徑的網(wǎng)絡(luò)流量;路由控制器5112根據(jù)最優(yōu)路徑計(jì)算器5113和流控制器5115的計(jì)算結(jié)果,通過折中策略為事務(wù)選擇一條最優(yōu)的邏輯路徑,并將結(jié)果返回給調(diào)度控制器411 ;若連接協(xié)調(diào)器5111檢查從源到目的地之間沒有可走的邏輯路徑,則路由控制器 5112進(jìn)一步調(diào)用錯(cuò)誤控制模塊5114,對(duì)邏輯路徑的錯(cuò)誤情況進(jìn)行恢復(fù),直至異常得到恢復(fù)或超時(shí);component管理器4收到調(diào)度控制器411返回的結(jié)果,鎖住執(zhí)行component請求所需的資源,并將component請求發(fā)送到事務(wù)管理器5 ;步驟213,事務(wù)管理器5根據(jù)operations創(chuàng)建全局事務(wù),并為每個(gè)全局事務(wù)創(chuàng)建多個(gè)事務(wù)分支,將事務(wù)分支發(fā)送到資源管理器6 ;步驟214,資源管理器6管理事務(wù)分支在資源上的執(zhí)行,包括確定事務(wù)分支執(zhí)行的先后順序,將事務(wù)分支的執(zhí)行結(jié)果發(fā)送到事務(wù)管理器5 ;步驟215,每個(gè)事務(wù)分支執(zhí)行完成后,都會(huì)更新資源控制器3中的資源狀態(tài);若用戶請求的是component,則component管理器4確定component全局事務(wù)的提交或回滾,并釋放鎖住的資源,過程結(jié)束;若用戶請求的是domain,一個(gè)domain全局事務(wù)由多個(gè) component全局事務(wù)組成,則component管理器4確定component全局事務(wù)的提交或回滾, 并釋放鎖住的資源,所有的component全局事務(wù)執(zhí)行完成后,則由域管理器2確定domain 全局事務(wù)的提交或回滾,并解鎖資源,過程結(jié)束;步驟216,等待直到有可用的資源,當(dāng)?shù)却臅r(shí)間超過了設(shè)定的時(shí)間界限,則結(jié)束事務(wù)的執(zhí)行,并返回“無可用資源,事務(wù)無法執(zhí)行”的結(jié)果;具體來說,若事務(wù)分支與虛機(jī)的狀態(tài)沖突,則該事務(wù)分支不能執(zhí)行,并將結(jié)果返回到component管理器4,component請求進(jìn)入等待狀態(tài),且component管理器4繼續(xù)申請資源直到超時(shí)退出。請參閱圖10,圖中示出了本發(fā)明的domain全局事務(wù)狀態(tài)過程。在本發(fā)明中,有 domain全局事務(wù)、component全局事務(wù)、事務(wù)分支三種級(jí)別的事務(wù),domain全局事務(wù)由多個(gè) component全局事務(wù)組成,component全局事務(wù)由多個(gè)事務(wù)分支組成。domain全局事務(wù)開始后,其狀態(tài)轉(zhuǎn)移過程如下步驟1001,domain全局事務(wù)進(jìn)入“pr印aring”狀態(tài);步驟1002,判斷該domain全局事務(wù)下的所有的component全局事務(wù)是否都準(zhǔn)備完成,如果準(zhǔn)備完成,則轉(zhuǎn)移到步驟1003,否則轉(zhuǎn)移到步驟1006 ;步驟1003,domain全局事務(wù)進(jìn)入“pr印ared”狀態(tài);步驟1004,判斷所有的component全局事務(wù)是否都commit (提交)了,若全部 commit 了,則轉(zhuǎn)入到步驟1005,若有一個(gè)component全局事務(wù)rollkick 了,則轉(zhuǎn)入到步驟 1006 ;步驟1005,domain全局事務(wù)進(jìn)入“committing”狀態(tài);步驟1006,domain 全局事務(wù)進(jìn)入 “rollkicking,,狀態(tài);步驟1007,判斷component全局事務(wù)是否提交失敗,當(dāng)一個(gè)component全局事務(wù)下的某個(gè)事務(wù)分支提交失敗,則component全局事務(wù)提交失??;若component全局事務(wù)提交失敗,則轉(zhuǎn)移到步驟1011,否則轉(zhuǎn)移到步驟1009 ;步驟1008,判斷component全局事務(wù)是否回滾失敗,當(dāng)一個(gè)component全局事務(wù)下的某個(gè)事務(wù)分支回滾失敗,則component全局事務(wù)回滾失??;若component全局事務(wù)回滾失敗,則轉(zhuǎn)入到步驟1011,否則轉(zhuǎn)入到步驟1010 ;步驟1009, domain全局事務(wù)進(jìn)入“committed”狀態(tài);步驟1010,domain全局事務(wù)進(jìn)入“rollbacked”狀態(tài);步驟1011,domain全局事務(wù)進(jìn)入“!^etalError”狀態(tài),一般而言,當(dāng)全局事務(wù)在提交或回滾階段出現(xiàn)致命的異常錯(cuò)誤時(shí),才會(huì)進(jìn)入此種狀態(tài)。請參閱圖11,圖中示出了本發(fā)明的component全局事務(wù)狀態(tài)過程。component全局事務(wù)是domain全局事務(wù)的事務(wù)分支,同時(shí)包括多個(gè)事務(wù)分支,是一般意義上的只有一層事務(wù)分支的全局事務(wù),下面簡稱全局事務(wù),其狀態(tài)的轉(zhuǎn)移主要由事務(wù)分支的狀態(tài)來決定。 component全局事務(wù)開始后,其狀態(tài)轉(zhuǎn)移過程如下步驟1101,全局事務(wù)進(jìn)入“pr印aring”狀態(tài);
步驟1102,判斷所有的事務(wù)分支是否都準(zhǔn)備完成,這里的準(zhǔn)備事務(wù)分支是指事務(wù)管理器將事務(wù)分支發(fā)送到資源管理器,事務(wù)分支在資源管理器中處理完成,并返回到事務(wù)管理器的過程;如果事務(wù)分支準(zhǔn)備完,則轉(zhuǎn)入到步驟1103,否則轉(zhuǎn)入到步驟1109 ;步驟1103,全局事務(wù)進(jìn)入“pr印ared”狀態(tài);步驟1104,判斷全局事務(wù)是否是寫事務(wù),寫事務(wù)會(huì)改變資源的狀態(tài);若是寫事務(wù), 則轉(zhuǎn)入到步驟1105,否則轉(zhuǎn)入到步驟1108(此種是讀事務(wù)的情況);步驟1105,判斷所有的事務(wù)分支是否都commit 了,若都commit 了,則轉(zhuǎn)入到步驟 1106,否則轉(zhuǎn)入到步驟1109 ;步驟1106,全局事務(wù)進(jìn)入“committing”狀態(tài);步驟1107,判斷事務(wù)分支是否提交失敗,若事務(wù)分支在提交時(shí)出現(xiàn)嚴(yán)重異常導(dǎo)致提交失敗,則轉(zhuǎn)入到步驟1111,否則轉(zhuǎn)入到步驟1108 ;步驟1108,全局事務(wù)進(jìn)入“committed”狀態(tài);步驟1109,全局事務(wù)進(jìn)入“rollkicking”狀態(tài);步驟1110,判斷事務(wù)分支回滾是否失敗,若回滾失敗,轉(zhuǎn)入到步驟1111,否則轉(zhuǎn)入到步驟1112 ;步驟1111,全局事務(wù)進(jìn)入"!^etalError ”狀態(tài);步驟1112,全局事務(wù)進(jìn)入“rollbacked,,狀態(tài);最后,全局事務(wù)結(jié)束,全局事務(wù)結(jié)束時(shí)可以是committecUrollbacked JetalError 三禾中狀態(tài),力口上committing、rollbacking、preparing^ prepared,在全局事務(wù)的生命周期中,共有七種狀態(tài)。只有最終的狀態(tài)為committed狀態(tài)時(shí),全局事務(wù)才是成功完成的。 domain全局事務(wù)和component全局事務(wù)狀態(tài)轉(zhuǎn)移生命周期存儲(chǔ)在事務(wù)管理器中,用以控制事務(wù)管理器中事件的處理,避免錯(cuò)誤和異常的出現(xiàn)。請參閱圖12,圖中描述了事務(wù)分支的狀態(tài)轉(zhuǎn)移過程,事務(wù)開支從開始到結(jié)束可能經(jīng)歷 preparing、prepared、rollbacking、rollbacked、committing、committed、Failed(失敗)、i^etalError八個(gè)狀態(tài)。若事務(wù)分支準(zhǔn)備成功,并執(zhí)行成功,則事務(wù)分支從開始到結(jié)束共經(jīng)歷pr印aring、pr印ared、committing、committed四個(gè)狀態(tài);若事務(wù)分支在準(zhǔn)備過程中就出現(xiàn)了異常,則事務(wù)分支從開始到結(jié)束共經(jīng)歷pr印aring、failed兩個(gè)狀態(tài);當(dāng)事務(wù)分支在提交或回滾過程中出現(xiàn)重大異常時(shí),會(huì)進(jìn)入i^talError狀態(tài),事務(wù)分支結(jié)束。資源管理器接收事務(wù)管理器發(fā)送過來的事務(wù)分支,開始準(zhǔn)備事務(wù)分支,具體過程如下步驟1201,事務(wù)分支進(jìn)入“pr印aring”狀態(tài);步驟1202,事務(wù)分支準(zhǔn)備完成,若準(zhǔn)備完成,則轉(zhuǎn)入到步驟1203,否則轉(zhuǎn)入到步驟 1204 ;步驟1203,事務(wù)分支進(jìn)入“pr印ared”狀態(tài);步驟1204,事務(wù)分支進(jìn)入“Failed”狀態(tài);步驟1205,判斷事務(wù)分支是否執(zhí)行成功,若執(zhí)行成功,則轉(zhuǎn)入到步驟1207,否則轉(zhuǎn)入到步驟1206 ;步驟1206,事務(wù)分支進(jìn)入“rolll^acking”狀態(tài);步驟1207,事務(wù)分支進(jìn)入“committing”狀態(tài);
26
步驟1208,判斷事務(wù)分支在commit過程中是否出現(xiàn)嚴(yán)重異常,若出現(xiàn)嚴(yán)重異常, 轉(zhuǎn)入到步驟1211,否則轉(zhuǎn)入到步驟1209 ;步驟1209,事務(wù)分支進(jìn)入“committed”狀態(tài);步驟1210,判斷事務(wù)分支在回滾階段是否出現(xiàn)嚴(yán)重異常,若出現(xiàn)嚴(yán)重異常,則轉(zhuǎn)入到步驟1211,否則轉(zhuǎn)入到步驟1212 ;步驟1211,事務(wù)分支進(jìn)入“!^italError ”狀態(tài);步驟1212,事務(wù)分支進(jìn)入“rol Ibacked”狀態(tài)。事務(wù)分支結(jié)束時(shí)的狀態(tài)可能是committed、rollbacked、FatalError中的一種,只有當(dāng)結(jié)束時(shí)的狀態(tài)時(shí)committed狀態(tài)時(shí),事務(wù)分支才成功完成。事務(wù)分支的狀態(tài)轉(zhuǎn)移生命周期是存儲(chǔ)在資源管理器中的,由資源管理器管理和維護(hù),為事務(wù)分支的處理提供保證。請參閱圖13,圖中示出了本發(fā)明的事務(wù)執(zhí)行流程圖,表述了從服務(wù)請求到達(dá) component管理器,到服務(wù)請求執(zhí)行完成的全過程,到達(dá)域管理器的執(zhí)行過程與這個(gè)相似, 就是多了從事務(wù)管理器轉(zhuǎn)入到component管理器的過程,以及資源的二次解鎖,一次是 component全局事務(wù)的解鎖,一次是域管理器的解鎖,具體流程如下步驟1301,component管理器收到請求以及執(zhí)行該請求所需要的資源信息;步驟1302,component管理器在資源控制器中查看資源狀態(tài);步驟1303,通過資源控制器中的信息判斷是否有可用的資源來運(yùn)行服務(wù)請求,若有可用的資源,則轉(zhuǎn)入到步驟1304,否則轉(zhuǎn)入到步驟1305 ;步驟1304,判斷該請求是寫操作還是讀操作,若是寫操作,則轉(zhuǎn)入到步驟1306,否則轉(zhuǎn)入到步驟1307 ;步驟1305,等待直到有可用的資源,當(dāng)?shù)却臅r(shí)間超過了設(shè)定的時(shí)間界限,則結(jié)束事務(wù)的執(zhí)行,返回?zé)o可用資源,事務(wù)無法執(zhí)行的結(jié)果;步驟1306,component管理器鎖住執(zhí)行所需的資源;步驟1307,component管理器將請求劃分為多個(gè)operations ;步驟1308,component管理器將operations發(fā)給事務(wù)管理器,并指示事務(wù)管理器開始;步驟1309,事務(wù)管理器根據(jù)接收到的operations創(chuàng)建全局事務(wù);步驟1310,事務(wù)管理器為每個(gè)全局事務(wù)創(chuàng)建事務(wù)分支;步驟1311,事務(wù)管理器將事務(wù)分支發(fā)給資源管理器服務(wù)器,并通知資源管理器服務(wù)器準(zhǔn)備和開始事務(wù)分支;步驟1312,事務(wù)分支引發(fā)HRML (主機(jī)資源管理層)的API來執(zhí)行特定的操作;步驟1313,HRML將資源更新的信息上報(bào)到資源控制器,資源控制器更新資源狀態(tài);步驟1314,分支事務(wù)執(zhí)行完成后,資源管理器發(fā)送結(jié)果到事務(wù)管理器;步驟1315,事務(wù)管理器通知資源管理器準(zhǔn)備事務(wù)分支的提交或回滾;步驟1316,判斷是否是寫操作,若是,轉(zhuǎn)入到步驟1318,否則轉(zhuǎn)入到步驟1317 ;步驟1317,事務(wù)執(zhí)行結(jié)束;步驟1318,全局事務(wù)完成后,事務(wù)管理器發(fā)送結(jié)果到域管理器;步驟1319,component管理器發(fā)送提交/回滾指示到事務(wù)管理器;
步驟1320,component管理器解鎖釋放資源;整個(gè)component全局事務(wù)運(yùn)行結(jié)束。以上結(jié)合附圖實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域中普通技術(shù)人員可根據(jù)上述說明對(duì)本發(fā)明做出種種變化例。因而,實(shí)施例中的某些細(xì)節(jié)不應(yīng)構(gòu)成對(duì)本發(fā)明的限定,本發(fā)明將以所附權(quán)利要求書界定的范圍作為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于事務(wù)的服務(wù)控制系統(tǒng),與外圍的服務(wù)工廠連接,并接收該服務(wù)工廠發(fā)出的服務(wù)請求,其特征在于,所述系統(tǒng)包括域管理器、component管理器、資源控制器、事務(wù)管理器和資源管理器;若所述服務(wù)工廠請求執(zhí)行業(yè)務(wù),則將請求發(fā)送到所述域管理器,若所述服務(wù)工廠請求操作虛機(jī),則將請求發(fā)送到所述component管理器所述域管理器分別與所述資源控制器和事務(wù)管理器相連,向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù);所述component管理器分別與所述資源控制器和事務(wù)管理器相連,向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù);所述資源控制器中存放資源的狀態(tài)及資源使用情況信息,根據(jù)所述域管理器或 component管理器發(fā)出的資源申請請求,返回可用的資源信息;所述事務(wù)管理器根據(jù)所述域管理器或component管理器發(fā)出的創(chuàng)建全局事務(wù)的指示, 創(chuàng)建全局事務(wù)及其事務(wù)分支;所述資源管理器的數(shù)量至少為一個(gè),它分別與所述事務(wù)管理器和資源控制器相連,接收所述事務(wù)管理器發(fā)送的事務(wù)分支,管理所述事務(wù)分支的執(zhí)行,并將更新的資源信息發(fā)送到所述資源控制器。
2.根據(jù)權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述域管理器用于管理域的生命周期,包括從域的創(chuàng)建到刪除,并將一個(gè)domain請求分解成多個(gè)component請求;所述component管理器用于管理組件的生命周期,包括從組件的創(chuàng)建到刪除,并將一個(gè)component請求分解成多個(gè)事務(wù)分支。
3.根據(jù)權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述資源控制器包括調(diào)度器、事務(wù)路由器、虛機(jī)狀態(tài)機(jī)和資源引用表,其中所述調(diào)度器與所述事務(wù)路由器相連,并根據(jù)所述虛機(jī)狀態(tài)機(jī)和資源引用表中的信息確定事務(wù)的調(diào)度,并將調(diào)度結(jié)果發(fā)送到所述事務(wù)路由器;所述事務(wù)路由器接收所述調(diào)度器發(fā)送的信息,并根據(jù)所述資源引用表中的信息做出路由決策。
4.根據(jù)權(quán)利要求3所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述資源控制器還與外圍的節(jié)點(diǎn)服務(wù)器連接,所述節(jié)點(diǎn)服務(wù)器的數(shù)量至少為一個(gè),且每個(gè)節(jié)點(diǎn)服務(wù)器包括虛機(jī) API 和 Monitor API,其中所述虛機(jī)API用于將虛機(jī)的最新信息傳送至所述虛機(jī)狀態(tài)機(jī);所述Monitor API用于將資源引用和資源使用情況的最新信息傳送至所述資源引用表。
5.根據(jù)權(quán)利要求3所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述調(diào)度器包括互連的事務(wù)執(zhí)行規(guī)劃模塊和執(zhí)行控制模塊,其中所述事務(wù)執(zhí)行規(guī)劃模塊用于規(guī)劃事務(wù)的調(diào)度,并將規(guī)劃的結(jié)果發(fā)送至所述執(zhí)行控制模塊;所述執(zhí)行控制模塊根據(jù)所述事務(wù)執(zhí)行規(guī)劃模塊輸出的規(guī)劃結(jié)果,確定執(zhí)行控制的策略。
6.根據(jù)權(quán)利要求5所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述事務(wù)執(zhí)行規(guī)劃模塊包括調(diào)度控制器以及與該調(diào)度控制器連接的負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊,且所述調(diào)度控制器用于調(diào)用負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊,并決定調(diào)度策略。
7.根據(jù)權(quán)利要求3所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述事務(wù)路由器包括互連的路由管理器和路由信息存儲(chǔ)器,其中所述路由管理器通過所述路由信息存儲(chǔ)器中的邏輯路由信息和策略確定事務(wù)的路由;所述路由信息存儲(chǔ)器根據(jù)所述資源引用表中的信息,存儲(chǔ)并向所述路由管理器提供邏輯路由信息。
8.根據(jù)權(quán)利要求7所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述路由管理器包括路由控制器以及分別與該路由控制器連接的連接協(xié)調(diào)器、最優(yōu)路徑計(jì)算器、流控制器和錯(cuò)誤控制模塊,其中所述路由控制器根據(jù)所述連接協(xié)調(diào)器、最優(yōu)路徑計(jì)算器和流控制器的運(yùn)作,確定事務(wù)的邏輯路由決策;所述連接協(xié)調(diào)器用于管理網(wǎng)絡(luò)的邏輯連接,包括確定所述邏輯連接是否異常; 所述最優(yōu)路徑計(jì)算器用于求解從源到目的地的花費(fèi)最小的邏輯路徑; 所述流控制器用于監(jiān)控所述每條邏輯路徑上的網(wǎng)絡(luò)流量。
9.根據(jù)權(quán)利要求7所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述路由信息存儲(chǔ)器存儲(chǔ)的邏輯路由信息包括邏輯路徑拓?fù)浔砀?、邏輯流狀態(tài)表格和事務(wù)狀態(tài)表格,其中所述邏輯路徑拓?fù)浔砀裼糜诖鎯?chǔ)網(wǎng)絡(luò)邏輯路徑拓?fù)湫畔ⅲ?所述邏輯流狀態(tài)表格用于存儲(chǔ)網(wǎng)絡(luò)流量狀態(tài)信息; 所述事務(wù)狀態(tài)表格用于存儲(chǔ)所述事務(wù)分支的狀態(tài)信息。
10.根據(jù)權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述事務(wù)管理器包括事務(wù)處理器和計(jì)時(shí)器,其中所述事務(wù)處理器用于處理全局事務(wù)、與所述全局事務(wù)相關(guān)的多個(gè)異步事件以及由所述全局事務(wù)分解出來的多個(gè)事務(wù)分支所產(chǎn)生的延遲工作;所述計(jì)時(shí)器用于對(duì)所述事務(wù)分支所產(chǎn)生的延遲工作進(jìn)行計(jì)時(shí),并設(shè)定一個(gè)閥值,以確定所述事務(wù)分支從發(fā)出到返回結(jié)果所用的時(shí)間是否超過閥值。
11.根據(jù)權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述資源管理器運(yùn)行在所述節(jié)點(diǎn)服務(wù)器上,且該資源管理器包括主機(jī)資源管理層以及分別與該主機(jī)資源管理層連接的資源管理器服務(wù)器和資源控制器客戶端,其中所述資源管理器服務(wù)器接收所述事務(wù)管理器發(fā)送的請求,并調(diào)用所述主機(jī)資源管理層;所述主機(jī)資源管理層接收所述資源管理器服務(wù)器發(fā)送的調(diào)用信號(hào),配置執(zhí)行所述事務(wù)分支所需的資源;所述資源控制器客戶端接收所述主機(jī)資源管理層返回的虛機(jī)狀態(tài)更新信息,并將更新的虛機(jī)狀態(tài)發(fā)送給所述資源控制器。
12.根據(jù)權(quán)利要求11所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述資源管理器服務(wù)器包括資源管理器代理、工作線程、請求隊(duì)列和事務(wù)分支隊(duì)列,其中所述資源管理器代理將所述事務(wù)管理器發(fā)送的并發(fā)性請求通過所述請求隊(duì)列傳至所述工作線程進(jìn)行處理,該工作線程將處理后的請求發(fā)送到所述事務(wù)分支隊(duì)列中,并處理所述事務(wù)分支以及維持事務(wù)分支的生命周期。
13.根據(jù)權(quán)利要求11所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述主機(jī)資源管理層包括管理控制中心以及分別與該管理控制中心連接的共享存儲(chǔ)器、Mac More、虛機(jī)實(shí)例和事件管理器,其中所述管理控制中心用于提供獲取主機(jī)資源的API,并注冊或注銷到所述資源控制器客戶端;所述共享存儲(chǔ)器為所述管理控制中心提供共享的存儲(chǔ)資源訪問接口;所述Mac Store用于管理mac地址;所述虛機(jī)實(shí)例提供API以使用外圍Iibvirt來操作虛機(jī),并提供API以得到該虛機(jī)的狀態(tài);所述事件管理器提供事件功能并將它們注冊到所述libvirt。
14.根據(jù)權(quán)利要求13所述的基于事務(wù)的服務(wù)控制系統(tǒng),其特征在于,所述管理控制中心包括虛機(jī)哈希表,且該虛機(jī)哈希表用于存儲(chǔ)所述虛機(jī)的生命周期。
15.一種如權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng)的服務(wù)控制方法,其特征在于, 該方法包括所述服務(wù)工廠向所述域管理器或component管理器發(fā)送服務(wù)請求;所述域管理器或component管理器向所述資源控制器申請資源,并指示所述事務(wù)管理器開始創(chuàng)建全局事務(wù)和事務(wù)分支;所述資源控制器判斷是否有可用的資源,以及執(zhí)行請求的最優(yōu)資源,并返回;所述事務(wù)管理器將所述事務(wù)分支發(fā)送至所述資源管理器;所述資源管理器管理所述事務(wù)分支的執(zhí)行,當(dāng)所述事務(wù)分支執(zhí)行完后,將執(zhí)行結(jié)果返回給所述事務(wù)管理器,并將資源信息更新到所述資源控制器。
16.根據(jù)權(quán)利要求15所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述月艮務(wù)i青求為domain i青求或component i青求;若所述服務(wù)請求是domain請求,則每個(gè)domain請求作為一個(gè)domain全局事務(wù),每個(gè) domain全局事務(wù)可分解成多個(gè)component全局事務(wù),每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支;若所述服務(wù)請求是component請求,則每個(gè)component請求作為一個(gè)component全局事務(wù),每個(gè)component全局事務(wù)可分解成多個(gè)事務(wù)分支。
17.根據(jù)權(quán)利要求16所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括當(dāng)所述domain請求到達(dá)所述域管理器后,該域管理器訪問所述資源控制器中的調(diào)度控制器;所述調(diào)度控制器到所述資源引用表中查看資源的引用信息及資源的使用情況,并判斷所述domain請求能否執(zhí)行。
18.根據(jù)權(quán)利要求17所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述資源引用表中顯示的資源可用,并滿足所述domain請求的執(zhí)行,則將可以執(zhí)行的結(jié)果返回到所述域管理器,且該域管理器鎖住執(zhí)行所需的資源。
19.根據(jù)權(quán)利要求17所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述資源引用表中顯示沒有可用的資源,則返回沒有資源不能執(zhí)行的結(jié)果到所述域管理器,所述domain請求進(jìn)入等待狀態(tài),且所述域管理器繼續(xù)申請資源直到超時(shí)退出。
20.根據(jù)權(quán)利要求18所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括所述域管理器將所述domain請求發(fā)送到所述事務(wù)管理器;所述事務(wù)管理器生成domain全局事務(wù),并將該domain全局事務(wù)分解成多個(gè)component 全局事務(wù)后發(fā)送到所述component管理器。
21.根據(jù)權(quán)利要求20所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括所述component管理器將所述component全局事務(wù)分解成多個(gè)事務(wù)分支,并訪問所述資源控制器中的調(diào)度控制器;所述調(diào)度控制器到所述虛機(jī)狀態(tài)機(jī)中查看虛機(jī)的狀態(tài),并根據(jù)虛機(jī)的狀態(tài),判斷所述事務(wù)分支是否在虛機(jī)上執(zhí)行。
22.根據(jù)權(quán)利要求21所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述事務(wù)分支與虛機(jī)的狀態(tài)不沖突,則所述調(diào)度控制器進(jìn)一步到所述資源引用表中查看資源的引用信息,并調(diào)用所述負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊。
23.根據(jù)權(quán)利要求21所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述事務(wù)分支與虛機(jī)的狀態(tài)沖突,則該事務(wù)分支不能執(zhí)行,并將結(jié)果返回到所述 component管理器,所述component請求進(jìn)入等待狀態(tài),且所述component管理器繼續(xù)申請資源直到超時(shí)退出。
24.根據(jù)權(quán)利要求22所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括所述負(fù)載計(jì)算器根據(jù)所述每個(gè)節(jié)點(diǎn)服務(wù)器上的資源使用情況,采用統(tǒng)一的算法計(jì)算和評(píng)估每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載;所述花費(fèi)評(píng)估模塊根據(jù)所述每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載以及節(jié)點(diǎn)服務(wù)器在較短的時(shí)間內(nèi)承受負(fù)載的能力,計(jì)算所述每個(gè)節(jié)點(diǎn)服務(wù)器上的負(fù)載執(zhí)行情況,以及釋放資源所需的時(shí)間;所述調(diào)度控制器根據(jù)所述負(fù)載計(jì)算器和花費(fèi)評(píng)估模塊輸出的結(jié)果,確定將所述事務(wù)分支調(diào)度到哪個(gè)節(jié)點(diǎn)服務(wù)器上執(zhí)行。
25.根據(jù)權(quán)利要求M所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括所述調(diào)度控制器將調(diào)度結(jié)果發(fā)送到所述事務(wù)路由器中的路由控制器;所述路由控制器調(diào)用所述連接協(xié)調(diào)器,該連接協(xié)調(diào)器檢查從源到目的地之間的邏輯路徑。
26.根據(jù)權(quán)利要求25所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述連接協(xié)調(diào)器檢查從源到目的地之間有可走的邏輯路徑,則所述路由控制器進(jìn)一步調(diào)用所述最優(yōu)路徑計(jì)算器和流控制器;所述最優(yōu)路徑計(jì)算器根據(jù)所述邏輯路徑拓?fù)浔砀裰械男畔?,?jì)算每條邏輯路徑的花費(fèi);所述流控制器根據(jù)所述邏輯流狀態(tài)表格中的信息,計(jì)算每條邏輯路徑的網(wǎng)絡(luò)流量; 所述路由控制器根據(jù)所述最優(yōu)路徑計(jì)算器和流控制器的計(jì)算結(jié)果,通過折中策略為事務(wù)選擇一條最優(yōu)的邏輯路徑。
27.根據(jù)權(quán)利要求25所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括若所述連接協(xié)調(diào)器檢查從源到目的地之間沒有可走的邏輯路徑,則所述路由控制器進(jìn)一步調(diào)用所述錯(cuò)誤控制模塊,對(duì)邏輯路徑的錯(cuò)誤情況進(jìn)行恢復(fù),直至異常得到恢復(fù)或超時(shí)。
28.根據(jù)權(quán)利要求25所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括所述component管理器收到所述調(diào)度控制器返回的結(jié)果,鎖住執(zhí)行所述component請求所需的資源,并將component請求發(fā)送到所述事務(wù)管理器。
29.根據(jù)權(quán)利要求觀所述的基于事務(wù)的服務(wù)控制方法,其特征在于,所述方法進(jìn)一步包括當(dāng)所述一個(gè)component全局事務(wù)完成后,所述事務(wù)管理器將結(jié)果返回到所述 component管理器,該component管理器指示component全局事務(wù)的提交或回滾后,釋放鎖住的資源,并將結(jié)果發(fā)送到所述事務(wù)管理器;當(dāng)所述一個(gè)domain全局事務(wù)完成后,所述事務(wù)管理器將結(jié)果返回到所述域管理器,該域管理器指示domain全局事務(wù)的提交或回滾后,釋放鎖住的資源。
30.一種如權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng)的包含多個(gè)異步事件的全局事務(wù)處理方法,所述服務(wù)控制系統(tǒng)中的事務(wù)管理器還包括AP代理、全局事務(wù)隊(duì)列、全局事務(wù)等待隊(duì)列、事件等待隊(duì)列、RPC客戶端和延時(shí)的工作隊(duì)列,其特征在于,所述方法包括所述AP代理將所述服務(wù)請求作為全局事務(wù)送至所述全局事務(wù)隊(duì)列中,以備所述事務(wù)處理器處理,同時(shí)生成開始事務(wù)事件,并使該開始事務(wù)事件進(jìn)入所述事件等待隊(duì)列中;所述事務(wù)處理器開始處理全局事務(wù),并將開始處理的全局事務(wù)送至所述全局事務(wù)等待隊(duì)列中;所述事務(wù)處理器將全局事務(wù)分解成多個(gè)事務(wù)分支后發(fā)送至所述RPC客戶端,并為該事務(wù)分支生成延時(shí)的工作后送至所述延時(shí)的工作隊(duì)列;所述計(jì)時(shí)器對(duì)所述延時(shí)的工作計(jì)時(shí),等待該延時(shí)的工作所對(duì)應(yīng)的事務(wù)分支的返回結(jié)果。
31.根據(jù)權(quán)利要求30所述的包含多個(gè)異步事件的全局事務(wù)處理方法,其特征在于,所述方法進(jìn)一步包括若所述事務(wù)分支在所述資源管理器中執(zhí)行后返回執(zhí)行結(jié)果到所述事務(wù)管理器的時(shí)間在所述計(jì)時(shí)器的閥值內(nèi),則該事務(wù)分支將執(zhí)行結(jié)果返回到所述事務(wù)管理器,與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從所述延時(shí)的工作隊(duì)列中刪除,并通過所述RPC客戶端回調(diào)所述事務(wù)分支的執(zhí)行結(jié)果,以及回調(diào)事件進(jìn)入所述事件等待隊(duì)列中。
32.根據(jù)權(quán)利要求30所述的包含多個(gè)異步事件的全局事務(wù)處理方法,其特征在于,所述方法進(jìn)一步包括若所述事務(wù)分支在所述資源管理器中執(zhí)行后返回執(zhí)行結(jié)果到所述事務(wù)管理器的時(shí)間超過所述計(jì)時(shí)器的閥值,則該計(jì)時(shí)器返回事件timeout到所述事件等待隊(duì)列中,且與該事務(wù)分支相對(duì)應(yīng)的延時(shí)的工作從所述延時(shí)的工作隊(duì)列中刪除。
33.根據(jù)權(quán)利要求30所述的包含多個(gè)異步事件的全局事務(wù)處理方法,其特征在于, 所述事件等待隊(duì)列中存放的事件類型包括全局事務(wù)相關(guān)的事件和事務(wù)分支相關(guān)的事件,且所述不同的事件具有不同的優(yōu)先級(jí)。
34.根據(jù)權(quán)利要求30所述的包含多個(gè)異步事件的全局事務(wù)處理方法,其特征在于,所述方法進(jìn)一步包括所述事務(wù)處理器對(duì)所述全局事務(wù)隊(duì)列、事件等待隊(duì)列和延時(shí)的工作隊(duì)列中的每個(gè)組成元素上鎖;所述事務(wù)處理器維持所述全局事務(wù)的生命狀態(tài)周期。
35.根據(jù)權(quán)利要求34所述的包含多個(gè)異步事件的全局事務(wù)處理方法,其特征在于, 所述全局事務(wù)的生命狀態(tài)周期中包括七種狀態(tài),分別是committed、rollbacked,FetalErrorλ committing、rollbacking、preparing 禾口 prepared ; 所述事務(wù)處理器以所述全局事務(wù)的狀態(tài)為依據(jù),控制事件的執(zhí)行。
36.一種如權(quán)利要求1所述的基于事務(wù)的服務(wù)控制系統(tǒng)的處理虛機(jī)事務(wù)的主機(jī)資源管理方法,其特征在于,所述方法包括將所述事務(wù)分支隊(duì)列中創(chuàng)建虛機(jī)的請求的事務(wù)分支發(fā)送到所述管理控制中心; 所述管理控制中心將查詢虛機(jī)模板的請求發(fā)送到所述共享存儲(chǔ)器,且該共享存儲(chǔ)器返回虛機(jī)模板的URL到所述管理控制中心;所述管理控制中心根據(jù)返回的虛機(jī)模板的URL,到所述Mac Store中獲取虛機(jī)模板的 mac地址信息;所述管理控制中心發(fā)送創(chuàng)建虛機(jī)的指令到所述libvirt,且該Iibvirt返回創(chuàng)建好的虛機(jī);所述管理控制中心將虛機(jī)鏡像的內(nèi)容發(fā)送到所述共享存儲(chǔ)器,以確認(rèn)是否創(chuàng)建完成虛機(jī)鏡像;若所述虛機(jī)鏡像創(chuàng)建完成,則所述管理控制中心返回完成指令到所述資源管理器。
全文摘要
本發(fā)明涉及一種基于事務(wù)的服務(wù)控制系統(tǒng)及其控制方法,其中,控制系統(tǒng)與外圍的服務(wù)工廠連接,并接收該服務(wù)工廠發(fā)出的服務(wù)請求,所述系統(tǒng)包括域管理器、component管理器、資源控制器、事務(wù)管理器和資源管理器;若所述服務(wù)工廠請求執(zhí)行業(yè)務(wù),則將請求發(fā)送到所述域管理器,若所述服務(wù)工廠請求操作虛機(jī),則將請求發(fā)送到所述component管理器。本發(fā)明通過分布式事務(wù)處理,結(jié)合狀態(tài)機(jī)機(jī)制,以及資源調(diào)度和事務(wù)路由策略,控制服務(wù)請求從開始到執(zhí)行結(jié)束的全過程的狀態(tài),并及時(shí)響應(yīng)給用戶,同時(shí)監(jiān)控資源狀態(tài)信息,消除并發(fā)性處理的資源沖突,使服務(wù)請求可以經(jīng)過最優(yōu)的路徑到達(dá)負(fù)荷最小的節(jié)點(diǎn),從而有效地保證了服務(wù)質(zhì)量。
文檔編號(hào)G05B19/418GK102346460SQ20111014164
公開日2012年2月8日 申請日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者湯傳斌, 熊麗 申請人:運(yùn)軟網(wǎng)絡(luò)科技(上海)有限公司