專利名稱::一種實現(xiàn)高可用性的方法、系統(tǒng)及設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明屬于計算機領(lǐng)域,尤其涉及一種實現(xiàn)高可用性的方法、系統(tǒng)及設(shè)備。
背景技術(shù):
:隨著計算機技術(shù)的不斷發(fā)展,軟件系統(tǒng)所服務(wù)的用戶規(guī)模越來越大,企業(yè)的經(jīng)營活動對軟件系統(tǒng)的可用性要求也越來越高??捎眯允侵赶到y(tǒng)在任一隨機時刻需要和開始執(zhí)行任務(wù)時,處于可工作或者可使用狀態(tài)的程度,可靠性和可維護性共同決定了可用性。其中可靠性用平均無故障時間(一個設(shè)備可以連續(xù)運行而不出現(xiàn)故障的時間)來度量??删S護性用系統(tǒng)出現(xiàn)故障后恢復(fù)正常狀態(tài)所需的時間來度量?,F(xiàn)有的雙機熱備、集群等技術(shù)均是為實現(xiàn)高可用性而發(fā)展起來的成熟技術(shù)。其中雙機熱備技術(shù)是通過物理服務(wù)器的冗余來實現(xiàn)高可用性的,簡述如下設(shè)置至少兩臺物理服務(wù)器,其中一臺物理服務(wù)器處于活動狀態(tài)(稱為主機),另外一臺物理服務(wù)器處于非活動狀態(tài)(稱為備機),當主機發(fā)生故障時,備機在較短的時間內(nèi)啟動應(yīng)用軟件并接管主機的服務(wù)。這種通過物理服務(wù)器的冗余來實現(xiàn)高可用性的方法難以滿足單臺物理服務(wù)器環(huán)境下的高可用性需求,且增力口了成本。請參閱圖1,是現(xiàn)有的集群技術(shù)實現(xiàn)高可用性的示意圖。通過在后端設(shè)置多臺運行服務(wù)程序的主機組成一服務(wù)器集群(ServerCluster),該服務(wù)器集群可以橫向擴展。負載均衡器(LoadBalancer)接收客戶端的服務(wù)請求,并根據(jù)一定的均衡算法將接收的服務(wù)請求轉(zhuǎn)發(fā)或者路由到后端的服務(wù)器集群中的某個服務(wù)器實例處理。當負載均衡器檢測到后端的服務(wù)器實例失效時,將該服務(wù)器實例從服務(wù)器列表中刪除,直到失效的服務(wù)器恢復(fù)。負載均^f器則通過備份的主機來保證高可用性,當一臺主機失效后,備用主機通常以一種對客戶端透明的方式自動接管主機的職責。集群技術(shù)也是通過物理服務(wù)器的冗余來實現(xiàn)高可用性的,從而難以滿足單服務(wù)器環(huán)境下的高可用性需求,且增加了成本。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種實現(xiàn)高可用性的方法,旨在解決現(xiàn)有的實現(xiàn)高可用性的方法成本較高、難以滿足單服務(wù)器環(huán)境下的高可用性需求的問題。本發(fā)明是這樣實現(xiàn)的,一種實現(xiàn)高可用性的方法,所述方法包括下述步驟在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程;-險測所述活動進程的狀態(tài);當所述活動進程的狀態(tài)處于停止狀態(tài)時,所述熱備進程開始為消費者提供服務(wù)。本發(fā)明的另一目的在于提供一種實現(xiàn)高可用性的系統(tǒng),所述系統(tǒng)包括進程啟動單元,用于在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程,所述熱備進程在所述活動進程處于停止狀態(tài)時,為消費者提供服務(wù);代理進程啟動單元,用于啟動一用于檢測所述活動進程的狀態(tài)的代理進程。本發(fā)明的另一目的在于提供一種包括所述實現(xiàn)高可用性的系統(tǒng)的實現(xiàn)高可用性的設(shè)備。在本發(fā)明實施例中,通過在啟動活動進程的同時啟動熱備進程,從而當活動進程發(fā)生故障時,可以及時的將服務(wù)請求轉(zhuǎn)至熱備進程,由熱備進程提供服務(wù),從而減少了故障恢復(fù)時間,提高了系統(tǒng)整體的可用性。同時本發(fā)明實施例可以滿足單服務(wù)器和多服務(wù)器環(huán)境下的高可用性需求。圖l是現(xiàn)有技術(shù)提供的采用集群技術(shù)實現(xiàn)高可用性的結(jié)構(gòu)示意圖;圖2是本發(fā)明實施例提供的實現(xiàn)高可用性的方法的實現(xiàn)流程圖;圖3是本發(fā)明實施例提供的實現(xiàn)高可用性的基本原理圖;圖4是本發(fā)明另一實施例提供的實現(xiàn)高可用性的原理圖;圖5是本發(fā)明實施例提供的活動進程停止時實現(xiàn)高可用性的示意圖;圖6是本發(fā)明另一實施例提供的實現(xiàn)高可用性的原理圖;圖7是本發(fā)明另一實施例提供的活動進程停止時實現(xiàn)高可用性的示意圖;圖8是本發(fā)明另一實施例提供的實現(xiàn)高可用性的原理圖;圖9是本發(fā)明另一實施例提供的實現(xiàn)高可用性的原理圖;圖10、11、12是本發(fā)明實施例提供的實現(xiàn)高可用性的方法在EAS系統(tǒng)中的應(yīng)用示意圖13是本發(fā)明實施例提供的實現(xiàn)高可用性的系統(tǒng)的結(jié)構(gòu)示意圖。具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一歩詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,在啟動一活動進程處理服務(wù)請求的同時,啟動一熱備分硬件資源,在檢測到活動進程停止時,將活動進程未處理的服務(wù)請求以及后續(xù)的服務(wù)請求轉(zhuǎn)至熱備進程處理,從而實現(xiàn)系統(tǒng)的高可用性。在本發(fā)明實施例中,活動進程是指正在為消費者提供服務(wù)的進程。熱備進程是指能夠提供活動進程所能提供的全部或者部分服務(wù),但卻處于不提供服務(wù)的待命狀態(tài)或者處于等待某些關(guān)鍵資源釋放的阻塞狀態(tài)的進程。當?shù)却馁Y源被釋放后,可以在短時間內(nèi)獲得這些資源并進入待命狀態(tài)。其中消費者是指任何需要得到活動進程服務(wù)的軟件或者設(shè)備。服務(wù)是指接收來自進程外部的消息并返回響應(yīng)消息的4亍為。圖2示出了本發(fā)明實施例損_供的實現(xiàn)高可用性的方法的實現(xiàn)流程,詳述如下在步驟S201中,在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程。在本發(fā)明實施例中,啟動活動進程和啟動熱備進程的方式可以釆用現(xiàn)有技術(shù)提供的任意一種進程啟動方式。請參閱圖3,是本發(fā)明實施例提供的實現(xiàn)高可用性的基本原理圖,在啟動一活動進程為消費者提供服務(wù)的同時,啟動一熱備進程,且熱備進程和活動進程的運行環(huán)境為熱備進程可以通過直接或者間接的方式使用活動進程運行期間所使用的全部或者部分石更件資源,如CPU計算資源等。其中熱備進程和活動進程的運行環(huán)境具體可以如下熱備進程和活動進程運行在同一個操作系統(tǒng)中,從而使熱備進程可以直接使用活動進程運行期間所使用的全部或者部分CPU計算資源等硬件資源。熱備進程和活動進程的運行環(huán)境也可以如下所述采用虛擬化技術(shù)將一臺物理服務(wù)器虛擬成多臺邏輯服務(wù)器,并為每臺邏輯服務(wù)器分配對應(yīng)的硬件資源,每臺虛擬的邏輯服務(wù)器上均可以安裝并運行操作系統(tǒng),從而每臺虛擬的邏輯服務(wù)器上可以安裝并運行應(yīng)用軟件,同時在為消費者提供服務(wù)的過程中,可以通過虛擬化技術(shù)任意的對分S己給每臺邏輯服務(wù)器的硬件資源進行重新分配。請參閱圖4,是本發(fā)明另一實施例提供的實現(xiàn)高可用性的原理圖。虛擬層采用虛擬化技術(shù)將一臺物理服務(wù)器虛擬成兩臺邏輯服務(wù)器,并為第一邏輯服務(wù)器分配9/10的CPU計算資源等硬件資源,為第二邏輯服務(wù)器分配1/10的CPU計算資源等硬件資源。通過在第一邏輯服務(wù)器中安裝第一操作系統(tǒng),在第二邏輯服務(wù)器中安裝第二操作系統(tǒng),從而可以在第一操作系統(tǒng)中啟動一為消費者提供服務(wù)的活動進程時,在第二操作系統(tǒng)中啟動一熱備進程,且在^消費者提供服務(wù)的過程中,在某種條件的觸發(fā)下,如第一操作系統(tǒng)中的活動進程發(fā)生故障時,虛擬層可以采用虛擬化技術(shù)將一臺物理服務(wù)器的CPU計算資源等硬件資源重新分配給虛擬的第一邏輯服務(wù)器和第二邏輯服務(wù)器,如將1/10的CPU計算資源等硬件資源分配給第一邏輯服務(wù)器,將9/10的CPU計算資源等硬件資源分配給第二邏輯服務(wù)器,其效果如圖5所示。從而使熱備進程可以直接使用活動進程運行期間所使用的全部或者部分CPU計算資源等硬件資源。熱備進程和活動進程的運行環(huán)境還可以如下所述可以通過運行熱備進程的服務(wù)器與運行活動進程的服務(wù)器相互交換硬件資源,來達到熱備進程間接的使用活動進程運行期間使用過的硬件資源。其中運行熱備進程的服務(wù)器和運行活動進程的服務(wù)器可以是兩臺物理服務(wù)器,也可以是通過虛擬化技術(shù)虛擬出的邏輯服務(wù)器。請參閱圖6,在第一服務(wù)器中運行一活動進程和一熱備進程,并在第二服務(wù)器中也運行一活動進程和一熱備進程,第一服務(wù)器中的活動進程對應(yīng)第二服務(wù)器中的熱備進程,第二服務(wù)器中的活動進程對應(yīng)第一服務(wù)器中的熱備進程,當?shù)谝环?wù)器中的活動進程停止時,第二服務(wù)器中的活動進程也同時停止,此時,第二服務(wù)器中的熱備進程使用第二服務(wù)器中的活動進程使用過的硬件資源,同時第一服務(wù)器中的熱備進程使用第一服務(wù)器中的活動進程使用過的硬件資源,兩個服務(wù)器通過相互交互硬件資源,從而使熱備進程可以間接使用活動進程使用過的硬件資源。在步驟S202中,4企測活動進程的狀態(tài),當活動進程的狀態(tài)處于停止狀態(tài)時,則執(zhí)行步驟S203,否則繼續(xù)檢測活動進程的狀態(tài)。當活動進程或者活動進程所依賴的運行環(huán)境發(fā)生了故障時,需要停止該活動進程,此時,活動進程的狀態(tài)即為停止狀態(tài);當基于維護的原因,需要停止活動進程時,活動進程的狀態(tài)即為停止狀態(tài),當然導(dǎo)致活動進程的狀態(tài)為停止狀態(tài)的原因還可以是現(xiàn)有技術(shù)中的其他原因,在此不——例舉。檢測活動進程的狀態(tài)的方法可以是消費者主動的檢測活動進程的狀態(tài),也可以是消費者被動的檢測活動進程的狀態(tài)。消費者可以通過向活動進程發(fā)送服務(wù)請求,并在預(yù)設(shè)的時間內(nèi)未收到活動進程的響應(yīng)消息時,則主動認為活動進8程處于停止狀態(tài)?;蛘咄ㄟ^其他管理進程;險測活動進程的狀態(tài),當發(fā)現(xiàn)活動進程處于停止狀態(tài)時,通知消費者,使消費者被動;f企測到活動進程處于停止狀態(tài)。在步驟S203中,熱備進程開始為消費者提供服務(wù)。請參閱圖7,當消費者主動檢測到活動進程處于停止狀態(tài),或者消費者被動監(jiān)測到活動進程處于停止狀態(tài)時,消費者將未完成的服務(wù)請求以及后續(xù)的服務(wù)請求轉(zhuǎn)至熱備進程,熱備進程接收并處理消費者的服務(wù)請求,開始為消費者提供服務(wù)。其中消費者可以通過如下方式將未完成的服務(wù)請求以及后續(xù)的服務(wù)請求轉(zhuǎn)至熱備進程消費者通過配置文件得到熱備進程的服務(wù)端口,然后與其建立通訊,后續(xù)的服務(wù)請求都通過這個通訊管道交由熱備進程完成。如果要重新執(zhí)行未完成的服務(wù)請求,消費者需要事先記錄未完成的服務(wù)請求,在活動進程停止后,將其交由熱備進程重新執(zhí)行。由于熱備進程開始為消費者提供服務(wù),因此熱備進程轉(zhuǎn)化成活動進程,此時,為了進一步保證軟件系統(tǒng)的可用性,在本發(fā)明另一實施例中,該方法還包括下述步驟在步驟S204中,重新啟動一熱備進程,該熱備進程和當前活動進程的運行用的全部或者部分vf更件資源,如CPU計算資源等。當活動進程處于停止狀態(tài)時,為了簡化可用性的實現(xiàn)方法,在本發(fā)明另一實施例中,該方法還包括下述步驟啟動一用于接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者的代理進程,其效果如圖8所示。在本發(fā)明另一實施例中,該代理進程還用于^r測活動進程的狀態(tài),并在才企測到活動進程的狀態(tài)為停止狀態(tài)時,將接收的服務(wù)請求轉(zhuǎn)發(fā)至熱備進程,使熱備進程轉(zhuǎn)化為活動進程。為了避免由于代理進程發(fā)生故障而降低軟件系統(tǒng)的可用性,在本發(fā)明另一實施例中,該方法還包括下述步驟在啟動一代理進程的同時,啟動一熱備代理進程。其效果如圖9所示。檢測代理進程的狀態(tài),當代理進程的狀態(tài)處于停止狀態(tài)時,熱備代理進程接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程。此時熱備代理進程轉(zhuǎn)化成代理進程,為了進一步保證軟件系統(tǒng)的可用性,在本發(fā)明另一實施例中,該方法還包括下述步驟重新啟動一熱備代理進程。以下以企業(yè)應(yīng)用套件(EnterpriseApplicationSuite,EAS)為例,對本發(fā)明實施例提供的實現(xiàn)高可用性的方法進行詳細的說明,其中EAS是一套基于J2EE技術(shù)的企業(yè)管理軟件,采用TCP/IP協(xié)議作為通訊協(xié)議。請參閱圖10,其中EAS客戶機相當于消費者,其安裝有EAS客戶端程序。EAS客戶機接收業(yè)務(wù)操作人員的指令,并將其轉(zhuǎn)換成服務(wù)請求,發(fā)送給EAS應(yīng)用服務(wù)器,并將EAS應(yīng)用服務(wù)器返回的結(jié)果通過某種方式展現(xiàn)出來。EAS客戶機和EAS應(yīng)用服務(wù)器之間通過HTTP協(xié)議以及RPC協(xié)議進行通信。其中RPC協(xié)議是一種基于TCP協(xié)議的自定義協(xié)議。集群控制器(ClusterController,CC)相當于代理進程,其接收EAS客戶機的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)給后端的某個EAS服務(wù)器節(jié)點(相當于活動進程)處理,同時將EAS服務(wù)器節(jié)點返回的結(jié)果返回給EAS客戶機。集群控制器通過兩個監(jiān)聽端口,一個HTTP端口(如80)和一個TCP端口(如11034),與EAS客戶機進行通訊。集群控制器通過配置文件得知后端的EAS服務(wù)器節(jié)點及熱備EAS服務(wù)器節(jié)點的監(jiān)聽端口信息,以便將客戶端的服務(wù)請求通過正確的端口和后端的EAS服務(wù)器節(jié)點通訊。同時集群控制器檢測EAS服務(wù)器節(jié)點的狀態(tài),當EAS服務(wù)器節(jié)點處于停止狀態(tài)(如進程消失等)時,通知EAS進程管理器重啟發(fā)生故障的EAS服務(wù)器節(jié)點,并將后續(xù)的服務(wù)請求轉(zhuǎn)給熱備EAS服務(wù)器節(jié)點(相當于熱備進程)處理,此時,熱備EAS服務(wù)器節(jié)點就轉(zhuǎn)化成了活動的EAS服務(wù)器節(jié)點(相當于活動進程)。熱備集群控制器相當于熱備進程。為了實現(xiàn)對EAS客戶端的透明,熱備集群控制器和集群控制器監(jiān)聽同樣的兩個端口,一個HTTP端口(如80)和一個TCP端口(如11034)。但由于TCP協(xié)議本身的約束,熱備集群控制器不可能和集群控制器同時監(jiān)聽一樣的端口。此時,熱備集群控制器建立一個到集群控制器的TCP連接(11034端口),稱之為心跳連接,并定期發(fā)送檢測數(shù)據(jù)以確定集群控制器仍然存活。一,測到集群控制器已經(jīng)無法工作,熱備集群控制器通知EAS進程管理器停止集群控制器,并立即開始監(jiān)聽80和11034端口,此時,熱備集群控制器的狀態(tài)從阻塞狀態(tài)(等待80和11034端口釋放)變?yōu)榫途w狀態(tài),進而轉(zhuǎn)化為活動狀態(tài)。EAS服務(wù)器節(jié)點相當于活動進程,其通過兩個監(jiān)聽端口(假定端口號為81和11035)接收并處理來自消費者(消費者為集群控制器或者EAS客戶機)的服務(wù)請求,并將結(jié)果返回給消費者。在EAS服務(wù)器節(jié)點中,維護有一個健康度指標,用于表示該EAS服務(wù)器節(jié)點的健康狀態(tài),集群控制器定期獲取EAS服務(wù)器節(jié)點的健康狀態(tài),如果發(fā)現(xiàn)健康狀態(tài)惡化,集群控制器將通知EAS進程管理器重啟EAS服務(wù)器節(jié)點。熱備EAS服務(wù)器節(jié)點相當于熱備進程,熱備EAS服務(wù)器節(jié)點監(jiān)聽兩個和EAS服務(wù)器節(jié)點不一樣的端口(假定端口號為82和11036),監(jiān)聽不同端口的目的是讓熱備EAS服務(wù)器節(jié)點處于可立即提供服務(wù)的就緒狀態(tài),而EAS客戶機并不需要知道這兩個端口號。EAS進程管理器接收來自集群控制器或者熱備集群控制器的指令,停止或者啟動集群控制器、熱備集群控制器、EAS服務(wù)器節(jié)點、熱備EAS服務(wù)器節(jié)點。當EAS進程管理器檢測到兩個集群控制器都消失的時候,會主動重新啟動一個集群控制器實例。以下詳細說明采用本發(fā)明實施例提供的實現(xiàn)高可用性的方法在EAS中的應(yīng)用。在本示例中,在啟動集群控制器時,啟動熱備集群控制器,并在啟動EAS服務(wù)器節(jié)點時,啟動熱備EAS服務(wù)器節(jié)點。請參閱圖ll,當EAS服務(wù)器節(jié)點發(fā)生故障時,采用本發(fā)明實施例提供的實現(xiàn)高可用性的方法如下所述①、EAS服務(wù)器節(jié)點發(fā)生故障。其中發(fā)生故障的原因可能是進程消失或者健康狀態(tài)惡化,如果由于EAS服務(wù)器節(jié)點健康狀態(tài)惡化而導(dǎo)致EAS服務(wù)器節(jié)點發(fā)生故障,則集群控制器通知EAS進程管理器停止此進程。②、集群控制器檢測到EAS服務(wù)器節(jié)點發(fā)生故障時,中斷與EAS客戶機連接,以使EAS客戶機檢測到發(fā)生了故障。③集群控制器通知EAS進程管理器重啟發(fā)生故障的EAS服務(wù)器節(jié)點。發(fā)生故障的EAS服務(wù)器節(jié)點重啟后,自動成為熱備EAS服務(wù)器節(jié)點。④、EAS客戶機檢測到其與集群控制器之間的通訊被中斷。其檢測方式可以是集群服務(wù)器中斷與EAS客戶機之間的通訊時,通過通訊協(xié)議實現(xiàn)機制通知EAS客戶端,從而EAS客戶機檢測到其與集群控制器之間的通訊被中斷,也可以是客戶端提交服務(wù)請求時,檢測到已經(jīng)無法與集群控制器進行通訊,從而檢測到其與集群服務(wù)器之間的通訊被中斷。、EAS客戶機重新連接應(yīng)用服務(wù)器并認證。在EAS客戶機重新連接服務(wù)器時,包括認證、狀態(tài)信息重建等操作,如果有被中斷的服務(wù)請求,則重新提交被中斷的服務(wù)請求。、集群控制器將EAS客戶機的連接轉(zhuǎn)向熱備EAS服務(wù)器節(jié)點,并將后續(xù)的所有服務(wù)請求轉(zhuǎn)移到熱備EAS服務(wù)器節(jié)點處理。請參閱圖12,當集群控制器發(fā)生故障時,采用本發(fā)明實施例提供的實現(xiàn)高可用性的方法如下所述①、集群控制器發(fā)生故障。故障的原因可能是進程消失或者集群控制器的健康狀態(tài)惡化,當集群控制器的健康狀態(tài)惡化時,熱備集群控制器通知EAS進程管理器停止此進程。②、EAS客戶積4企測到故障。EAS客戶機檢測到故障的方式可以是通訊協(xié)議實現(xiàn)機制通知客戶機程序連接已經(jīng)中斷,也可以是客戶端嘗試提交服務(wù)請求時,發(fā)現(xiàn)已經(jīng)無法通訊。③、熱備集群控制器檢測到故障,立即開始監(jiān)聽集群控制器監(jiān)聽的端口(如80端口和11034端口),此時熱備集群控制器成為活動進程。④、熱備集群控制器通知EAS進程管理器重啟一個新的集群控制器實例。⑤、新的集群控制器實例建立心跳連接,進入熱備狀態(tài),此時,新啟動的集群控制器實例則變?yōu)闊醾浼嚎刂破?。、EAS客戶機嘗試重新連接并自動轉(zhuǎn)到熱備集群控制器。由于熱備控制器接管了集群控制器的相應(yīng)端口,所以后續(xù)服務(wù)請求都由熱備集群控制器處理。使用本發(fā)明實施例提供的實現(xiàn)高可用性的方法后,在單臺應(yīng)用服務(wù)器場景下,EAS可用性的提升程度如下表所示<table>tableseeoriginaldocumentpage13</column></row><table>其中單服務(wù)器集群可用性比率是在假定單節(jié)點所具備的可用性基礎(chǔ)上通過理論計算所得。未考慮人為錯誤、病毒、硬件故障、自然災(zāi)害等因素的影響。單節(jié)點模式需要人工干預(yù),所以故障恢復(fù)時間還要包括人工消耗。而高可用集群模式下,故障是自動檢測和恢復(fù)的,故障恢復(fù)時間=程序啟動時間。圖13示出了本發(fā)明實施例提供的實現(xiàn)高可用性的系統(tǒng)的結(jié)構(gòu)示意,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該實現(xiàn)高可用性的系統(tǒng)可以是內(nèi)置于實現(xiàn)高可用性的設(shè)備中的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨立的掛件集成到實現(xiàn)高可用性的設(shè)備中或者運行于實現(xiàn)高可用性的設(shè)備的應(yīng)用系統(tǒng)中,其中進程啟動單元131啟動一為消費者提供服務(wù)的活動進程,同時啟動一熱備一種進程啟動方式。在本發(fā)明實施例中,進程啟動單元131啟動的熱備進程可以通過直接或者間接的方式使用活動進程運行期間所使用的全部或者部分硬件資源,如CPU計算資源等。其具體包括活動進程和熱備進程運行在同一操作系統(tǒng)中,或者活動進程和熱備進程分別運行于由虛擬技術(shù)虛擬出的多個邏輯服務(wù)器中,且每個邏輯服務(wù)器占用的硬件資源可以通過虛擬技術(shù)隨時任意的再分配給其他的邏輯服務(wù)器。代理進程啟動單元132啟動一用于檢測所述活動進程的狀態(tài)的代理進程。在本發(fā)明另一實施例中,該代理進程還用于接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者,其效果如圖8所示。當代理進程檢測到活動進程的狀態(tài)為停止狀態(tài)時,將接收的服務(wù)請求轉(zhuǎn)發(fā)至熱備進程,使熱備進程轉(zhuǎn)化為活動進程。進程控制單元133在代理進程;險測到活動進程的健康狀態(tài)處于惡化狀態(tài)時,控制進程啟動單元停止活動進程。由于熱備進程開始為消費者提供服務(wù),因此熱備進程變成了活動進程,此時,為了進一步保證軟件系統(tǒng)的可用性,在本發(fā)明另一實施例中,進程控制單元133在代理進程檢測到活動進程處于停止狀態(tài)時,控制進程啟動單元131重新啟動一熱備進程。該熱備進程與當前活動進程的運行環(huán)境如下熱備進程可資源,如CPU計算資源等。也可以通過運行熱備進程的服務(wù)器與運行活動進程的服務(wù)器相互交換硬件資源,來達到熱備進程間接的使用活動進程運行期間使用過的硬件資源。14為了避免由于代理進程發(fā)生故障而P爭低軟件系統(tǒng)的可用性,在本發(fā)明另一實施例中,該代理進程啟動單元132在啟動代理進程的同時,啟動一熱備代理進程。當代理進程處于停止狀態(tài)時,熱備代理進程接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者。同時熱備代理進程檢測活動進程的狀態(tài),并在檢測到活動進程的狀態(tài)為停止狀態(tài)時,將接收的服務(wù)請求轉(zhuǎn)發(fā)至熱備進程。在本發(fā)明另一實施例中,當代理進程的健康狀態(tài)處于惡化狀態(tài)時,進程控制單元133控制代理進程啟動單元132停止代理進程。在本發(fā)明另一實施例中,當代理進程處于停止狀態(tài)時,進程控制單元133控制代理進程啟動單元132重新啟動一熱備代理進程。在本發(fā)明實施例中,通過在啟動活動進程的同時啟動熱備進程,從而當活動進程發(fā)生故障時,可以及時的將服務(wù)請求轉(zhuǎn)至熱備進程,由熱備進程提供服務(wù),從而減少了故障恢復(fù)時間,提高了系統(tǒng)整體的可用性;由于熱備進程直接用了已有資源,降^f氐了成本,同時在單一才喿作系統(tǒng)環(huán)境下,實現(xiàn)了高可用性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。權(quán)利要求1、一種實現(xiàn)高可用性的方法,其特征在于,所述方法包括下述步驟在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程;檢測所述活動進程的狀態(tài);當所述活動進程的狀態(tài)處于停止狀態(tài)時,所述熱備進程開始為消費者提供服務(wù)。2、如權(quán)利要求l所述的方法,其特征在于,在所述當活動進程的狀態(tài)處于停止狀態(tài)時,熱備進程開始為消費者提供服務(wù)的步驟之后,所述方法還包括重新啟動一熱備進程。3、如權(quán)利要求l所述的方法,其特征在于,所述方法還包括啟動一用于接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者的代理進程。4、如權(quán)利要求3所述的方法,其特征在于,所述方法還包括檢測所述代理進程的狀態(tài);當所述代理進程的狀態(tài)處于停止狀態(tài)時,所述熱備代理進程接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者。5、如權(quán)利要求4所述的方法,其特征在于,在所述當所述代理進程的狀態(tài)處于停止狀態(tài)時,所述熱備代理進程接收消費者的服務(wù)請求,并將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,同時將活動進程的響應(yīng)信息返回至消費者的步驟之后,所述方法還包括重新啟動一熱備代理進程。6、如權(quán)利要求1至5任一權(quán)利要求所述的方法,其特征在于,所述熱備進7、如權(quán)利要求6所述的方法,其特征在于,所述熱備進程與所述活動進程運行于同一操作系統(tǒng)中。下8、如權(quán)利要求6所述的方法,其特征在于,所述熱備進程與所述活動進程運行于多個不同的虛擬操作系統(tǒng)中,且在操作系統(tǒng)運行期間,多個不同的操作系統(tǒng)占用的硬件資源可重新分配。9、如權(quán)利要求6所述的方法,其特征在于,運行所述熱備進程的服務(wù)器與運行所述活動進程的服務(wù)器相互交換硬件資源。10、一種實現(xiàn)高可用性的系統(tǒng),其特征在于,所述系統(tǒng)包括進程啟動單元,用于在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程,所述熱備進程在所述活動進程處于停止狀態(tài)時,為消費者提供服務(wù);代理進程啟動單元,用于啟動一用于;f企測所述活動進程的狀態(tài)的代理進程。11、如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述代理進程還用于接收消費者的服務(wù)請求,將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,并將活動進程的響應(yīng)信息返回至消費者,同時所述代理進程在4全測到所述活動進程處于停止狀態(tài)時,將接收的服務(wù)請求轉(zhuǎn)發(fā)至熱備進程。12、如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括進程控制單元,用于在所述代理進程檢測到所述活動進程處于停止狀態(tài)時,控制所述進程啟動單元重新啟動一熱備進程。13、如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述代理進程啟動單元還用于在啟動一代理進程的同時,啟動一熱備代理進程,所述熱備代理進程在所述代理進程處于停止狀態(tài)時,接收消費者的服務(wù)請求,將接收的服務(wù)請求轉(zhuǎn)發(fā)至活動進程,并將活動進程的響應(yīng)信息返回至消費者,同時4企測活動進程的狀態(tài)。14、如權(quán)利要求12所述的系統(tǒng),其特征在于,在所述代理進程處于停止狀態(tài)時,所述進程控制單元還用于控制所述代理進程啟動單元重新啟動一熱備代理進程。15、一種包括權(quán)利要求10至14任一權(quán)利要求所述的實現(xiàn)高可用性的系統(tǒng)的實現(xiàn)高可用性的設(shè)備。全文摘要本發(fā)明適用于計算機領(lǐng)域,提供了一種實現(xiàn)高可用性的方法、系統(tǒng)及設(shè)備,所述方法包括下述步驟在啟動一為消費者提供服務(wù)的活動進程的同時,啟動一熱備進程;檢測所述活動進程的狀態(tài);當所述活動進程的狀態(tài)處于停止狀態(tài)時,所述熱備進程開始為消費者提供服務(wù)。在本發(fā)明實施例中,通過在啟動活動進程的同時啟動熱備進程,從而當活動進程發(fā)生故障時,可以及時的將服務(wù)請求轉(zhuǎn)至熱備進程,由熱備進程提供服務(wù),從而減少了故障恢復(fù)時間,提高了系統(tǒng)整體的可用性。同時本發(fā)明實施例可以滿足單服務(wù)器環(huán)境下的高可用性需求。文檔編號H04L12/24GK101442437SQ20081021714公開日2009年5月27日申請日期2008年10月31日優(yōu)先權(quán)日2008年10月31日發(fā)明者鈞陳申請人:金蝶軟件(中國)有限公司