專利名稱:通過共享數(shù)據(jù)庫進(jìn)行可用率監(jiān)視的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及指示并確定對多個(gè)應(yīng)用客戶機(jī)提供應(yīng)用服務(wù)的多個(gè)應(yīng)用服務(wù)器的可用率的方法和裝置。
背景技術(shù):
企業(yè)依賴于對它們?nèi)粘9ぷ鬟M(jìn)行支持的系統(tǒng)的可用率。如果系統(tǒng)一直正常運(yùn)轉(zhuǎn)并產(chǎn)生正確的結(jié)果,則將系統(tǒng)稱為可用的。從狹義上說,系統(tǒng)的可用率是指該系統(tǒng)為可用的那一段時(shí)間的比率。MTBF表示這類系統(tǒng)出故障之前的平均時(shí)間,即在出故障之前系統(tǒng)可供使用的平均時(shí)間(這是系統(tǒng)的可靠度)。MTTR表示修復(fù)的平均時(shí)間即在出故障之后修復(fù)系統(tǒng)所花費(fèi)的平均時(shí)間(這是系統(tǒng)因故障的停工期)。這樣,AVAIL=MTBFMTTR+MTBF]]>是系統(tǒng)的可用率。在理論上說,系統(tǒng)的可用率是1。目前,如果一個(gè)系統(tǒng)的可用率約為99.999%,該系統(tǒng)就會宣稱有高可用率(如果可用率約為99.99%,則被稱為是容錯(cuò)的)。J.Gray和A.Reuter的《事務(wù)處理概念和技術(shù)》San Mateo,CA Morgan Kaufmann 1993給出了有關(guān)這些方面的進(jìn)一步詳細(xì)內(nèi)容。某種系統(tǒng)或應(yīng)用的可用率具有至少兩個(gè)方面首先,從狹義上說,涉及某一系統(tǒng)是否是完全現(xiàn)役的以提供服務(wù)這樣的問題;其次,從廣義上說,涉及適時(shí)地提供上述服務(wù)以提供充分響應(yīng)這樣的問題。
提高可用率的一種基本方法是以“冗余”為基礎(chǔ)通過構(gòu)建機(jī)器群集可提高硬件的可用率,通過在多個(gè)地址空間中運(yùn)行同一軟件可提高軟件的可用率。
隨著分布式系統(tǒng)的出現(xiàn),業(yè)已發(fā)明了使用運(yùn)行同一軟件的不同機(jī)器上的兩個(gè)或多個(gè)地址空間的技術(shù)來提高可用率(通常稱為主動復(fù)制)。S.Mullender的《分布式系統(tǒng)》ACM出版社,1993年,說明了這些方面的其它細(xì)節(jié)。在使用運(yùn)行同一種從共享輸入隊(duì)列中獲得請求的軟件的同一機(jī)器上的兩個(gè)或多個(gè)地址空間時(shí),可用熱池技術(shù)來概括熱備份技術(shù)。
C.R.Gehr等人的US專利第5828847號“用于最大服務(wù)器可用率和負(fù)載平衡的動態(tài)服務(wù)器轉(zhuǎn)換”說明了一種與上述狹義可用率有關(guān)的動態(tài)服務(wù)器轉(zhuǎn)換系統(tǒng)。這種動態(tài)服務(wù)器轉(zhuǎn)換系統(tǒng)在各客戶機(jī)中保存有一個(gè)靜態(tài)且預(yù)定的列表(一個(gè)概要),它可識別用于該客戶機(jī)的主服務(wù)器和最佳通信方法以及相繼的輔服務(wù)器層次結(jié)構(gòu)和通信方法對。在客戶機(jī)不請求由指定主服務(wù)器或指定通信方法來進(jìn)行服務(wù)的情況下,系統(tǒng)會詳細(xì)考察上述列表,以獲得第一可用的備用服務(wù)器-通信方法對的標(biāo)識。這種系統(tǒng)能使客戶機(jī)將請求從未響應(yīng)的服務(wù)器重新引向預(yù)定的備用服務(wù)器。通過這種方式,就服務(wù)可用率言,系統(tǒng)能提供反應(yīng)性的服務(wù)器轉(zhuǎn)換。
盡管能提高上述狹義的可用率,但是,上述方法具有多種缺點(diǎn)。Gehr教導(dǎo)的內(nèi)容僅在完全不能與主服務(wù)器建立聯(lián)系的情況下提供反應(yīng)性的響應(yīng)。不存在阻止客戶機(jī)從不響應(yīng)的服務(wù)器請求服務(wù)的前攝組件。由于是用統(tǒng)計(jì)方法來預(yù)先確定主服務(wù)器和備用服務(wù)器的列表,因此存在有這樣的情形完全不能找到服務(wù)器或者不會在業(yè)已測試了若干不響應(yīng)的備用服務(wù)器之前找到服務(wù)器。在客戶機(jī)和服務(wù)器永久地進(jìn)入或離開網(wǎng)絡(luò)以及對服務(wù)器的接入模式每時(shí)每刻都發(fā)生變化的高度動態(tài)的世界范圍的操作網(wǎng)絡(luò)環(huán)境中,Gehr的教導(dǎo)內(nèi)容是不適當(dāng)?shù)摹?br>
與本發(fā)明相同的發(fā)明人的題為“集群應(yīng)用服務(wù)器的提高了的可用率”的歐洲專利申請EP99109926.8也涉及到可用率問題。但是,其內(nèi)容完全集中于應(yīng)用客戶機(jī)方面。為了確實(shí)使某一應(yīng)用請求由可用的應(yīng)用服務(wù)器來處理,建議將該應(yīng)用請求在多點(diǎn)傳送步驟中并行地發(fā)送給大量應(yīng)用服務(wù)器,假定有至少一個(gè)可用的應(yīng)用服務(wù)器會接收到應(yīng)用請求。上述內(nèi)容在如何指示某一應(yīng)用服務(wù)器的可用率的技術(shù)方面完全沒有說明。
已知還有同一發(fā)明人的題為“提高集群應(yīng)用服務(wù)器的可用率和伸縮率”的另一個(gè)歐州專利申請EP9912914.7。在該申請中,已經(jīng)把確定應(yīng)用服務(wù)器的可用率的技術(shù)的存在假定為起點(diǎn)。其內(nèi)容集中于應(yīng)用客戶機(jī)如何通過選定某一應(yīng)用服務(wù)器去處理應(yīng)用請求而進(jìn)行工作負(fù)荷平衡的技術(shù)。
盡管迫切地需要所有這些進(jìn)步和改進(jìn)以便在提高應(yīng)用的可用率以及例如進(jìn)行7(天)*24(小時(shí))的電子商務(wù)方面對企業(yè)進(jìn)行支持,但由于世界范圍內(nèi)的計(jì)算機(jī)網(wǎng)絡(luò)在任何位置處都最終會普遍存在,故人們可能會對訪問某一應(yīng)用服務(wù)器感興趣。
發(fā)明內(nèi)容
本發(fā)明基于上述目的而提供一種用于指示應(yīng)用服務(wù)器的可用率以便接受應(yīng)用請求的改進(jìn)型方法和裝置,并提供一種由應(yīng)用客戶機(jī)來判斷應(yīng)用服務(wù)器的可用率的改進(jìn)的方法和裝置。
本發(fā)明的另一個(gè)目的是通過提供一種這樣的技術(shù)而提高可用率,所述技術(shù)能對網(wǎng)絡(luò)內(nèi)各個(gè)應(yīng)用服務(wù)器的可用率的動態(tài)變化作高度響應(yīng)。
本申請的獨(dú)立權(quán)利要求可以實(shí)現(xiàn)本發(fā)明的目的。相應(yīng)的附屬權(quán)利要求說明了本發(fā)明的最佳結(jié)構(gòu)和實(shí)施例。
所提出的方法對每個(gè)應(yīng)用服務(wù)器來說都包括將一個(gè)用于限定可用率信號的重復(fù)周期的時(shí)間上限的通知周期插進(jìn)到可用率數(shù)據(jù)庫中的第一步驟,只要應(yīng)用服務(wù)器是可用的,所述可用率信號就重復(fù)下去。
在第二個(gè)步驟中,對每個(gè)可用率信號來說,將其對應(yīng)的時(shí)間標(biāo)記作為可用率時(shí)間插進(jìn)到可用率數(shù)據(jù)庫。
當(dāng)前時(shí)間和最近的可用率時(shí)間之差與上述通知周期相比可以表示應(yīng)用服務(wù)器的可用率的測度值。
所提出的技術(shù)能提高向多個(gè)應(yīng)用客戶機(jī)提供服務(wù)的多個(gè)應(yīng)用服務(wù)器的可用率和可伸縮率。本發(fā)明提供了一種前攝技術(shù),因?yàn)?,這種技術(shù)能阻止應(yīng)用客戶機(jī)生成從非響應(yīng)服務(wù)器那里請求服務(wù)的錯(cuò)誤請求路由。具有在進(jìn)行中處理的動態(tài)技術(shù)能高度響應(yīng)客戶機(jī)和服務(wù)器永久地進(jìn)入或離開網(wǎng)絡(luò)的動態(tài)網(wǎng)絡(luò)環(huán)境。因此,本發(fā)明可使服務(wù)器機(jī)器熱插入應(yīng)用集群,從而進(jìn)一步增加環(huán)境的可伸縮性??赏耆苊鈱?yīng)用客戶機(jī)與應(yīng)用服務(wù)器聯(lián)系起來的復(fù)雜管理努力。
圖1是反映應(yīng)用服務(wù)器、熱池、應(yīng)用集群和應(yīng)用客戶機(jī)的概念的圖;圖2反映了所提出的本發(fā)明的可用率數(shù)據(jù)庫,它由作為通信介質(zhì)的各個(gè)應(yīng)用服務(wù)器/相應(yīng)的監(jiān)視器來維護(hù),以便指示其可用狀態(tài);
圖3示出了本發(fā)明周期表的記錄格式,該表包括各個(gè)通知周期;圖4以直觀的方式示出了可用率數(shù)據(jù)庫中用來存儲各可用率信號的記錄格式;圖5反映出了一流程圖,它說明了本發(fā)明用于指示可用率的方法,所述流程圖還包括根據(jù)工作負(fù)荷情況來調(diào)整通知周期的動態(tài)方面;圖6示出了將周期表和可用率信號表組合進(jìn)單獨(dú)的一個(gè)表內(nèi)的實(shí)現(xiàn)形式的實(shí)例。
具體實(shí)施例方式
可用硬件、軟件、或硬件和軟件的結(jié)合來實(shí)現(xiàn)本發(fā)明。任何類型的計(jì)算機(jī)系統(tǒng)(或其它適于執(zhí)行本文所述方法的設(shè)備)都是適當(dāng)?shù)?。硬件和軟件的典型組合是帶有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),所述程序在被裝載和執(zhí)行時(shí)可對計(jì)算機(jī)系統(tǒng)進(jìn)行控制,從而使計(jì)算機(jī)可執(zhí)行本文所述的方法。本發(fā)明還可嵌進(jìn)計(jì)算機(jī)程序產(chǎn)品,所述產(chǎn)品包括所有的能實(shí)現(xiàn)本文所述方法的特征并且能在被裝載進(jìn)計(jì)算機(jī)系統(tǒng)時(shí)實(shí)現(xiàn)這些方法。
本文中的計(jì)算機(jī)程序裝置或計(jì)算機(jī)程序是指一組指令的用任何語言、代碼或標(biāo)記的任何表達(dá)方式,所述指令可使得具有信息處理能力的系統(tǒng)直接或在下述兩種情況之一或所有這兩種情況之后執(zhí)行特定的功能,所述的兩種情況是a)轉(zhuǎn)換成另一種語言、代碼或標(biāo)記,b)以不同的材料形式再現(xiàn)。
如果本說明書涉及到一種應(yīng)用,則該應(yīng)用可以是不限于任何特定類型或?qū)崿F(xiàn)形式的任何種類的計(jì)算機(jī)程序。術(shù)語應(yīng)用客戶機(jī)和應(yīng)用服務(wù)器必須從邏輯的角度來加以理解,它們僅涉及某種類型的“實(shí)例”。這些術(shù)語不必區(qū)分出不同的地址空間甚至不同的計(jì)算機(jī)系統(tǒng)。
本發(fā)明假定在應(yīng)用客戶機(jī)與應(yīng)用服務(wù)器之間有某種通信路徑;這并不意味著本發(fā)明限于某種通信范例。
如果本說明書涉及“數(shù)據(jù)庫”,則應(yīng)從廣義上來理解該術(shù)語,它不僅包括實(shí)際的數(shù)據(jù)庫(象關(guān)系、層次數(shù)據(jù)庫等),而且包括簡單的文件等。換句話說,術(shù)語數(shù)據(jù)庫是指任何類型的持續(xù)存儲裝置。
企業(yè)依賴于對它們?nèi)粘9ぷ鬟M(jìn)行支持的系統(tǒng)的可用率。如果系統(tǒng)一直正常運(yùn)轉(zhuǎn)并產(chǎn)生正確的結(jié)果,則將系統(tǒng)稱為可用的。從狹義上說,系統(tǒng)的可用率是指該系統(tǒng)為可用的那一段時(shí)間的比率。其次,從廣義上說,可用率涉及是否以適時(shí)的方式提供應(yīng)用服務(wù)從而提供充分的響應(yīng)這樣的問題。
在所述最佳實(shí)施例中,本發(fā)明涉及根據(jù)以下還要在圖1中予以說明的概念的所謂“應(yīng)用集群”的環(huán)境。
應(yīng)用服務(wù)器(110、111或112)是可執(zhí)行一組相關(guān)服務(wù),例如包括訪問某一共享的遠(yuǎn)程數(shù)據(jù)庫(100)。熱池(110、111、112)是一組地址空間,其每個(gè)空間都運(yùn)行同樣的應(yīng)用服務(wù)器,并且,這些應(yīng)用服務(wù)器中的每一個(gè)都接收來自輸入隊(duì)列(125)的請求,所述輸入隊(duì)列在熱池成員之間是共享的。服務(wù)器機(jī)器(101、102或103)是指某種物理機(jī)器,它是應(yīng)用服務(wù)器的熱池的宿主。應(yīng)用集群(120)是一組服務(wù)器,它們獨(dú)立地出故障,并且,每個(gè)服務(wù)器都是同種應(yīng)用服務(wù)器的熱池的宿主。
應(yīng)用(130)通過應(yīng)用客戶機(jī)請求來自應(yīng)用服務(wù)器的服務(wù)。應(yīng)用客戶機(jī)(131)是可執(zhí)行的,它與應(yīng)用運(yùn)行在同一機(jī)器上并且代表應(yīng)用與服務(wù)器相通信。如果應(yīng)用客戶機(jī)與服務(wù)器之間的通信是以(異步)可靠消息交換為基礎(chǔ)的,則認(rèn)為應(yīng)用服務(wù)器是基于消息的。在下文中,我們假定在應(yīng)用客戶機(jī)與應(yīng)用服務(wù)器之間有基于消息的通信,當(dāng)然,本發(fā)明并不局限于基于消息的通信的范例,相反可以使用其它范例。因此,應(yīng)用客戶機(jī)可通過將相應(yīng)的消息發(fā)送進(jìn)特定機(jī)器上的相關(guān)應(yīng)用服務(wù)器的熱池的輸入隊(duì)列而請求執(zhí)行某一服務(wù)。
客戶機(jī)可保護(hù)自身不受服務(wù)器故障的影響,從而能直接通過如以上已連同歐洲專利申請EP99109926.8說明的那樣的多點(diǎn)傳送其請求而提高整個(gè)環(huán)境的可用率。但是,這需要應(yīng)用服務(wù)器的特殊實(shí)現(xiàn)形式或者限于等冪請求。此外,還會成倍地增加所發(fā)送的消息的數(shù)量。
如果消息的數(shù)量是個(gè)問題,則將請求發(fā)送給熱池的各個(gè)客戶機(jī)均必須檢測出該熱池業(yè)已出了故障(這很容易做到通過發(fā)消息的中間件以否定的方式向客戶機(jī)確認(rèn)相應(yīng)的PUT命令)。在客戶機(jī)了解同一應(yīng)用服務(wù)器(即應(yīng)用集群中出故障的熱池是其成員的服務(wù)器機(jī)器)的其它熱池時(shí),就將其請求發(fā)送給該集群中的不同服務(wù)器上的另一個(gè)熱池。在這樣做時(shí),客戶機(jī)可在熱池本身之間進(jìn)行接管。
所以,問題是檢測仍可接收請求的服務(wù)器(所謂的可用率監(jiān)視)。就這一目的而言,可用所謂的監(jiān)視器去監(jiān)視單個(gè)機(jī)器上的熱池,以便檢測出出故障的服務(wù)器。此外,監(jiān)視器會自動地重新啟動它所監(jiān)視的熱池的出了故障的應(yīng)用服務(wù)器。連同上述歐洲專利申請EP99122914.7,業(yè)已說明了監(jiān)視器監(jiān)視的概念以便檢測出應(yīng)用集群中出了故障的服務(wù)器機(jī)器。這一概念是以進(jìn)行監(jiān)視并確定成組可用應(yīng)用服務(wù)器的監(jiān)視器之間的特定通信協(xié)議為基礎(chǔ)的。
一般地說,通過一個(gè)分布式應(yīng)用的各個(gè)部分之間的網(wǎng)絡(luò)來發(fā)送消息,以便維護(hù)其各個(gè)組件的整個(gè)狀態(tài)。通過將要進(jìn)行監(jiān)視的監(jiān)視器組看作是這樣的分布式應(yīng)用(這樣做的唯一目的是進(jìn)行響應(yīng)以查詢它的各個(gè)分布式組件的有效性),可以使用這種基于網(wǎng)絡(luò)的消息傳送方案。但是,基于網(wǎng)絡(luò)的消息傳送協(xié)議例如具有若干(嚴(yán)重程度不一樣的)固有問題,例如·發(fā)送消息會使得在某些情況下耐受能力不佳的網(wǎng)絡(luò)有額外的負(fù)載;·必須實(shí)現(xiàn)更復(fù)雜的算法,以避免單個(gè)故障點(diǎn)(與“集中式”監(jiān)視相類似,在此,一個(gè)不同的監(jiān)視器只是將其它的監(jiān)視器作為參與者來進(jìn)行觀察),這會導(dǎo)致需要有更多的改進(jìn)努力,而且,這種實(shí)現(xiàn)方式會引發(fā)“對檢查器進(jìn)行檢查”的問題,也就是說,必須要使用特定的編程技術(shù)以確保這些檢查本身不會形成任何故障。
·必須能確保可到達(dá)性屬性(例如,在“集中監(jiān)視”中,中心監(jiān)視器必須能對所有其它監(jiān)視器起作用,或者,在“分布式監(jiān)視”中,每個(gè)監(jiān)視器必須能對所有其它監(jiān)視器起作用),這兩種情況都難以在建立環(huán)境時(shí)適當(dāng)?shù)貙?shí)現(xiàn)管理任務(wù)并難以在可能發(fā)生并必須加以處理的網(wǎng)絡(luò)分隔的情況下(例如,由于連接丟失,網(wǎng)絡(luò)分成不相連的各個(gè)子網(wǎng))進(jìn)行處理。
因此,本發(fā)明的目的是克服這些需要基于這種擴(kuò)大的網(wǎng)絡(luò)的消息傳送協(xié)議的問題。但是在此同時(shí),對于這些問題的預(yù)定解決方案應(yīng)能提供一種前攝技術(shù),這種技術(shù)能自動地確定進(jìn)入(熱插入)或離開所述集群的應(yīng)用服務(wù)器。
圖2反映出了本發(fā)明的中心思想。本發(fā)明的中心觀點(diǎn)是,引入中心和共享數(shù)據(jù)庫來顯著地降低上述網(wǎng)絡(luò)消息擁擠問題。建議將由所有要加以監(jiān)視的監(jiān)視器所共享的數(shù)據(jù)庫用作通信介質(zhì),該介質(zhì)用來交換應(yīng)用服務(wù)器的有效性的狀態(tài)。這種新的數(shù)據(jù)庫稱為壽命數(shù)據(jù)庫或可用率數(shù)據(jù)庫200。在本發(fā)明的最佳實(shí)施例中,集群202的相應(yīng)應(yīng)用服務(wù)器的各監(jiān)視器201將一個(gè)“我活著!”203記錄寫進(jìn)壽命數(shù)據(jù)庫,該記錄應(yīng)被理解為相應(yīng)應(yīng)用服務(wù)器的可用率信號,以指示它們準(zhǔn)備就緒去接受應(yīng)用服務(wù)請求。引入監(jiān)視器概念是一種附加的改進(jìn),當(dāng)然,各應(yīng)用服務(wù)器本身可以進(jìn)行響應(yīng),以便將可用率信號插進(jìn)可用率數(shù)據(jù)庫。
作為一個(gè)示例性實(shí)施例,假定關(guān)系數(shù)據(jù)庫系統(tǒng)是應(yīng)用集群的壽命數(shù)據(jù)庫的宿主。請注意,這一點(diǎn)并不是本發(fā)明的中心,也就是說,就這方面而言,可使用任何其它穩(wěn)定存儲方式(例如文件系統(tǒng)或企業(yè)級Java beans實(shí)體容器)。具體地說,可通過表示壽命數(shù)據(jù)庫的適當(dāng)?shù)谋韥頂U(kuò)展一個(gè)拓?fù)鋽?shù)據(jù)庫,該拓?fù)鋽?shù)據(jù)庫可被應(yīng)用集群用于其系統(tǒng)管理。
能夠訪問應(yīng)用集群的壽命數(shù)據(jù)庫的任何軟件(例如對請求的應(yīng)用服務(wù)感興趣的應(yīng)用客戶機(jī))均能確定可用的服務(wù)器以及那些業(yè)已出故障且當(dāng)前不可用的服務(wù)器。
對某一應(yīng)用服務(wù)器或其監(jiān)視器而言,使相應(yīng)的可用率信號只進(jìn)入可用率數(shù)據(jù)庫一次是不夠的。如果在這一事件之后應(yīng)用服務(wù)器崩潰,則可用率數(shù)據(jù)庫會不與當(dāng)前環(huán)境相同步。為了處理這一問題,本發(fā)明就這一目的建議壽命數(shù)據(jù)庫必須還包含有與每個(gè)監(jiān)視器同意將“我活著!”的記錄寫進(jìn)該數(shù)據(jù)庫內(nèi)的周期有關(guān)的信息。所以,要把包括通知同期的另一個(gè)數(shù)據(jù)元素插進(jìn)可用率數(shù)據(jù)庫,只要相應(yīng)的監(jiān)視器(或應(yīng)用服務(wù)器)是可用的,所述通知周期就限定了重復(fù)可用率信號的時(shí)間上限。
作為一個(gè)實(shí)例,圖3示出了用于存儲各個(gè)通知周期的周期表。建議該周期表包括監(jiān)視器(代表應(yīng)用集群)的標(biāo)識或用于重復(fù)可用率信號和通知周期301的應(yīng)用服務(wù)器300的標(biāo)識。參與可用率監(jiān)視的每個(gè)監(jiān)視器/應(yīng)用服務(wù)器均使這種記錄輸入到可用率數(shù)據(jù)庫。對本領(lǐng)域的普通技術(shù)人員來說,如何通過SQL獲得所述周期并且使得監(jiān)視器寫入來自上表的“我活著!”消息是很明顯的。而且,該應(yīng)用集群所包括的所有監(jiān)視器都可以通過SQL從所述表中獲得。
作為一個(gè)實(shí)例,圖4說明了Alive_Signal(活著的信號)表,該表用于表示監(jiān)視器的“我活著!”記錄,也就是說,對接收自監(jiān)視器的各個(gè)可用率信號來說,要使這種記錄進(jìn)入可用率數(shù)據(jù)庫。與所述周期表相類似,建議Alive_Signal表包括用于發(fā)送可用率信號的相應(yīng)監(jiān)視器/應(yīng)用服務(wù)器的標(biāo)識400。而且,Alive_Timestamp(活著的時(shí)間標(biāo)記)字段401存儲該時(shí)間標(biāo)記,從而存儲最近可用率信號的可用率時(shí)間。
包含在上述兩個(gè)表(即周期表和Alive_Signal表)中的信息精確地描述了應(yīng)用服務(wù)器的可用率。
概括地說,就每個(gè)應(yīng)用服務(wù)器而言,與所述特定應(yīng)用服務(wù)器的通知周期相比,可用率測度值是由當(dāng)前時(shí)間(例如,查詢可用率數(shù)據(jù)庫時(shí)的時(shí)間)與最近可用率時(shí)間之差來限定的。更一般地說,可將當(dāng)前可用率時(shí)間與前一可用率時(shí)間之間的第二差值添加至上述可用率測度值。業(yè)已證明,下述具體的可用率測度值是成功的1、如果當(dāng)前時(shí)間與最近可用率時(shí)間之差超過上述通知周期,則將相應(yīng)的應(yīng)用服務(wù)器看作是不可用的,這是因?yàn)椋瑧?yīng)用服務(wù)器“承諾”至少在通知周期內(nèi)重復(fù)可用率信號。否則,將應(yīng)用服務(wù)器看作是可用的。
2、可根據(jù)Alive_Signal表確定在插入由特定監(jiān)視器寫入的至少兩個(gè)“我活著!”記錄之間經(jīng)過的時(shí)間,也就是說,可確定最近可用率時(shí)間與前一個(gè)可用率時(shí)間之間的時(shí)間差。如果所述持續(xù)時(shí)間超過了監(jiān)視器同意插入“我活著!”消息的通知周期,則所述監(jiān)視器是可能已經(jīng)出故障的監(jiān)視器。所述可用率測度值基于這樣的假設(shè)即如果所述至少兩個(gè)可用率信號未處在預(yù)定的通知周期內(nèi),則這表示應(yīng)用服務(wù)器目前正經(jīng)歷著問題,從而應(yīng)加以避免。
3、一般地說,這種基于超時(shí)的故障判斷機(jī)制必須能應(yīng)付這類情形,即監(jiān)視器僅僅是太忙而不能將可用率信號寫進(jìn)可用率數(shù)據(jù)庫但卻仍然是可用的。如果當(dāng)前時(shí)間與前一可用率時(shí)間之差是通知時(shí)間的N倍,則可通過將一個(gè)應(yīng)用服務(wù)器看作是不可用的而實(shí)現(xiàn)能夠應(yīng)付這種情形的可用率測度值。
但是,根據(jù)可用率數(shù)據(jù)庫(壽命數(shù)據(jù)庫),可以確定哪個(gè)監(jiān)視器/應(yīng)用服務(wù)器業(yè)已出了故障以及哪個(gè)監(jiān)視器/應(yīng)用服務(wù)器仍然是可用的。具體地說,能訪問壽命數(shù)據(jù)庫的每個(gè)程序都能進(jìn)行這種檢查每個(gè)監(jiān)視器、一個(gè)可為這種環(huán)境構(gòu)建的獨(dú)立管理組件、當(dāng)然還有每個(gè)需要查找可用的應(yīng)用服務(wù)器以便傳送應(yīng)用服務(wù)請求的應(yīng)用客戶機(jī)。每個(gè)應(yīng)用客戶機(jī)均可查詢可用率數(shù)據(jù)庫,以便利用上測可用率測度值去確定至少一個(gè)可用的應(yīng)用服務(wù)器,然后,應(yīng)用客戶機(jī)可將應(yīng)用服務(wù)請求發(fā)送給該應(yīng)用服務(wù)器。
當(dāng)監(jiān)視器或應(yīng)用服務(wù)器能動態(tài)地調(diào)整它們的通知周期時(shí),則可以實(shí)現(xiàn)本發(fā)明的另一個(gè)最佳實(shí)施例。如果這種動態(tài)調(diào)整取決于應(yīng)用服務(wù)器所處理的工作負(fù)荷,則可用率測度值會通過也表示工作負(fù)荷指標(biāo)而成為一個(gè)新的參量。所述通知周期在工作負(fù)荷增加的情況下通過增加通知周期并在工作負(fù)荷減少的情況下通過減少通知周期而(同時(shí))代表一個(gè)工作負(fù)荷指示符,該指示符表示應(yīng)用服務(wù)器的響應(yīng)率。應(yīng)用客戶機(jī)可通過并行地確定用于一組應(yīng)用服務(wù)器的可用率測度值而利用這一指標(biāo)。在這種情況下,可用率測度值不僅可用于確定可用的應(yīng)用服務(wù)器(它僅表示一個(gè)二進(jìn)制判斷“可用”與“不可用”)的子集、而且可構(gòu)成由應(yīng)用客戶機(jī)所執(zhí)行的工作負(fù)荷平衡決策的基礎(chǔ)。作為參數(shù)的、或多或少地要受當(dāng)前通知周期影響的所述可用率測度的數(shù)字值于是也是一個(gè)工作負(fù)荷指標(biāo)。然后,應(yīng)用客戶機(jī)將其應(yīng)用服務(wù)請求發(fā)送給有最低工作負(fù)荷的可用應(yīng)用服務(wù)器,即發(fā)送給相對這種另一個(gè)應(yīng)用請求有最大可用率測度值的應(yīng)用服務(wù)器。
圖5反映了一個(gè)流程圖,該流程圖說明了用于指示可用率的方法,該方法還包括根據(jù)工作負(fù)荷情況調(diào)整通知周期的動態(tài)方面。
在步驟501中開始應(yīng)用服務(wù)器或監(jiān)視器進(jìn)行可用率監(jiān)視的過程。在下一個(gè)步驟502中,確定當(dāng)前工作負(fù)荷情況,以便計(jì)算出這樣的通知周期,該通知周期與當(dāng)前工作負(fù)荷周期相比,既不太高,也不太低。在步驟503,(當(dāng)然)應(yīng)該使計(jì)算出的通知周期進(jìn)入可用率數(shù)據(jù)庫。在通知周期所設(shè)定的時(shí)間參照系中,應(yīng)當(dāng)使當(dāng)前可用率信號進(jìn)入可用率數(shù)據(jù)庫,步驟504反映出了這一點(diǎn)。所述通知周期限定了用于重復(fù)可用率信號的時(shí)間上限,應(yīng)用服務(wù)器/監(jiān)視器根據(jù)工作負(fù)荷試圖更頻繁地發(fā)送可用率信號。在步驟504之后(或者作為在這一步驟之前的另一個(gè)實(shí)施例中),在步驟505中分析當(dāng)前工作負(fù)荷情況。如果當(dāng)前工作負(fù)荷情況以需要重新調(diào)整通知周期的方式而改變,則再次開始確定通知周期的處理步驟,以便選擇控制路徑506。如果當(dāng)前工作負(fù)荷情況沒有顯著變化,則重復(fù)發(fā)出可用率信號,從而選擇路徑507。
必須僅從概念的角度來理解帶有周期表(圖3所示)和可用率表(圖4所示)的可用率數(shù)據(jù)庫的結(jié)構(gòu)和布局。當(dāng)然,可用率數(shù)據(jù)庫的結(jié)構(gòu)可以是如下所述的進(jìn)一步改進(jìn)的主題1、每次插入新的通知周期或新的可用率信號都會將一新記錄引入數(shù)據(jù)庫。為了防止可用率數(shù)據(jù)庫持久性地增加,建議進(jìn)行這樣處理刪除不再有用的舊數(shù)據(jù)庫記錄,例如,就某一監(jiān)視器/應(yīng)用服務(wù)器的各種記錄類型而言,僅將最近的和前一個(gè)記錄保存在數(shù)據(jù)庫內(nèi)。為了實(shí)現(xiàn)這種處理,最好使用“存儲過程(stored procedures)”技術(shù),所采用的存儲過程可在后臺的數(shù)據(jù)庫中運(yùn)行,以便刪除不再需要的記錄。
2、對本發(fā)明來說,將通知周期和可用率信號存儲到不同數(shù)據(jù)庫記錄中當(dāng)然并不是關(guān)鍵所在。圖6中形象化地示出了如何將兩種數(shù)據(jù)元素包括到一個(gè)數(shù)據(jù)庫記錄內(nèi)的實(shí)例。從圖6中可以看出,除監(jiān)視器標(biāo)識/應(yīng)用服務(wù)器標(biāo)識600和通知周期601以外,大量的可用率信號被減少到僅為兩個(gè)條目。無論何時(shí)由新的可用率信號來更新當(dāng)前的可用率信號602,都將其內(nèi)容傳送到存儲前一可用率信號603的字段中,此后,將新的可用率信號插進(jìn)當(dāng)前可用率信號602的字段內(nèi)。利用這種技術(shù),可用率數(shù)據(jù)庫可以限制在中等規(guī)模,至于各個(gè)監(jiān)視器/應(yīng)用服務(wù)器,僅必須保留一個(gè)單個(gè)的數(shù)據(jù)庫記錄。
本發(fā)明的優(yōu)點(diǎn)在于,所提出的技術(shù)能提高向多個(gè)應(yīng)用客戶機(jī)提供服務(wù)的多個(gè)應(yīng)用服務(wù)器的可用率和可伸縮率。本發(fā)明提供了一種前攝技術(shù),因?yàn)椋@種技術(shù)能阻止客戶機(jī)生成從非響應(yīng)服務(wù)器請求服務(wù)的錯(cuò)誤請求路由。建議在進(jìn)行中的處理能高度響應(yīng)動態(tài)網(wǎng)絡(luò)環(huán)境,在這種環(huán)境中,客戶機(jī)和服務(wù)器永久地進(jìn)入或離開網(wǎng)絡(luò)。因此,本發(fā)明可使服務(wù)器機(jī)器熱插入應(yīng)用集群,從而進(jìn)一步增加環(huán)境的可伸縮性。可完全避免將應(yīng)用客戶機(jī)與應(yīng)用服務(wù)器聯(lián)系起來的復(fù)雜的、或由于其特別復(fù)雜而不可能實(shí)現(xiàn)的管理。
由于本發(fā)明未采用任何基于網(wǎng)絡(luò)的消息傳遞,故可避免這種機(jī)制(可參考上述說明)的所有缺點(diǎn)。唯一的系統(tǒng)先決條件是一個(gè)共享的數(shù)據(jù)庫。當(dāng)今的數(shù)據(jù)庫管理系統(tǒng)是非常堅(jiān)固的,因此,不必將壽命數(shù)據(jù)庫看作是一個(gè)出故障的點(diǎn)。此外,大多數(shù)應(yīng)用服務(wù)器都構(gòu)建在數(shù)據(jù)庫系統(tǒng)上。因此,在許多情況下都能自動地滿足共享數(shù)據(jù)庫的假設(shè)??傻竭_(dá)性完全不是問題,因?yàn)?,作為是熱池宿主的各服?wù)器機(jī)器均能訪問共享數(shù)據(jù)庫。最后,在將壽命數(shù)據(jù)庫放進(jìn)關(guān)系型DBMS中時(shí),通過SQL可很容易地實(shí)現(xiàn)監(jiān)視器監(jiān)視技術(shù)。
權(quán)利要求
1.一種用于指示一個(gè)或多個(gè)應(yīng)用服務(wù)器的可用率的計(jì)算機(jī)化方法,所述方法包括將第一數(shù)據(jù)元素(301、601)插入可用率數(shù)據(jù)庫(200)內(nèi)的第一步驟(503),所述第一數(shù)據(jù)元素(301、601)包括一個(gè)通知周期,所述通知周期限定了一個(gè)可用率信號的重復(fù)周期的時(shí)間上限,只要所述應(yīng)用服務(wù)器是可用的,所述用可用率信號就重復(fù)下去;以及所述方法包括將第二數(shù)據(jù)元素(401、602)插進(jìn)上述可用率數(shù)據(jù)庫內(nèi)的第二步驟(504),所述第二數(shù)據(jù)元素包括就各可用率信號而言的作為可用率時(shí)間的相應(yīng)時(shí)間標(biāo)記;并且由此,當(dāng)前時(shí)間和最近的可用率時(shí)間之差與上述通知周期相比表示所述應(yīng)用服務(wù)器的可用率的測度值。
2.如權(quán)利要求1的用于指示可用率的計(jì)算機(jī)化方法,其特征在于,所述方法包括根據(jù)上述應(yīng)用服務(wù)器的工作負(fù)荷在該工作負(fù)荷增加的情況下通過使所述通知周期增加或者在該工作負(fù)荷減少的情況下通過使所述通知周期減少從而更新該通知周期的第三步驟(505)。
3.如權(quán)利要求1的用于指示可用率的計(jì)算機(jī)化方法,其特征在于,在所述第一和第二步驟中,還將應(yīng)用服務(wù)器標(biāo)識(300、400、600)插進(jìn)前述可用率數(shù)據(jù)庫并使之與前述第一和第二數(shù)據(jù)元素相關(guān)聯(lián)。
4.如權(quán)利要求3的用于指示可用率的計(jì)算機(jī)化方法,其特征在于,如果所說的差值超過前述通知周期,則所述可用率的測度值指示前述應(yīng)用服務(wù)器的不可用性。
5.如權(quán)利要求1的用于指示可用率的計(jì)算機(jī)化方法,其特征在于,所述可用率數(shù)據(jù)庫由多個(gè)應(yīng)用服務(wù)器所共享,每個(gè)應(yīng)用服務(wù)器均包括上述一個(gè)或多個(gè)應(yīng)用服務(wù)器的熱池;以及對于上述熱池,一個(gè)監(jiān)視器監(jiān)視著該熱池的可用率狀態(tài);以及所述方法由上述監(jiān)視器來執(zhí)行;以及只要有上述熱池的至少一個(gè)應(yīng)用服務(wù)器是可用的,則重復(fù)所說的可用率信號;以及在所述第一和第二步驟中,還將一個(gè)熱池標(biāo)識插進(jìn)前述可用率數(shù)據(jù)庫并使之與前述第一和第二數(shù)據(jù)元素相關(guān)聯(lián)。
6.如權(quán)利要求2或5的用于指示可用率的計(jì)算機(jī)化方法,其特征在于,作為第二差值,所述最近可用率時(shí)間與前一可用率時(shí)間(603)之差被包括在前述可用率測度值內(nèi)。
7.一種用于確定接受應(yīng)用服務(wù)請求的一個(gè)或多個(gè)應(yīng)用服務(wù)器的可用率的計(jì)算機(jī)化方法,所述方法包括查詢可用率數(shù)據(jù)庫(200)的第一步驟,對于第一數(shù)據(jù)元素(301、601),包括一個(gè)通知周期,所述通知周期限定了可用率信號的重復(fù)周期的時(shí)間上限,只要所述應(yīng)用服務(wù)器是可用的,所述可用率信號就重復(fù)下去;以及對于第二數(shù)據(jù)元素,包括就各可用率信號而言的作為可用率時(shí)間的相應(yīng)時(shí)間標(biāo)記;以及所述方法包括通過比較當(dāng)前時(shí)間和當(dāng)前可用率時(shí)間之差與所述通知周期來確定所述應(yīng)用服務(wù)器的可用率的測度值的第二步驟;所述方法包括在所述可用率測度值指示出所述指示服務(wù)器的可用率的情況下僅將應(yīng)用服務(wù)請求發(fā)送給所述應(yīng)用服務(wù)器。
8.如權(quán)利要求7的用于確定可用率的計(jì)算機(jī)化方法,其特征在于,如果所述差值超過前述通知周期,則所述可用率測度值指示前述應(yīng)用服務(wù)器的不可用性。
9.如權(quán)利要求7的用于確定可用率的計(jì)算機(jī)化方法,其特征在于,所述方法在上述第一步驟中還對第三數(shù)據(jù)元素(603)進(jìn)行查詢,所述第三數(shù)據(jù)元素包括用于前一可用率信號的前一可用率時(shí)間,以及在所述第二步驟中,作為第二差值,所述最近可用率時(shí)間與前一可用率時(shí)間(603)之差被包括在所述可用率測度值內(nèi)。
10.如權(quán)利要求7的用于確定可用率的計(jì)算機(jī)化方法,其特征在于,如果所述差值是前述通知周期的N倍,則所述可用率測度值指示前述應(yīng)用服務(wù)器的不可用性。
11.如權(quán)利要求9的用于確定可用率的計(jì)算機(jī)化方法,其特征在于,對多個(gè)應(yīng)用服務(wù)器執(zhí)行所述方法;以及在所述第三步驟中,確定應(yīng)用服務(wù)器的一個(gè)子集,其中包括所述可用率測度值對其指示出了可用率的那些應(yīng)用服務(wù)器;以及對于所述子集中的各應(yīng)用服務(wù)器,將其相應(yīng)的可用率測度值解釋為工作負(fù)荷指標(biāo);以及將所述應(yīng)用服務(wù)請求發(fā)送給有最低工作負(fù)荷的應(yīng)用服務(wù)器。
12.一種用于指示一個(gè)或多個(gè)應(yīng)用服務(wù)器的可用率的系統(tǒng),所述系統(tǒng)包括用于執(zhí)行前述權(quán)利要求1至6中任何一項(xiàng)的方法的步驟的裝置。
13.一種在數(shù)據(jù)處理系統(tǒng)內(nèi)執(zhí)行的數(shù)據(jù)處理程序,該程序包括用于執(zhí)行前述權(quán)利要求1至6中任何一項(xiàng)的方法的軟件代碼部分。
14.一種存儲在計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,它包括計(jì)算機(jī)可讀程序裝置,該裝置用于使計(jì)算機(jī)執(zhí)行前述權(quán)利要求1至6中任何一項(xiàng)的方法。
15.一種用于確定接受應(yīng)用服務(wù)請求的一個(gè)或多個(gè)應(yīng)用服務(wù)器的可用率的系統(tǒng),所述系統(tǒng)包括用于執(zhí)行前述權(quán)利要求7至11中任何一項(xiàng)的方法的步驟的裝置。
16.一種在數(shù)據(jù)處理系統(tǒng)內(nèi)執(zhí)行的數(shù)據(jù)處理程序,該程序包括在所述程序在計(jì)算機(jī)上運(yùn)行時(shí)用于執(zhí)行前述權(quán)利要求7至11中任何一項(xiàng)的方法的軟件代碼部分。
17.一種存儲在計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,它包括計(jì)算機(jī)可讀程序裝置,該裝置在所述程序在計(jì)算機(jī)上運(yùn)行時(shí)用于使計(jì)算機(jī)執(zhí)行前述權(quán)利要求7至11中任何一項(xiàng)的方法。
全文摘要
本發(fā)明涉及指示并確定多個(gè)應(yīng)用服務(wù)器的可用率的技術(shù)。所提出的方法對每個(gè)應(yīng)用服務(wù)器都包括將限定可用率信號的重復(fù)周期的時(shí)間上限的通知周期插進(jìn)可用率數(shù)據(jù)庫的第一步驟,只要應(yīng)用服務(wù)器是可用的,該信號就重復(fù)。第二步驟對每個(gè)可用率信號將其相應(yīng)的時(shí)間標(biāo)記作為可用率時(shí)間插進(jìn)可用率數(shù)據(jù)庫。當(dāng)前時(shí)間和最近的可用率時(shí)間之差與上述通知周期相比表示應(yīng)用服務(wù)器的可用率的測度值。
文檔編號G06F11/30GK1334530SQ01123350
公開日2002年2月6日 申請日期2001年7月16日 優(yōu)先權(quán)日2000年7月15日
發(fā)明者F·萊曼恩, D·羅勒 申請人:國際商業(yè)機(jī)器公司