亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

集群環(huán)境下的應用服務器的系統(tǒng)再生方法

文檔序號:6640450閱讀:162來源:國知局
專利名稱:集群環(huán)境下的應用服務器的系統(tǒng)再生方法
技術領域
本發(fā)明涉及一種應用服務器的再生方法,尤其涉及一種集群環(huán)境下的應用服務器的系統(tǒng)再生方法。
背景技術
伴隨著軟件的運行,由于系統(tǒng)資源逐漸消耗或運行時錯誤逐漸積累所導致的系統(tǒng)性能持續(xù)下降乃至掛起或停機的現(xiàn)象。這就是所謂的“軟件老化”。應用服務器也存在相同的問題。要保證服務器的高可用性和高可靠性,必須對服務器進行軟件再生。“軟件再生”是一種“前攝式”(proactive)的容錯技術,它主要通過周期性地暫停軟件的運行,清除持續(xù)運行系統(tǒng)的內部狀態(tài),重新啟動并恢復到干凈的初始或中間狀態(tài),從而達到預先防止將來可能發(fā)生的更嚴重的故障的目的?!败浖偕奔夹g所涉及的主要問題是何時進行“再生”以及如何“再生”。由于“再生”本身也會導致系統(tǒng)的不可用,因此,過高頻率的“軟件再生”會增大系統(tǒng)停機的時間和損失,頻率過低則不能保證起到應有的效用?!霸偕钡姆椒ㄅc“再生”的粒度有關,如基于組件的“再生”,基于檢查點的“再生”等。
應用服務器(Application Server)中間件是一種獨立的系統(tǒng)軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,應用服務器中間件位于客戶機服務器的操作系統(tǒng)之上,管理計算資源和網絡通訊。它屏蔽了底層網絡和操作系統(tǒng)的復雜性和異構性,提供客戶標準的服務集,使得整個系統(tǒng)對于客戶的訪問是透明的。
與其他軟件一樣,應用服務器在運行一段時間后,可能由于系統(tǒng)資源逐漸消耗或運行時錯誤逐漸積累而性能下降,甚至使得應用服務器不可用,呈現(xiàn)老化狀態(tài)。應用服務器的再生特征能很好地提高其性能和可用性。
在應用服務器運行期間,必須對服務器狀態(tài)進行監(jiān)控,獲得展現(xiàn)服務器狀態(tài)的各個指標,并通過數(shù)學模型分析判斷這些指標所標識的服務器狀態(tài)已經達到老化后,對服務器進行再生,從而提高服務器性能,提供可靠的服務。
再生策略一般可分為基于時間的策略以及基于時間和負載量的策略兩種?;跁r間的再生策略思想是按照實際服務器的運行時間,來確認系統(tǒng)老化程度。并假設系統(tǒng)從開始運行到系統(tǒng)崩潰的時間與服務器的能力和其它任何參數(shù)沒有必然聯(lián)系,而是通過收集歷史數(shù)據(jù),對歷史數(shù)據(jù)進行建模分析得出老化時間,從而確認服務器的再生點。
基于時間和負載量的策略的基本思想是當系統(tǒng)定時再生被觸發(fā)時,系統(tǒng)不再馬上執(zhí)行再生,而是首先檢測集群系統(tǒng)的負載狀態(tài)。由于重載狀態(tài)時節(jié)點的再生會降低系統(tǒng)性能,故選擇在系統(tǒng)輕載時再生。為了保證在再生該節(jié)點的過程中系統(tǒng)依然可用,首先將該節(jié)點中的負載量和相關服務遷移到其他節(jié)點,并將服務器內部狀態(tài)備份到硬盤或者其他節(jié)點,同時回收導致服務器性能下降的資源,使得服務器回滾到啟動狀態(tài)或者某個可用狀態(tài)。
常用的再生方法有基于模型的再生和基于測量的方法?;谀P偷难芯糠椒ǔ霈F(xiàn)的較早,其思想是應用數(shù)學方法求解得出軟件再生時間的最優(yōu)值與各老化指標參量之間的一組函數(shù)關系,而各老化指標參量的具體值則可以通過對實際系統(tǒng)一段時間的試驗或實際運行得到。目前,基于模型方法的重點在于利用隨機Petri網等工具對軟件系統(tǒng)的狀態(tài)和轉換進行刻畫建模,結合隨機過程等數(shù)學方法求解,最后得出在該模型下的最佳恢復時間的公式或關系。
基于測量的方法是在軟件運行的實際過程中,監(jiān)測反映系統(tǒng)運行狀態(tài)的各項性能參數(shù),再根據(jù)軟件本身的一些參數(shù),動態(tài)地進行軟件老化的速度、時間、可能性及軟件再生代價等的計算評估,做出是否以及何時采取軟件再生措施的決策。
在中間件運行平臺中通過支持集群來減輕負載是普遍所采用的方法。而集群環(huán)境本身的特點,即系統(tǒng)內多點之間會互動地起作用和產生狀態(tài)的轉換,決定了使用單一的方法可能無法很好地解決軟件老化和再生的問題。使用基于模型的方法,對其容器集群系統(tǒng)的狀態(tài)關系建立模型,研究系統(tǒng)運行狀態(tài)的分布,從而進一步計算某些需要觀測的關鍵點的時間和間隔,以達到從整個集群的角度研究出再生的最佳時間和頻度的目的。利用基于模型的方法找到需要觀測的關鍵點之后,再實時地用基于預測的方法判斷軟件老化的狀態(tài),決定是否需要采取相應的再生手段。這樣以來,就能夠從多方位多角度對一個集群系統(tǒng)進行軟件再生。
應用服務器中間件容器環(huán)境的再生按照系統(tǒng)的運行狀況劃分為不同的粒度級別,提出在集群環(huán)境下的系統(tǒng)再生控制策略和再生控制模塊的控制算法。將集群中的每個節(jié)點作為一個自治系統(tǒng),同時遵循全局的再生策略,受到再生控制模塊的調節(jié)。當某個節(jié)點處于輕度老化時,這個節(jié)點自身通過資源回收、服務重起來調節(jié)自身的老化程度。如果某個節(jié)點的老化積累已經不能由其自身來調節(jié),再生控制模塊首先對其負載和服務進行遷移,保持客戶訪問的可用性,然后重起這個老化節(jié)點,最后由再生控制模塊來平衡整個系統(tǒng)的負載和請求狀況。
目前軟件再生的研究場景多集中于非集群環(huán)境,對于集群環(huán)境的再生問題研究極少。

發(fā)明內容
本發(fā)明的目的在于提出一種集群環(huán)境下的應用服務器的系統(tǒng)再生方法。此方法能夠實現(xiàn)多個節(jié)點的JTone應用服務器集群在不停止服務的情況下,當某個節(jié)點被檢測到老化時能動態(tài)地進行再生。
為達到上述目的,本發(fā)明采用的技術方案是首先通過老化建模檢測當前服務器的節(jié)點是否老化,若當前服務器的節(jié)點已經老化則將此節(jié)點的當前操作設置為檢查點,并通過狀態(tài)復制操作確定當前正在處理的EJB請求的當前服務器節(jié)點的狀態(tài)信息,將該節(jié)點的狀態(tài)信息置為不可用,客戶端得到通知該節(jié)點處于不可用狀態(tài),不再向該節(jié)點發(fā)送請求,此節(jié)點不再接收新的EJB請求,僅有狀態(tài)會話bean和實體bean才有狀態(tài)信息;通過EnterpriseContext保持此節(jié)點的狀態(tài)信息并將節(jié)點的狀態(tài)信息復制到另一個可用備份節(jié)點;狀態(tài)復制過程如下首先狀態(tài)復制器將此節(jié)點的狀態(tài)信息傳遞給應用服務器底層的通訊框架,該通訊框架中的ReplicationManager模塊同步各個節(jié)點的狀態(tài)信息,當要進行再生的節(jié)點將狀態(tài)信息傳遞到ReplicationManager模塊時,ReplicationManager模塊會將狀態(tài)信息的改變同步到其余所有應用服務器節(jié)點,使各個節(jié)點的狀態(tài)同步;此節(jié)點調用本地操作系統(tǒng)的Windows API——ExitWindowsEx(UINT uFlags,DWORDdwReserved)對該節(jié)點重啟;應用服務器被配置成為Windows的一項服務,當計算機重新啟動時,應用服務器隨之啟動,并作為系統(tǒng)的一個節(jié)點重新加入到集群中來,同時與其他節(jié)點同步,將當前備份節(jié)點的最新狀態(tài)復制到本地節(jié)點;接受了復制狀態(tài)信息節(jié)點的最新狀態(tài)信息通過狀態(tài)復制重新復制到發(fā)生再生的應用服務器節(jié)點,此應用服務器重新接受EJB請求。
本發(fā)明的再生通過主動停止程序運行,清理應用服務器的內部環(huán)境,使重啟后的應用服務器進入一個正常的初始狀態(tài),從而避免因軟件老化引起的突發(fā)性失效,有效的提高了應用服務器的可靠性和可用性。


附圖是本發(fā)明的流程圖。
具體實施例方式
下面結合附圖對本發(fā)明作進一步詳細說明。
參見附圖,若當前服務器節(jié)點被檢測到已經老化,則需要進行以下的再生步驟通過老化建模,得到當前服務器已處于老化狀態(tài),并將當前服務器老化信息傳送給狀態(tài)監(jiān)測器;狀態(tài)監(jiān)測器接收到信息,得知本節(jié)點已老化,則向請求轉發(fā)器和狀態(tài)復制器發(fā)出再生通知,將當前操作設置為檢查點,進行再生準備;請求轉發(fā)器接受到請求后,向客戶端顯示該節(jié)點不可用,保存當前正在處理的請求,停止接受新請求;狀態(tài)復制器則在當前請求執(zhí)行完畢之后,將當前服務器狀態(tài)復制下來,確定當前正在處理EJB請求的當前服務器節(jié)點的狀態(tài)信息;僅有狀態(tài)會話bean和實體bean才有狀態(tài)信息,狀態(tài)復制所需要的狀態(tài)均由EnterpriseContext來保持,主要成員有idid的意義在不同種類EJB中各不相同。在有狀態(tài)會話Bean中id是用來區(qū)分同一個EJB的不同客戶端的,是一個只增的長整型值。因為有狀態(tài)實體Bean接受多個客戶端的調用,id則用于區(qū)分不同的客戶端;instance是對當前EJB的Bean實現(xiàn)類實例的一個引用。對于有狀態(tài)會話Bean來說,其對于客戶端呈現(xiàn)出的“狀態(tài)”就是Bean實現(xiàn)類所持有的成員域的值;locked表示本context是否正處于一次方法調用的過程中,是一個整型值。一般只在0和1之間變化,但在方法聲明為可重入時也有可能出現(xiàn)1以上的值。容器類在進行鈍化操作時要訪問此成員域,若值不為0則鈍化操作要推遲進行;狀態(tài)復制下來之后,狀態(tài)復制器將狀態(tài)信息發(fā)送到狀態(tài)同步器,狀態(tài)同步器將該節(jié)點的狀態(tài)信息同步到其它可用節(jié)點上;狀態(tài)的復制是較為復雜的過程,其用到了底層的通訊框架,當前服務器要進行再生時,首先設置檢查點以中斷EJB請求的接受,然后當前處理的細粒度方法調用結束后(一個業(yè)務調用可能由很多組方法調用組成,當前正在執(zhí)行的方法調用結束后,并不意味著應用服務器不再保存任何狀態(tài)信息,而是當前處理結束后的狀態(tài),很有可能被用到下一次方法調用中去。這也是為什么要使用有狀態(tài)會話Bean的原因所在,之所以使用有狀態(tài)會話Bean,就是考慮到一次業(yè)務調用可能由多次的方法調用組成,使用有狀態(tài)會話bean可以保持狀態(tài),從而避免了多次建立網絡連接,減小網絡消耗。正是由于狀態(tài)信息的存在,才需要進行狀態(tài)復制),將當前服務器狀態(tài)傳遞給底層的通訊框架,該通訊框架中存在一個名為ReplicationManager的一個模塊,專門負責同步各個節(jié)點的狀態(tài)信息。當要進行再生的節(jié)點將狀態(tài)信息傳遞到復制管理器時,該模塊會進行一次全局的狀態(tài)同步,從而將狀態(tài)信息的改變同步到其余所有應用服務器節(jié)點,這樣就達到了各個節(jié)點的狀態(tài)同步。
同理,在需要將另外應用服務器節(jié)點的最新狀態(tài)信息重新復制到再生的服務器節(jié)點時,也要通過復制管理器的狀態(tài)同步來實現(xiàn)狀態(tài)的遷移;狀態(tài)同步結束后,通知再生管理器進行再生;再生管理器調用相關接口對該節(jié)點進行再生。調用本地OS的API,重新啟動計算機。調用本地操作系統(tǒng)的Windows API——ExitWindowsEx(UINTuFlags,DWORD dwReserved)對節(jié)點重啟;再生后的節(jié)點需要與其它可用節(jié)點進行同步狀態(tài);系統(tǒng)重啟成功時,應用服務器作為一項應用隨之也自動重啟。將應用服務器作為Windows的一項服務,當計算機重新啟動時,應用服務器隨之啟動,并作為系統(tǒng)的一個節(jié)點重新加入到集群中來,同時與其他節(jié)點同步,將當前備份節(jié)點(已經是主節(jié)點)的最新狀態(tài)復制到本地節(jié)點;將接受了復制狀態(tài)的節(jié)點的最新狀態(tài)信息通過狀態(tài)復制重新復制到發(fā)生再生的應用服務器節(jié)點,請求轉發(fā)器與狀態(tài)監(jiān)測器得到通知開始工作,重新接受EJB請求。
權利要求
1.集群環(huán)境下的應用服務器的系統(tǒng)再生方法,其特征在于1)首先通過老化建模檢測當前服務器的節(jié)點是否老化,若當前服務器的節(jié)點已經老化則將此節(jié)點的當前操作設置為檢查點,并通過狀態(tài)復制操作確定當前正在處理的EJB請求的當前服務器節(jié)點的狀態(tài)信息,將該節(jié)點的狀態(tài)信息置為不可用,客戶端得到通知該節(jié)點處于不可用狀態(tài),不再向該節(jié)點發(fā)送請求,此節(jié)點不再接收新的EJB請求,僅有狀態(tài)會話bean和實體bean才有狀態(tài)信息;2)通過EnterpriseContext保持此節(jié)點的狀態(tài)信息并將節(jié)點的狀態(tài)信息復制到另一個可用備份節(jié)點;狀態(tài)復制過程如下首先狀態(tài)復制器將此節(jié)點的狀態(tài)信息傳遞給應用服務器底層的通訊框架,該通訊框架中的ReplicationManager模塊同步各個節(jié)點的狀態(tài)信息,當要進行再生的節(jié)點將狀態(tài)信息傳遞到ReplicationManager模塊時,ReplicationManager模塊會將狀態(tài)信息的改變同步到其余所有應用服務器節(jié)點,使各個節(jié)點的狀態(tài)同步;3)此節(jié)點調用本地操作系統(tǒng)的Windows API——ExitWindowsEx(UINTuFlags,DWORD dwReserved)對該節(jié)點重啟;4)應用服務器被配置成為Windows的一項服務,當計算機重新啟動時,應用服務器隨之啟動,并作為系統(tǒng)的一個節(jié)點重新加入到集群中來,同時與其他節(jié)點同步,將當前備份節(jié)點的最新狀態(tài)復制到本地節(jié)點;5)接受了復制狀態(tài)信息節(jié)點的最新狀態(tài)信息通過狀態(tài)復制重新復制到發(fā)生再生的應用服務器節(jié)點,此應用服務器重新接受EJB請求。
全文摘要
集群環(huán)境下的應用服務器的系統(tǒng)再生方法,通過老化建模檢測當前服務器的節(jié)點是否老化,若已老化將此節(jié)點的設置為檢查點,并通過狀態(tài)復制操作確定當前正在處理的EJB請求的當前服務器節(jié)點的狀態(tài)信息,并將節(jié)點的狀態(tài)信息復制到另一個服務器的可用備份節(jié)點;該服務器調用本地操作系統(tǒng)的Windows API——ExitWindowsEx對服務器的節(jié)點重啟;重啟后重新加入到集群中來,同時與其他節(jié)點同步,將當前備份節(jié)點的最新狀態(tài)復制到本地節(jié)點;此應用服務器重新接受EJB請求。本發(fā)明的再生主動停止程序運行,清理應用服務器的內部環(huán)境,使重啟后的應用服務器進入一個正常的初始狀態(tài),從而避免因軟件老化引起的突發(fā)性失效,有效的提高了應用服務器的可靠性和可用性。
文檔編號G06F11/36GK1766844SQ20051009606
公開日2006年5月3日 申請日期2005年9月26日 優(yōu)先權日2005年9月26日
發(fā)明者齊勇, 郗旻, 張霞, 趙天海, 趙季中, 侯迪 申請人:西安交通大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1