專利名稱:用于故障解決的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)和網(wǎng)絡(luò)結(jié)構(gòu),并且更特別涉及用于故障解決(failover)的方法和系統(tǒng)。
背景技術(shù):
社會(huì)越來越依賴于計(jì)算機(jī)和網(wǎng)絡(luò)來交互以及進(jìn)行商業(yè)活動(dòng)。為了實(shí)現(xiàn)關(guān)鍵系統(tǒng)中要求的高級(jí)別可用性,應(yīng)當(dāng)最小化由軟件和硬件缺陷引起的計(jì)劃外的停機(jī)時(shí)間。金融服務(wù)行業(yè)僅僅是要求較高可用性的系統(tǒng)的行業(yè)的一個(gè)例子。實(shí)際上,當(dāng)今金融行業(yè)中的很多數(shù)據(jù)處理活動(dòng)由計(jì)算機(jī)系統(tǒng)支持。尤其有趣的是所謂的“實(shí)時(shí)”和“準(zhǔn)實(shí)時(shí)”在線事務(wù)處理(OLTP)應(yīng)用,其典型地在延長的周期內(nèi)以高速度和低等待時(shí)間處理很多商業(yè)事務(wù)。除了它們的高速執(zhí)行之外,這些應(yīng)用通常還具有以下特性(1)復(fù)雜數(shù)據(jù)處理,(2)可靠的非易失性數(shù)據(jù)存儲(chǔ),以及(3)高級(jí)別可用性,即,在基本上無中斷的基礎(chǔ)上支持服務(wù)的能力。然而,當(dāng)實(shí)現(xiàn)時(shí),現(xiàn)有的應(yīng)用傾向于在這些性能要求之間折衷,因?yàn)?,由于它們?duì)系統(tǒng)行為的矛盾作用,沒有設(shè)計(jì)能夠同時(shí)完全滿足全部的三種特性,如下面更詳細(xì)概括的。首先,復(fù)雜數(shù)據(jù)處理是指以及時(shí)的方式執(zhí)行大量計(jì)算、數(shù)據(jù)庫檢索/更新等等的能力。這可以通過并行處理來實(shí)現(xiàn),其中多個(gè)工作單元在同一物理機(jī)器或者在分布式網(wǎng)絡(luò)上同時(shí)執(zhí)行。在一些系統(tǒng)中,每個(gè)事務(wù)的結(jié)果取決于先前完成的事務(wù)的結(jié)果。這樣的系統(tǒng)的并行方面本質(zhì)上是非確定性的因?yàn)楦偁帡l件、操作系統(tǒng)調(diào)度任務(wù)、或者各種網(wǎng)絡(luò)延遲,線程執(zhí)行的序列不能預(yù)知。非確定性的系統(tǒng)具有不相同的輸出,因此它們不會(huì)以在故障時(shí)讓一個(gè)機(jī)器替代另一個(gè)為目的而在兩個(gè)不同的計(jì)算機(jī)器上并行運(yùn)行。第二,可靠的非易失性數(shù)據(jù)存儲(chǔ)器指即使很多系統(tǒng)的軟件或硬件部件經(jīng)歷意外的故障,也持久地存儲(chǔ)處理的數(shù)據(jù)的能力。這通??梢酝ㄟ^在訪問或修改共享的數(shù)據(jù)時(shí)使用原子的、一致的、孤立的和耐久的(“ACID”)事務(wù)來實(shí)現(xiàn)。工作的一個(gè)單元一旦完成,ACID事務(wù)就可以確保數(shù)據(jù)的完整性和永久性。每個(gè)交付(commit)的ACID事務(wù)被寫入非易失性計(jì)算機(jī)存儲(chǔ)器(硬盤)中,其幫助確保數(shù)據(jù)的耐久性,但是就性能方面而言,它代價(jià)非常大,并且通常使整個(gè)系統(tǒng)慢下來。第三,高度可用性的系統(tǒng)試圖確保給定計(jì)算機(jī)系統(tǒng)的可用百分比盡可能接近100%的時(shí)間。這種有用性可以通過冗余的軟件和/或硬件來實(shí)現(xiàn),其在檢測到元件故障的情況下接管功能。為了成功,故障解決不僅復(fù)制數(shù)據(jù),還復(fù)制進(jìn)程狀態(tài)。本領(lǐng)域的技術(shù)人員將會(huì)理解,在非確定性系統(tǒng)(即,其中取決于同一組事件的處理順序,那些事件的計(jì)算處理可以具有一個(gè)以上的結(jié)果的系統(tǒng),)中狀態(tài)復(fù)制可能是特別有挑戰(zhàn)性的。高度可用性的軟件應(yīng)用通常在冗余環(huán)境上配置,以減少和/或消除通常與基礎(chǔ)硬件相關(guān)聯(lián)的單點(diǎn)故障。已知兩種常用的解決方案,熱式(heat)故障解決和暖式(warm)故障解決。熱式故障解決指在多個(gè)系統(tǒng)中同時(shí)處理相同的輸入,如果在這些系統(tǒng)中的一個(gè)系統(tǒng)中發(fā)生故障,基本上提供完全的冗余。暖式故障解決指在備份系統(tǒng)中復(fù)制應(yīng)用的狀態(tài)(即,數(shù)據(jù)),在備份系統(tǒng)中不處理數(shù)據(jù),但是具有能夠處理裝載的數(shù)據(jù)并且如果主系統(tǒng)發(fā)生故障時(shí)準(zhǔn)備行動(dòng)的應(yīng)用。冷式故障解決,其并不被很多人看作是高度可用性的一種形式,指的是僅僅給備份系統(tǒng)上電并且使備份系統(tǒng)準(zhǔn)備好以從主系統(tǒng)承擔(dān)處理職責(zé)。在熱式故障解決配置中,應(yīng)用的兩個(gè)實(shí)例同時(shí)運(yùn)行在兩個(gè)不同的硬件設(shè)備上,處理相同輸入的拷貝。如果它們中的一個(gè)經(jīng)歷了致命性故障,則輔助的同步系統(tǒng)可以確保另一個(gè)將繼續(xù)支持工作負(fù)荷。在暖式故障解決配置中,被指配為主的一個(gè)系統(tǒng)運(yùn)行應(yīng)用;如果發(fā)生故障,則被指配為備份的、正在備用狀態(tài)等待的第二系統(tǒng)將“蘇醒”,接管并恢復(fù)功能。熱式故障解決解決方案具有兩個(gè)缺點(diǎn)。第一,因?yàn)閮蓚€(gè)系統(tǒng)是相同的,軟件缺陷將使得它們同時(shí)都發(fā)生故障,并且第二輔助軟件必須運(yùn)行以保持兩個(gè)系統(tǒng)同步。如果是非確定性系統(tǒng),則該同步努力可以導(dǎo)致不可接受的(或者另外不希望有的)性能降低以及導(dǎo)致其中必須保證事件的到達(dá)順序相同的復(fù)雜度。而且,在這種應(yīng)用中使用的協(xié)作系統(tǒng)通常允許同時(shí)執(zhí)行多個(gè)線程,因此它們本質(zhì)上是非確定性的。同時(shí)非確定性是該系統(tǒng)具有服務(wù)器和在地理上分布的客戶,其中可變的網(wǎng)絡(luò)延遲將消息以不可預(yù)知的序列遞送到服務(wù)器。暖式故障解決可被用來克服熱式故障解決的某些問題。暖式故障解決可以是通過復(fù)制系統(tǒng)數(shù)據(jù)到冗余的、備份系統(tǒng),且然后將應(yīng)用功能恢復(fù)到第二系統(tǒng)來實(shí)現(xiàn)非確定性系統(tǒng)的故障解決的另一種方式。該方法在恢復(fù)數(shù)據(jù)到一致狀態(tài),然后將應(yīng)用帶到功能狀態(tài),并且最后將應(yīng)用返回到它停止處理的點(diǎn)所需要的時(shí)間方面有它的缺點(diǎn)。該處理通?;ㄙM(fèi)數(shù)小時(shí),需要人工干預(yù),并且通常不能恢復(fù)飛行中(in-flight)的事務(wù)。多個(gè)專利試圖解決上述問題中的至少某些。美國專利5,305,200提出對(duì)于在買方/賣方和經(jīng)銷商(市場做成者,market maker)之間的協(xié)商貿(mào)易情景中的通信,什么基本上是非否認(rèn)機(jī)制。如果故障發(fā)生,則提供冗余來確保非否認(rèn)機(jī)制起作用。它沒有解決非確定性環(huán)境中在線事務(wù)應(yīng)用的故障解決。簡單地說,美國專利5,305,200把注意力放在經(jīng)歷網(wǎng)絡(luò)故障后,為問題“訂單發(fā)送與否?”提供明確的答案。美國專利5,381,545提出一種(在數(shù)據(jù)庫中)備份存儲(chǔ)的數(shù)據(jù)同時(shí)仍然更新數(shù)據(jù)的技術(shù)。美國專利5,987,432針對(duì)用于為區(qū)域性分銷匯編全球范圍金融市場數(shù)據(jù)的容錯(cuò)市場數(shù)據(jù)股票行情自動(dòng)收錄器系統(tǒng)(market data ticker plant system)。這是確定性環(huán)境,并且該解決方案聚焦于給顧客提供無中斷的單向數(shù)據(jù)流。美國專利6,154,847提供通過組合常規(guī)非易失性存儲(chǔ)器上的事務(wù)日志與易失性存儲(chǔ)器中的事務(wù)列表來使事務(wù)回退恢復(fù)原狀的改進(jìn)方法。美國專利6,199,055提出了一種通過不安全的通信鏈路來進(jìn)行系統(tǒng)和便攜式處理器之間的分布式事務(wù)的方法。美國專利6,199,055研究認(rèn)證,以確保與遠(yuǎn)程設(shè)備的完整事務(wù),并且如果發(fā)生故障,則應(yīng)對(duì)遠(yuǎn)程設(shè)備的重置??傊?,前述專利沒有解決在非確定性環(huán)境中在線事務(wù)應(yīng)用的故障解決。美國專利6,202,149提出了一種用于自動(dòng)地重新分布任務(wù)以降低計(jì)算機(jī)停機(jī)的影響的方法和裝置。該裝置包括至少一個(gè)由一個(gè)或多個(gè)計(jì)算系統(tǒng)組成的冗余組,其中計(jì)算系統(tǒng)本身進(jìn)而是由一個(gè)或多個(gè)計(jì)算分區(qū)組成的。所述分區(qū)包括在每個(gè)計(jì)算系統(tǒng)分區(qū)處復(fù)制的數(shù)據(jù)庫模式(database schema)的拷貝。冗余組監(jiān)控計(jì)算系統(tǒng)和計(jì)算系統(tǒng)分區(qū)的狀態(tài),并且基于計(jì)算系統(tǒng)的監(jiān)控狀態(tài)指配任務(wù)給計(jì)算系統(tǒng)。美國專利6,202,149的一個(gè)問題在于它沒有講授當(dāng)備份系統(tǒng)承擔(dān)處理事務(wù)的職責(zé)時(shí),如何恢復(fù)工作流程,而是相反使它自己的注意力關(guān)注在效率低的和/或慢的整個(gè)數(shù)據(jù)庫的復(fù)制。此外,這樣的復(fù)制可以引起重要的事務(wù)信息在運(yùn)行中丟失,尤其是在主系統(tǒng)或者將主和備份系統(tǒng)互連的網(wǎng)絡(luò)發(fā)生故障期間,由此導(dǎo)致主和備份之間的不一致狀態(tài)。總之,美國專利6,202,149缺乏在處理在線事務(wù)等等中期望的某些特性,并且尤其缺乏故障解決非確定性系統(tǒng)所需要的特性。美國專利6,308,287提出了一種方法,用于檢測部件事務(wù)的故障、將它取消、可靠地存儲(chǔ)故障指示器以便于在系統(tǒng)故障后它是可恢復(fù)的,然后使該故障指示器可用于其它事務(wù)。它沒有解決非確定性環(huán)境下的事務(wù)應(yīng)用的故障解決。美國專利6,574,750提出了一種分布的、復(fù)制對(duì)象的系統(tǒng),其中所述對(duì)象是非確定性的。它提出了一種保證一致性并且在發(fā)生復(fù)制對(duì)象故障時(shí)限制回退恢復(fù)原狀的方法。描述了一種方法,其中對(duì)象接收一個(gè)進(jìn)入的客戶請(qǐng)求并且將請(qǐng)求ID與先前由該對(duì)象的復(fù)制品處理的所有請(qǐng)求的日志相比較。如果找到了一次匹配,則相關(guān)聯(lián)的響應(yīng)被返回給客戶。然而,該方法孤立地是不足以解決現(xiàn)有技術(shù)中的各種問題的。另一個(gè)問題是美國專利6,575,750的方法采用了同步調(diào)用鏈,其對(duì)于高性能的在線事務(wù)處理(“OLTP”)應(yīng)用是不合適的。對(duì)于同步調(diào)用,客戶會(huì)在繼續(xù)之前等待答復(fù)或者超時(shí)。調(diào)用的對(duì)象進(jìn)而可以變成傳播同步調(diào)用(call)鏈的另一對(duì)象的客戶。結(jié)果可以是大量的同步操作,阻塞客戶處理并且需要在始發(fā)客戶中配置長的超時(shí)。盡管前述專利刻畫了容錯(cuò)和可恢復(fù)性的某些方面的特征,但是它們沒有解決對(duì)用于在線事務(wù)處理的非確定性系統(tǒng),將應(yīng)用進(jìn)行故障解決而到一個(gè)單獨(dú)的系統(tǒng)的概念。
發(fā)明概述本發(fā)明的目的是提供一種用于消除或減輕至少一個(gè)上面確定的現(xiàn)有技術(shù)缺點(diǎn)的故障解決的新系統(tǒng)和方法。根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于故障解決的系統(tǒng),包括至少一個(gè)客戶,其選擇性地經(jīng)由網(wǎng)絡(luò)連接可連接到主服務(wù)器和至少一個(gè)備份服務(wù)器中的至少一個(gè)。主服務(wù)器和備份服務(wù)器在正常狀態(tài)下可以彼此連接,在正常狀態(tài)期間,主服務(wù)器處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志,并且在正常狀態(tài)期間,備份服務(wù)器可操作來維持事務(wù)日志的鏡像。事務(wù)日志被周期性地清洗(flush)到每個(gè)服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備。當(dāng)備份服務(wù)器不可用時(shí),客戶在僅有主服務(wù)器狀態(tài)下只被連接到主服務(wù)器。同時(shí),主服務(wù)器處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志。在每個(gè)消息被處理之后,主服務(wù)器事務(wù)日志被清洗到主服務(wù)器非易失性存儲(chǔ)器設(shè)備。當(dāng)主服務(wù)器不可用時(shí),客戶在僅有備份服務(wù)器狀態(tài)下只被連接到備份服務(wù)器。同時(shí),備份服務(wù)器最初恢復(fù)主服務(wù)器的最后已知狀態(tài),處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的備份服務(wù)器事務(wù)日志。在每個(gè)消息被處理之后,在每個(gè)所述消息被處理之后,立刻將事務(wù)日志清洗到備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。在本發(fā)明的另一方面中,用于故障解決的系統(tǒng)包括經(jīng)由至少一個(gè)網(wǎng)絡(luò)連接互連的至少一個(gè)客戶、主服務(wù)器和至少一個(gè)備份服務(wù)器。主服務(wù)器和備份服務(wù)器每個(gè)執(zhí)行用于處理從客戶接收的消息的應(yīng)用、在隨機(jī)存取存儲(chǔ)器中維持事務(wù)日志、執(zhí)行復(fù)制代理并且執(zhí)行檢驗(yàn)點(diǎn)代理以將事務(wù)日志清洗到每個(gè)所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備。在本發(fā)明的這個(gè)方面中,系統(tǒng)具有三個(gè)不同的狀態(tài)正常狀態(tài)、僅有主服務(wù)器狀態(tài)以及僅有備份服務(wù)器狀態(tài)。在正常狀態(tài)期間,只有主服務(wù)器應(yīng)用處理消息并將其結(jié)果寫到主服務(wù)器事務(wù)日志,并且復(fù)制代理可操作來將主服務(wù)器事務(wù)日志鏡像到備份服務(wù)器事務(wù)日志并且根據(jù)預(yù)定的準(zhǔn)則清洗每個(gè)事務(wù)日志。在僅有主服務(wù)器狀態(tài)期間,主服務(wù)器應(yīng)用處理消息并且將結(jié)果寫到主服務(wù)器事務(wù)日志并且同時(shí)事務(wù)日志被清洗到主服務(wù)器非易失性存儲(chǔ)器設(shè)備。在僅有備份服務(wù)器狀態(tài)期間,僅僅備份服務(wù)器應(yīng)用處理消息并將其結(jié)果寫到備份服務(wù)器事務(wù)日志并且同時(shí)備份服務(wù)器事務(wù)日志被清洗到備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。在本發(fā)明的另一方面中,客戶在正常狀態(tài)下被連接到耦合至備份服務(wù)器的主服務(wù)器,在此期間,主服務(wù)器處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志。同時(shí),備份服務(wù)器可操作來維持事務(wù)日志的鏡像并且事務(wù)日志被周期性地清洗到每個(gè)服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備。然而,當(dāng)備份服務(wù)器不可用時(shí),客戶只可連接到主服務(wù)器。在這時(shí),主服務(wù)器處理來自客戶的消息,并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志。同時(shí),在每個(gè)消息被處理之后,主服務(wù)器事務(wù)日志被清洗到主服務(wù)器非易失性存儲(chǔ)器設(shè)備。另一方面,當(dāng)主服務(wù)器不可用時(shí),客戶只被連接到備份服務(wù)器,在此期間,所述備份服務(wù)器最初是恢復(fù)所述主服務(wù)器的最后已知狀態(tài),然后處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的所述備份服務(wù)器事務(wù)日志。同時(shí),在每個(gè)消息被處理之后,事務(wù)日志立刻被清洗到備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。在本發(fā)明的又一方面中,當(dāng)兩種服務(wù)器都可用時(shí),客戶被連接到耦合至備份服務(wù)器的主服務(wù)器。在此期間,主服務(wù)器處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志。同時(shí),備份服務(wù)器可操作來維持事務(wù)日志的鏡像并且事務(wù)日志被周期性地清洗到每個(gè)服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備。當(dāng)一種服務(wù)器(即,主服務(wù)器或者備份服務(wù)器)不可用時(shí),客戶可被連接到可用的服務(wù)器,在此期間,可用的服務(wù)器處理來自客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)消息各自的事務(wù)日志。同時(shí),在每個(gè)所述消息被處理之后,可用的服務(wù)器事務(wù)日志被清洗到其各自的非易失性存儲(chǔ)器設(shè)備。在本發(fā)明的又一方面中,至少一個(gè)客戶可被連接到多個(gè)可互連的服務(wù)器。每個(gè)服務(wù)器可操作來處理來自客戶的消息并且維持關(guān)于存儲(chǔ)在易失性存儲(chǔ)器中的事務(wù)日志中的消息的事務(wù)記錄。每個(gè)服務(wù)器還可操作來在每個(gè)消息被處理之后將事務(wù)日志清洗到服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備,其中當(dāng)一個(gè)以上的服務(wù)器可用時(shí),則僅僅其中一個(gè)服務(wù)器處理消息并且其余服務(wù)器維持事務(wù)日志的鏡像。事務(wù)日志在周期基礎(chǔ)上被清洗,并且其中當(dāng)僅僅一個(gè)服務(wù)器可用時(shí),則事務(wù)日志比所述周期基礎(chǔ)更頻繁地被清洗。在提供的本發(fā)明的另一方面中,用于操作故障解決系統(tǒng)的方法包括步驟在主服務(wù)器處接收來自客戶的請(qǐng)求;在所述主服務(wù)器處,將所述請(qǐng)求作為至少一個(gè)事務(wù)來處理;在所述主服務(wù)器的易失性存儲(chǔ)器中保存所述至少一個(gè)事務(wù)各自的事務(wù)記錄;在所述主服務(wù)器處產(chǎn)生請(qǐng)求以交付所述事務(wù);將所述事務(wù)記錄鏡像到所述備份服務(wù)器的易失性存儲(chǔ)器中;以及如果所述鏡像被成功確認(rèn),在所述主服務(wù)器中應(yīng)答所述交付請(qǐng)求。
附圖簡述現(xiàn)在僅以實(shí)例的方式,并且參考附圖描述本發(fā)明,其中
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例用于故障解決的系統(tǒng)的示意表示;圖2示出了在正常狀態(tài)下的圖1的系統(tǒng)并且包括在圖1的服務(wù)器上執(zhí)行的各種軟件部件的示范細(xì)節(jié);圖3示出了描繪根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于處理請(qǐng)求的方法的流程圖;圖4示出了在圖3方法中的某些步驟操作期間圖2的系統(tǒng);圖5示出了與通過使用圖1的系統(tǒng)處理消息相關(guān)聯(lián)的工作流程;圖6示出了在圖3方法中的某些步驟操作期間圖2的系統(tǒng);圖7示出了在圖3方法中的某些步驟操作期間圖2的系統(tǒng);圖8示出了在圖3方法中的某些步驟操作期間圖2的系統(tǒng);圖9示出了在僅有主服務(wù)器狀態(tài)下圖1的系統(tǒng)并且包括在圖1的服務(wù)器上執(zhí)行的各種軟件元件的示范細(xì)節(jié);圖10示出了描繪根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于處理請(qǐng)求的方法的流程圖;圖11示出了在僅有備份服務(wù)器狀態(tài)下的圖1的系統(tǒng)并且包括在圖1的服務(wù)器上執(zhí)行的各種軟件部件的示范細(xì)節(jié);圖12示出了描繪根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于處理請(qǐng)求的方法的流程圖;圖13示出了描繪可用于執(zhí)行圖11中示出步驟之一的一組子步驟的流程圖;圖14示出了描繪根據(jù)本發(fā)明的另一個(gè)實(shí)施例將客戶從主服務(wù)器切換到備份服務(wù)器的方法的流程圖;圖15示出了描繪可用于執(zhí)行在圖3、10、或12的方法中示出的接收步驟的一組子步驟的流程圖;以及圖16示出了描繪可用于執(zhí)行在圖3的方法中示出的鏡像記錄步驟的一組子步驟的流程圖。
發(fā)明詳述現(xiàn)在參考圖1,總地以50指示用于故障解決的系統(tǒng)。系統(tǒng)50包括多個(gè)遠(yuǎn)程客戶541,542,...,54n(這里一般稱為“客戶54”并且共同稱為“客戶54”),其所有都被連接到網(wǎng)絡(luò)58。網(wǎng)絡(luò)58可以是任何類型的計(jì)算網(wǎng)絡(luò),諸如互聯(lián)網(wǎng)、局域網(wǎng)、廣域網(wǎng)或者它們的組合。反過來,網(wǎng)絡(luò)58被連接到主服務(wù)器62以及至少一個(gè)備份服務(wù)器70。因此,客戶54每個(gè)可以經(jīng)由網(wǎng)絡(luò)58與服務(wù)器62和服務(wù)器70通信,這將在下面更詳細(xì)地討論??蛻?4每個(gè)屬于個(gè)體或?qū)嶓w,其使用它們各自的客戶54來提交請(qǐng)求給主服務(wù)器62。每個(gè)客戶54典型地是一個(gè)計(jì)算設(shè)備,諸如是個(gè)人計(jì)算機(jī),其具有鍵盤和鼠標(biāo)(或其它輸入設(shè)備)、顯示器(或其它輸出設(shè)備)和桌上型模塊,該模塊連接鍵盤、鼠標(biāo)和顯示器并且容納一個(gè)或多個(gè)中央處理單元、易失性存儲(chǔ)器(即,隨機(jī)存取存儲(chǔ)器)、非易失性存儲(chǔ)器(即,硬盤設(shè)備)和允許客戶54通過網(wǎng)絡(luò)58通信的網(wǎng)絡(luò)接口的。然而,應(yīng)當(dāng)理解客戶54可以是任何類型的計(jì)算設(shè)備,諸如個(gè)人數(shù)字助理、蜂窩電話、膝上型計(jì)算機(jī)、電子郵件尋呼設(shè)備等等。主服務(wù)器62可以是任何類型的計(jì)算設(shè)備,其可操作來接收并處理來自客戶54的消息,諸如來自Palo Alto California的SunMicrosystems Inc.、運(yùn)行UNIX操作系統(tǒng)的Sun Fire V480,其具有每個(gè)操作在大約900兆赫茲的四個(gè)中央處理單元并且具有大約4G字節(jié)的隨機(jī)存取存儲(chǔ)器。然而,應(yīng)當(dāng)強(qiáng)調(diào)這種特別的服務(wù)器僅僅是示范性的,大批用于主服務(wù)器62的其它類型的計(jì)算環(huán)境也在本發(fā)明的范圍內(nèi)。主服務(wù)器62接收和處理的消息類型沒有特殊限定,但是在本實(shí)施例中,服務(wù)器62操作在線交易系統(tǒng),并且因此能夠處理包括對(duì)可以在線交易的購買、出售、取消證券等的請(qǐng)求的消息。更具體地,服務(wù)器62可操作來維持中央機(jī)器引擎,在那里相對(duì)彼此并且相對(duì)訂單的中央儲(chǔ)存庫來執(zhí)行請(qǐng)求,以由此處理證券的交易。主服務(wù)器62還被連接到主非易失性存儲(chǔ)器66,其為主服務(wù)器62維持與其請(qǐng)求和處理相關(guān)聯(lián)的所有非易失性數(shù)據(jù)。備份服務(wù)器70典型地具有與主服務(wù)器62相同的(或者基本上相同的)計(jì)算環(huán)境。更具體地,備份服務(wù)器70的計(jì)算環(huán)境,包括它的硬件、操作系統(tǒng)、應(yīng)用等等,將使得備份服務(wù)器70可操作來在主服務(wù)器62故障時(shí)完全替代主服務(wù)器62的功能。因此,備份服務(wù)器70還被連接到備份非易失性存儲(chǔ)器74,其為備份服務(wù)器70維持與其請(qǐng)求和處理相關(guān)聯(lián)的所有非易失性數(shù)據(jù)。系統(tǒng)50還包括使主服務(wù)器62和備份服務(wù)器70互連的復(fù)制鏈路78。在本實(shí)施例中,復(fù)制鏈路78本身包括主鏈路82和故障保險(xiǎn)鏈路86以在主服務(wù)器62和備份服務(wù)器70之間的通信中提供更大的魯棒性。關(guān)于主服務(wù)器62、備份服務(wù)器70和復(fù)制鏈路78、以及可用于實(shí)現(xiàn)服務(wù)器62和70的各種類型硬件的擴(kuò)展的進(jìn)一步細(xì)節(jié)將在下面的討論中變得明顯?,F(xiàn)在參考圖2,更詳細(xì)地示出了系統(tǒng)50的服務(wù)器62和70。同樣重要的,與圖1中表示系統(tǒng)50的各種部件之間的物理連接的實(shí)線連接形成對(duì)比,圖2中的各種連接以虛線示出,以表示系統(tǒng)50中各種部件之間的虛連接。這樣,圖2中示出的這種連接意欲表示系統(tǒng)50在正常狀態(tài)下操作,藉此主服務(wù)器62和備份服務(wù)器70都是能使用的,主服務(wù)器62為來自客戶54的請(qǐng)求服務(wù)。關(guān)于這種狀態(tài)以及其中系統(tǒng)50能夠操作的其它狀態(tài)的進(jìn)一步細(xì)節(jié)將在下面提供。仍參考圖2,主服務(wù)器62和備份服務(wù)器70,每個(gè)包括在它們各自的硬件環(huán)境上執(zhí)行的多個(gè)軟件部件以提供故障解決功能。更具體地,主服務(wù)器62包括至少一個(gè)接收并處理來自各種客戶54的請(qǐng)求的應(yīng)用進(jìn)程APP。因此應(yīng)用進(jìn)程APP可以是可期望其提供故障解決保護(hù)的任何類型的應(yīng)用。利用同樣的標(biāo)記(token),備份服務(wù)器70也包括應(yīng)用進(jìn)程APB,其在圖2中示出的正常狀態(tài)下正在備份服務(wù)器70上“暖式”執(zhí)行,因?yàn)閼?yīng)用進(jìn)程APB是準(zhǔn)備好并且可用于接收并處理來自客戶54的請(qǐng)求的,但是在圖2中描繪的正常狀態(tài)下,應(yīng)用進(jìn)程APB并沒有執(zhí)行這樣的請(qǐng)求的接收和處理。主服務(wù)器62還包括事務(wù)日志TLP,其在本實(shí)施例中位于主服務(wù)器62的易失性存儲(chǔ)器(即,隨機(jī)存取存儲(chǔ)器)中。由應(yīng)用進(jìn)程APP處理的請(qǐng)求作為離散ACID事務(wù)的序列被執(zhí)行。因此,在通過應(yīng)用進(jìn)程APP執(zhí)行事務(wù)期間,事務(wù)的細(xì)節(jié)被準(zhǔn)備成事務(wù)記錄,其被寫入到事務(wù)日志TLP。事務(wù)的細(xì)節(jié)通常包括對(duì)數(shù)據(jù)庫表和隊(duì)列進(jìn)行的改變,該數(shù)據(jù)庫表和隊(duì)列被用于跟蹤請(qǐng)求以及另外有助于系統(tǒng)50執(zhí)行的處理。事務(wù)日志TLP還連接到檢驗(yàn)點(diǎn)代理CAP,其反過來連接到主非易失性存儲(chǔ)器66。事務(wù)日志TLP和檢驗(yàn)點(diǎn)代理CAP協(xié)作以周期性地將事務(wù)日志TLP的內(nèi)容清洗到主非易失性存儲(chǔ)器66。確定何時(shí)將事務(wù)日志TLP的內(nèi)容清洗(即,保存)到主非易失性存儲(chǔ)器66的準(zhǔn)則取決于系統(tǒng)50正在操作的狀態(tài)。在圖2中示出的正常狀態(tài)中,以變化的間隔來執(zhí)行事務(wù)日志TLP到主非易失性存儲(chǔ)器66的清洗。這樣的間隔可以基于任何期望的準(zhǔn)則,諸如在固定的時(shí)間間隔上,或者當(dāng)接收了預(yù)先確定個(gè)數(shù)的事務(wù)記錄時(shí),或者當(dāng)隨機(jī)存取存儲(chǔ)器需要被釋放用于其它目的時(shí)。在系統(tǒng)50的其它狀態(tài)中,諸如當(dāng)主系統(tǒng)62能使用、但是備份系統(tǒng)70故障時(shí),則在由應(yīng)用進(jìn)程APP處理的每個(gè)事務(wù)之后執(zhí)行事務(wù)日志TLP到主非易失性存儲(chǔ)器66的清洗。主服務(wù)器62還包括也被連接到事務(wù)日志TLP的復(fù)制代理RAP。備份服務(wù)器70還包括與同樣位于備份服務(wù)器70中的備份事務(wù)日志TLB通信的復(fù)制代理RAB。反過來,備份事務(wù)日志TLB連接到它自己的檢驗(yàn)點(diǎn)代理CAB。類似于事務(wù)日志TLP和檢驗(yàn)點(diǎn)代理CAP,事務(wù)日志TLB和檢驗(yàn)點(diǎn)代理CAB協(xié)作以周期性地將事務(wù)日志TLB的內(nèi)容清洗到備份非易失性存儲(chǔ)器74。因此,在圖2中的系統(tǒng)50的正常狀態(tài)中,事務(wù)日志TLP、復(fù)制代理RAP、復(fù)制代理RAB和事務(wù)日志TLB協(xié)作以維持由應(yīng)用進(jìn)程APP交付的事務(wù)的復(fù)制或鏡像拷貝,并且還協(xié)作來周期性地將那些事務(wù)的內(nèi)容清洗到非易失性存儲(chǔ)器66和非易失性存儲(chǔ)器74。主服務(wù)器62和備份服務(wù)器70每個(gè)還分別地包括一個(gè)主故障解決代理FAP和一個(gè)備份故障解決代理FAB。故障解決代理FAP和故障解決代理FAB可操作來周期性地測試鏈路78以及彼此的完整性。在本實(shí)施例中,故障解決代理FAP周期性地將?;?keep-alive)信號(hào)(例如,“你還在嗎?”)遞送給故障解決代理FAB,預(yù)期故障解決代理FAB周期性地響應(yīng)該信號(hào)(例如“是的,我還在”)。倘若這樣的請(qǐng)求由故障解決代理FAB響應(yīng),并且倘若主服務(wù)器62繼續(xù)正常操作,則系統(tǒng)50保持在圖2中所示的狀態(tài)中。因此,故障解決代理FAP還可操作來與應(yīng)用進(jìn)程APP通信以指示正常狀態(tài)有效。現(xiàn)在應(yīng)當(dāng)清楚,故障解決代理FAP、故障解決代理FAB、復(fù)制代理RAP和復(fù)制代理RAB可操作來利用主鏈路82和故障保險(xiǎn)鏈路86,這兩種鏈路一起適當(dāng)?shù)鼗蛘吡硗馊缢M匕ㄦ溌?8。以這種方式,只要主鏈路82和故障保險(xiǎn)鏈路86中的至少一個(gè)是能使用的,系統(tǒng)50就可以保持在正常狀態(tài)?,F(xiàn)在參考圖3,總地以200示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于在正常狀態(tài)期間處理請(qǐng)求的方法。為了幫助解釋該方法,假設(shè)方法200利用系統(tǒng)50操作。此外,方法200的以下討論將導(dǎo)致系統(tǒng)50以及它的各種部件的其它理解。然而,應(yīng)當(dāng)理解,系統(tǒng)50和/或方法200可以變化,并且不需要完全如這里結(jié)合彼此討論的那樣去工作,并且這樣的變化在本發(fā)明的范圍內(nèi)。因此,為了描述方法200的目的,假設(shè)系統(tǒng)50當(dāng)前處在圖2中所示的正常狀態(tài)下。首先開始于步驟210,接收消息。圖4示出了步驟210如何執(zhí)行的示例,客戶542產(chǎn)生消息M并且通過網(wǎng)絡(luò)58發(fā)送該消息,以便由應(yīng)用進(jìn)程APP接收。消息M可以具有任何期望的格式,但是為了解釋方法200的目的,表1示出了消息M的一個(gè)示例格式。
表1消息M的示例格式 因此,表1的字段1,“客戶ID”包含利用系統(tǒng)50的客戶542的地址或其它標(biāo)識(shí)符。在表1的示例中,客戶ID僅僅填充了數(shù)據(jù)“客戶542”,但是更典型地,客戶ID將包括用戶id,和/或客戶542的互聯(lián)網(wǎng)協(xié)議(“IP”)地址。表1的字段2,“消息ID”包含標(biāo)識(shí)符,用于允許系統(tǒng)50中的部件將來自客戶542的該特定消息與可能現(xiàn)在或者將來由客戶542產(chǎn)生的、來自客戶542的其它消息區(qū)分開來。典型地,消息ID是為由客戶542產(chǎn)生的每個(gè)消息而遞增的序列號(hào)。在表1的示例中,消息ID僅僅填充了數(shù)據(jù)“0001”。表1的字段3,“消息體”包含服務(wù)請(qǐng)求、或者另一種類型的請(qǐng)求或者可以由客戶54產(chǎn)生、用于由特定的應(yīng)用進(jìn)程APP處理的任何其它類型的信息。在表1的示例中,消息體僅僅填充了數(shù)據(jù)“X”以一般地表示這樣的消息。例如,當(dāng)應(yīng)用進(jìn)程APP用于處理金融事務(wù)時(shí),則“X”可以是購買或者出售特定項(xiàng)的請(qǐng)求。因此,消息M一旦被應(yīng)用進(jìn)程APP接收,方法200就前進(jìn)到步驟220,在該點(diǎn)消息體X以相應(yīng)于應(yīng)用進(jìn)程APP的設(shè)計(jì)的方式被處理。在本實(shí)施例中,消息體X包括一個(gè)請(qǐng)求,并且應(yīng)用進(jìn)程APP被配置成將該請(qǐng)求作為依次執(zhí)行的多個(gè)離散事務(wù)來處理。(然而,在其它實(shí)施例中,根據(jù)事務(wù)的處理是確定性的還是非確定性的,這樣的處理可以僅僅是以單個(gè)事務(wù)或者并行執(zhí)行的多個(gè)事務(wù)的形式)。因此,個(gè)別事務(wù)共同地包括完成消息請(qǐng)求的工作流程。工作流程的簡化示例通常在圖5中在90處表示。工作流程90示出了已經(jīng)作為多個(gè)離散事務(wù)T處理的消息M。反過來,每個(gè)事務(wù)T與位于易失性存儲(chǔ)器中的一個(gè)或多個(gè)數(shù)據(jù)庫表94相關(guān)聯(lián)。對(duì)表94的每次改變促成了特定事務(wù)T的事務(wù)記錄。每個(gè)事務(wù)T還與一個(gè)或多個(gè)持久隊(duì)列98以及一個(gè)或多個(gè)進(jìn)程102相關(guān)聯(lián)。持久隊(duì)列98被用于保留事務(wù)T的結(jié)果,以便由進(jìn)程102最終處理。進(jìn)程102共同形成應(yīng)用進(jìn)程APP。以這種方式,來自不同客戶54的多個(gè)消息M通過利用該配置,可以讓它們的請(qǐng)求同時(shí)被處理,因?yàn)閷?duì)于每個(gè)請(qǐng)求的個(gè)別事務(wù)T由應(yīng)用進(jìn)程APP執(zhí)行。然而,應(yīng)當(dāng)理解,工作流程90被簡化并且僅僅是示范性的,并且工作流程90構(gòu)造的方式?jīng)]有特別地限定。在步驟230,執(zhí)行來自步驟220的每個(gè)事務(wù)以便于與消息體X有關(guān)的處理整體被執(zhí)行。(應(yīng)當(dāng)指出,剩余的步驟230-270實(shí)際上是對(duì)與步驟220相關(guān)討論的每個(gè)個(gè)別事務(wù)執(zhí)行,但是剩余的討論集中在一個(gè)這樣的事務(wù)上,以便于不混淆實(shí)施例的描述。)因此,當(dāng)“X”代表購買定單時(shí),則應(yīng)用進(jìn)程APP將處理這樣的定單。這樣執(zhí)行了事務(wù)之后,產(chǎn)生交付該事務(wù)的請(qǐng)求。圖6示出了步驟230的這部分如何被執(zhí)行的示例,應(yīng)用進(jìn)程APP產(chǎn)生交付請(qǐng)求C并且發(fā)送該消息到事務(wù)日志TLP。在步驟240,與用于處理消息體X中的請(qǐng)求的每個(gè)事務(wù)、以及用于那些事務(wù)的交付請(qǐng)求C相關(guān)聯(lián)的變化作為記錄被寫到事務(wù)日志TLP。接下來,在步驟250,在步驟240寫入的記錄被復(fù)制或鏡像。圖7示出了步驟240可以如何被執(zhí)行的示例,交付請(qǐng)求C經(jīng)由復(fù)制代理RAP和RAB被傳遞到事務(wù)日志TLB。在步驟260,確認(rèn)復(fù)制。對(duì)于本實(shí)施例更具體地,根據(jù)交付請(qǐng)求C確認(rèn)事務(wù)日志TLP和事務(wù)日志TLB是否成功地被改變。如果在步驟260產(chǎn)生的回答是“是”,則方法200前進(jìn)到步驟270,在該點(diǎn)交付被應(yīng)答。圖8示出了步驟270可以如何被執(zhí)行以得到“是”的示例,其中復(fù)制代理RAB產(chǎn)生應(yīng)答A并且將該消息發(fā)送到復(fù)制代理RAP。在該點(diǎn)上,方法200從步驟270返回到步驟210并且方法200重新開始。然而,如果在步驟260復(fù)制不被確認(rèn),則方法200前進(jìn)到步驟280。這樣的故障可能以多種方式發(fā)生。例如,備份服務(wù)器70可以掉電或者經(jīng)歷一次崩潰,從而阻止在步驟250的實(shí)際復(fù)制或者至少在步驟260的關(guān)于它的確認(rèn)。在這種情況下,在步驟280,系統(tǒng)50切換到僅有主服務(wù)器狀態(tài),其在下面關(guān)于方法300中進(jìn)行討論。替代地,鏈路78可被斷掉,從而也阻止在步驟250的復(fù)制和/或在步驟260的關(guān)于它的確認(rèn),這也導(dǎo)致系統(tǒng)50切換到與方法300相關(guān)聯(lián)的僅有主服務(wù)器狀態(tài)。盡管多少不太可能,仍有另一種可能性是服務(wù)器62操作事務(wù)日志TLP的那部分故障,從而阻止事務(wù)日志TLP被更新,盡管服務(wù)器62的所有其它方面和系統(tǒng)50都正常運(yùn)行。在這種情況下,在步驟280,系統(tǒng)50切換到僅有備份服務(wù)器狀態(tài),其在下面關(guān)于方法400中進(jìn)行討論。(重要的,盡管這里沒有明確討論,現(xiàn)在應(yīng)當(dāng)能理解在步驟280可以調(diào)用其它類型的狀態(tài)。)與方法200的執(zhí)行同時(shí)發(fā)生,檢驗(yàn)點(diǎn)代理CAP以各種間隔將事務(wù)日志TLP的內(nèi)容清洗到非易失性存儲(chǔ)器66,而檢驗(yàn)點(diǎn)代理CAB周期性地將事務(wù)日志TLB的內(nèi)容清洗到非易失性存儲(chǔ)器74。應(yīng)當(dāng)指出,檢驗(yàn)點(diǎn)代理CA可以彼此獨(dú)立地執(zhí)行它們的功能,并且不需要同時(shí)清洗。檢驗(yàn)點(diǎn)代理CAB還基于事務(wù)日志TLB中的記錄周期性地更新備份服務(wù)器70中的所有表94和隊(duì)列98。這種清洗發(fā)生時(shí)的間隔不需要依賴于方法200的執(zhí)行,并且因此能夠基本獨(dú)立于方法200來執(zhí)行。間隔可以基于預(yù)設(shè)置的時(shí)間周期,或者保留在易失性存儲(chǔ)器中的預(yù)定義個(gè)數(shù)的事務(wù)記錄,或者甚至可以基于由每個(gè)事務(wù)日志TL占用的隨機(jī)存取存儲(chǔ)器的量以便于到非易失性存儲(chǔ)器的清洗是作為釋放這樣的隨機(jī)存取存儲(chǔ)器的手段來執(zhí)行的?,F(xiàn)在本領(lǐng)域的技術(shù)人員將想到用于清洗每個(gè)事務(wù)日志TL內(nèi)容的其它間隔和/或準(zhǔn)則?,F(xiàn)在參考圖9,更詳細(xì)地示出了系統(tǒng)50的服務(wù)器62和70,但是在圖9中,系統(tǒng)50被示出操作在僅有主服務(wù)器狀態(tài)。因此,圖9中的各種連接以虛線示出,以表示系統(tǒng)50中各種部件之間的虛連接。因此,在圖9中示出的這種連接意欲表示系統(tǒng)50操作在僅有主服務(wù)器狀態(tài),由此主服務(wù)器62是能使用的,但是其中由于備份服務(wù)器70的故障和/或由于鏈路78的故障,備份服務(wù)器70不可用。因此在圖9中,只有主服務(wù)器62為來自客戶54的請(qǐng)求服務(wù),并且不訪問備份服務(wù)器70的備份服務(wù)?,F(xiàn)在參考圖10,總地以300示出了一種根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于在僅有主服務(wù)器狀態(tài)下處理請(qǐng)求的方法。假設(shè)方法300利用系統(tǒng)50操作,并且方法300的以下討論將導(dǎo)致對(duì)系統(tǒng)50的進(jìn)一步理解,但是應(yīng)當(dāng)理解系統(tǒng)50和/或方法300可以變化。為了描述方法300的目的,假設(shè)系統(tǒng)50當(dāng)前在圖9中示出的僅有主服務(wù)器狀態(tài)中。通常,步驟310-330以與步驟210-230基本上相同的方式執(zhí)行。然而,在步驟340,方法300開始不同于方法200,因?yàn)槭聞?wù)記錄只寫到主事務(wù)日志TLP。在步驟350,在步驟340寫的事務(wù)日志TLP的變化立即由檢驗(yàn)點(diǎn)代理CAP清洗到非易失性存儲(chǔ)器66。在步驟360,在步驟330請(qǐng)求的交付被應(yīng)答,由此事務(wù)日志TLP將返回應(yīng)答到應(yīng)用進(jìn)程APP,以幾乎相同的方式在方法200的步驟270返回應(yīng)答,但是其中這樣的應(yīng)答不包括來自備份服務(wù)器70的任何應(yīng)答。接下來,在步驟370,確定關(guān)于備份服務(wù)器70是否已經(jīng)變成可用。步驟370典型地由故障解決代理FAP執(zhí)行,該故障解決代理FAP將試圖與故障解決代理FAB通信以了解現(xiàn)在鏈路78是不是活動(dòng)的和/或備份服務(wù)器70是否回到在線狀態(tài)。因此,如果在步驟370確定備份服務(wù)器70現(xiàn)在可用,則方法300前進(jìn)到步驟380,在該點(diǎn)上狀態(tài)被改變。更具體地,圖9中系統(tǒng)50的僅有主服務(wù)器狀態(tài)將改變到圖2中的系統(tǒng)50的正常狀態(tài)。在該點(diǎn),方法200可以開始操作以處理來自客戶54的消息。應(yīng)當(dāng)理解,對(duì)方法300的很多修改是可能的。具體地,應(yīng)當(dāng)指出,步驟370和380可以一起去除,有利于讓系統(tǒng)管理員(或操作系統(tǒng)50的其它IT專業(yè)人員)使系統(tǒng)50掉電并且然后使系統(tǒng)50起來(bringup),從而手工修改事務(wù)日志TL以及非易失性存儲(chǔ)器設(shè)備66和74以同步它們的狀態(tài)。替代地,如果使用步驟370,則應(yīng)當(dāng)理解在步驟380,優(yōu)選地,盡管不必要,在重新開始方法200之前,事務(wù)日志TL和非易失性存儲(chǔ)器設(shè)備66及77以自動(dòng)方式被同步?,F(xiàn)在參考圖11,更詳細(xì)地示出了系統(tǒng)50的服務(wù)器62和服務(wù)器70,但是在圖11中,系統(tǒng)50被示出操作在僅有備份服務(wù)器狀態(tài)。因此,圖11中的各種連接以虛線示出,以表示系統(tǒng)50中的各種部件之間的虛連接。因此,在圖11中示出的這種連接意欲表示系統(tǒng)50操作在僅有備份服務(wù)器狀態(tài)下,由此備份服務(wù)器70是能利用的,但是其中典型地由于主服務(wù)器62和/或主服務(wù)器62與網(wǎng)絡(luò)58之間連接的故障,主服務(wù)器62不可用。因此,在圖11中,僅僅備份服務(wù)器70為來自客戶54的請(qǐng)求服務(wù)?,F(xiàn)在參考圖12,總地以400示出一種根據(jù)本發(fā)明的另一個(gè)實(shí)施例用于在僅有備份服務(wù)器狀態(tài)期間處理請(qǐng)求的方法。假設(shè)方法400利用系統(tǒng)50的備份服務(wù)器70操作,并且方法400的以下討論將導(dǎo)致系統(tǒng)50的進(jìn)一步理解,但是應(yīng)當(dāng)理解,系統(tǒng)50和/或方法400可以變化。開始于步驟410,假設(shè)系統(tǒng)50操作在圖2中示出的正常狀態(tài)下并且使用方法200。然而,在步驟415,由備份服務(wù)器70確定關(guān)于主服務(wù)器62是否可用。在系統(tǒng)50中,步驟415由備份服務(wù)器70的故障解決代理FAB執(zhí)行,其依賴于先前描述的在主服務(wù)器62和備份服務(wù)器70之間沿著鏈路78的“?;睢毙盘?hào)的存在以確定“是”,主服務(wù)器62仍然可用。因此,如果在步驟415確定“是”,主服務(wù)器62可用,則方法400循環(huán)回到步驟410。然而,如果在步驟415,備份服務(wù)器70的故障解決代理FAB未能檢測到保活信號(hào),則在步驟415確定“否”,主服務(wù)器62不可用,并且方法400前進(jìn)到步驟420。這樣的確定可以因?yàn)槎鄠€(gè)原因作出。例如,如果主服務(wù)器62故障,則確定主服務(wù)器62不可用。應(yīng)當(dāng)指出,主服務(wù)器62的故障可以以多種方式發(fā)生。主服務(wù)器62可以完全關(guān)機(jī)并且因此未能維持“?;睢毙盘?hào),或者主服務(wù)器62的部分可能故障并且由此指示故障解決代理FAP向故障解決代理FAB標(biāo)識(shí)這樣的故障,并且清楚地請(qǐng)求備份服務(wù)器70承擔(dān)為客戶54處理消息的職責(zé)。在步驟420,檢驗(yàn)復(fù)制鏈路的完整性。在該事件中,備份服務(wù)器70能夠試圖經(jīng)由網(wǎng)絡(luò)58與主服務(wù)器62通信以了解主服務(wù)器62是否仍然能使用,以及,如果在這種通信期間確定服務(wù)器62仍然能使用,但是鏈路78已經(jīng)故障,則在步驟420返回的回答將是“鏈路故障”并且備份服務(wù)器70能夠僅僅將事務(wù)日志TLB的內(nèi)容清洗到非易失性存儲(chǔ)器74并且進(jìn)入等待狀態(tài)。然后備份服務(wù)器70能夠等待鏈路78的再激活,而系統(tǒng)50進(jìn)入圖9中的僅有主服務(wù)器狀態(tài),并且由此使用圖10的方法300處理來自客戶54的消息。然而,如果在步驟420確定復(fù)制鏈路78是“好的”,(即,主服務(wù)器62已經(jīng)故障),則方法400將前進(jìn)到步驟425。因此,在步驟425,備份服務(wù)器70將自己切換到僅有備份服務(wù)器狀態(tài)。在本實(shí)施例中,備份服務(wù)器70立即將事務(wù)日志TLB清洗到非易失性存儲(chǔ)器74。另外,備份服務(wù)器70將通過使用存儲(chǔ)在非易失性存儲(chǔ)器74上的清洗事務(wù)記錄的事務(wù)日志,重新建立如在故障時(shí)主服務(wù)器62上存在的數(shù)據(jù)環(huán)境。此外,故障解決代理FAB將應(yīng)用進(jìn)程APB帶出它的“暖式”狀態(tài),進(jìn)入熱式狀態(tài),并且另外準(zhǔn)備備份服務(wù)器70從客戶54接收消息。圖13示出了步驟425能夠如何被執(zhí)行的一個(gè)特定示例,并且包括一種用于執(zhí)行步驟425的子步驟的方法,總地以425a指示。在步驟426,復(fù)制服務(wù)被禁用。更具體地,備份服務(wù)器70將禁用復(fù)制代理RAB,并且停止執(zhí)行方法200的那些步驟,其中備份服務(wù)器70與主服務(wù)器62協(xié)作以將事務(wù)日志TLP鏡像到事務(wù)日志TLB中。接下來,在步驟427,檢驗(yàn)點(diǎn)代理CAB將事務(wù)日志TLB的內(nèi)容清洗到非易失性存儲(chǔ)器74。在步驟428,任何未完成的事務(wù)被應(yīng)用到適當(dāng)?shù)谋?4和隊(duì)列98。典型地,步驟428由應(yīng)用進(jìn)程APB作為將應(yīng)用進(jìn)程APB從“暖式”轉(zhuǎn)移到“熱式”狀態(tài)的部分執(zhí)行。最后,在步驟429,恢復(fù)信號(hào)被發(fā)送到客戶54,該信號(hào)實(shí)際上是來自備份服務(wù)器70的信號(hào),現(xiàn)在它能夠承擔(dān)從客戶54接收消息的職責(zé)。在步驟430,備份服務(wù)器開始從客戶54接收消息。應(yīng)當(dāng)指出,在本實(shí)施例中,客戶54一旦不能與主服務(wù)器62通信并且隨后被通知備份服務(wù)器70可用,這樣的消息請(qǐng)求就自動(dòng)開始被遞送到備份服務(wù)器70。更具體地,每個(gè)客戶54將在方法200開始之前,被提供以服務(wù)器62和服務(wù)器70的網(wǎng)絡(luò)地址。此外,作為方法200的步驟210或方法300的步驟310的部分執(zhí)行,應(yīng)用進(jìn)程APP發(fā)送應(yīng)答給主叫客戶54。因此,當(dāng)客戶54不能使消息遞送得到應(yīng)答(或檢測到客戶54與服務(wù)器62之間的保活信號(hào)的丟失),則客戶54利用備份服務(wù)器70的地址。備份服務(wù)器70一旦向客戶54指示它已經(jīng)完成它的恢復(fù)并且“準(zhǔn)備好”,則客戶54就開始遞送該消息(以及沒有接收到被主服務(wù)器62更新(即,處理完成的指示)的所有消息)給備份服務(wù)器70的應(yīng)用進(jìn)程APB。還應(yīng)當(dāng)指出,在客戶54和備份服務(wù)器70之間的初始通信期間,每個(gè)客戶54和備份服務(wù)器70執(zhí)行來自客戶54的消息ID(或序列號(hào))與先前在正常狀態(tài)期間由主服務(wù)器62執(zhí)行并存儲(chǔ)在備份服務(wù)器70上的處理結(jié)果的一些初始比較,以確保不存在重復(fù)并且藉此進(jìn)一步確保沒有請(qǐng)求被執(zhí)行兩次。關(guān)于客戶54能夠如何相關(guān)于步驟430運(yùn)轉(zhuǎn)的更詳細(xì)的討論將在下面關(guān)于方法500更詳細(xì)地提供。然后方法400在步驟435-455中循環(huán),其操作在備份服務(wù)器70上,但是基本上以與方法300中的步驟320-360相同的方式執(zhí)行。在步驟460,備份服務(wù)器70將再次檢查(經(jīng)由故障解決代理FAB)主服務(wù)器62是否已經(jīng)變成可用的,并且如果這樣的話,方法400前進(jìn)到步驟465,在那里采取步驟以重新激活主服務(wù)器62并且然后使系統(tǒng)50返回到正常狀態(tài)以及在步驟410下的規(guī)則操作。這樣的步驟包括根據(jù)備份服務(wù)器70的活動(dòng)來同步事務(wù)日志TL和非易失性存儲(chǔ)器設(shè)備66和74。然而,如果在步驟460,備份服務(wù)器70確定主服務(wù)器62仍然不可用,則方法400返回到步驟430來接收來自客戶54的其它消息。應(yīng)當(dāng)理解,對(duì)方法400的許多修改是可能的。特別地,可以期望將步驟415和420折疊成單個(gè)決定,其中如果與主服務(wù)器62的通信丟失,則備份服務(wù)器70將僅僅進(jìn)行到步驟425,而不管通信故障是由于主服務(wù)器62的故障還是鏈路78的故障。當(dāng)通信丟失是由于鏈路78的故障時(shí),并且服務(wù)器62還繼續(xù)正常操作,則系統(tǒng)50進(jìn)入僅有主服務(wù)器模式并且操作方法300,而備份服務(wù)器70將簡單地等待在步驟430接收消息,但是實(shí)際上將接收不到任何這樣的消息,因?yàn)槟切┫⒄^續(xù)由主服務(wù)器62根據(jù)方法300處理。當(dāng)執(zhí)行該修改時(shí),現(xiàn)在應(yīng)當(dāng)理解步驟460也可以被去除。在某些應(yīng)用中,可能優(yōu)選采用該修改,并且手工執(zhí)行這些步驟以減少重新激活系統(tǒng)50需要的時(shí)間?,F(xiàn)在參考圖14,總地以500指示用于根據(jù)本發(fā)明的另一個(gè)實(shí)施例將客戶從主服務(wù)器切換到備份服務(wù)器的方法。方法500可能特別適合于由其中一個(gè)客戶54操作,作為在方法200和方法400之間的系統(tǒng)50轉(zhuǎn)移。方法500可以是對(duì)方法400的步驟425和步驟430,以及對(duì)方法425a的附送(complimentary)。開始于步驟510,客戶54經(jīng)歷與主服務(wù)器62的通信故障。這可能以各種方式發(fā)生,諸如主服務(wù)器62響應(yīng)于客戶54遞送的消息的故障或者在該客戶54與服務(wù)器62之間發(fā)送的“?;睢毙盘?hào)的故障。然而經(jīng)歷了故障,之后方法500前進(jìn)到步驟520,在該點(diǎn)客戶54試圖啟動(dòng)與備份服務(wù)器70的通信。這典型地通過向客戶54提供主服務(wù)器62和備份服務(wù)器70的網(wǎng)絡(luò)地址來實(shí)現(xiàn),以便于客戶54為主服務(wù)器62的故障做好準(zhǔn)備,并且能夠啟動(dòng)方法500以進(jìn)行到備份服務(wù)器70的故障解決。在步驟530,客戶54保持在等待狀態(tài),直到備份服務(wù)器70提供恢復(fù)信號(hào),或者指示備份服務(wù)器70準(zhǔn)備好開始處理來自客戶54的消息的其它信號(hào)。來自備份服務(wù)器70的這種恢復(fù)信號(hào)可以由備份服務(wù)器70根據(jù)例如方法425a的步驟429產(chǎn)生。一旦從備份服務(wù)器70接收到恢復(fù)信號(hào),方法500就前進(jìn)到步驟540,在該點(diǎn)客戶54將再次發(fā)送任何未完成的請(qǐng)求到備份服務(wù)器70的應(yīng)用進(jìn)程APB。接下來,方法500前進(jìn)到步驟550,在該點(diǎn)客戶54再繼續(xù)請(qǐng)求的正常傳輸,僅當(dāng)現(xiàn)在所有的請(qǐng)求才被定向(再次嵌入到來自客戶54的消息中)到備份服務(wù)器70的應(yīng)用進(jìn)程APB。盡管這里只討論了本發(fā)明的各種特性和組件的特定組合,但是對(duì)于本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,如期望的那樣,可以利用公開的特性和組件的期望子集和/或這些特性和組件的替代組合。例如,方法200的步驟210,“接收消息”,可能以多個(gè)子步驟執(zhí)行以增強(qiáng)方法200的功能。同樣地,步驟310和步驟430也可以被修改?,F(xiàn)在參考圖15,總地以210a指示一種用于執(zhí)行步驟210的子步驟的方法。在步驟211,接收消息。步驟211幾乎和先前關(guān)于方法200的步驟210描述的那樣一樣地發(fā)生。在步驟212,消息M的消息ID與相應(yīng)于該客戶的、先前接收的消息ID的主服務(wù)器62上的數(shù)據(jù)庫相比較。在步驟213,如果確定在步驟211接收的消息M是重復(fù)的,則方法前進(jìn)到步驟214,在該點(diǎn)最初響應(yīng)于該消息M產(chǎn)生的答復(fù)被再次發(fā)送到主叫客戶54。然而,如果確定消息不是重復(fù)的,則方法前進(jìn)到步驟215并且消息M如先前描述地那樣被處理,方法200前進(jìn)到步驟220?,F(xiàn)在應(yīng)當(dāng)清楚,方法210a可以被修改為按照上下文需要而實(shí)現(xiàn)步驟310或者步驟430的方法。特別重要的,作為客戶54在從主服務(wù)器62進(jìn)行故障解決而到備份服務(wù)器70中執(zhí)行方法500的部分,預(yù)期客戶54可以是相當(dāng)可能將重復(fù)的消息發(fā)送到備份服務(wù)器70。因此,由于客戶54執(zhí)行方法500的步驟540并重新發(fā)送未完成的消息到備份服務(wù)器70,這種未完成的消息實(shí)際上可能是重復(fù)的-即,由服務(wù)器62成功處理、并且由服務(wù)器70鏡像、但是服務(wù)器62不能為其應(yīng)答到客戶54的消息。因此,方法210a可被用于實(shí)現(xiàn)方法400的步驟430以管理這樣的重復(fù)的請(qǐng)求。作為另一種變化,方法200的步驟250也可以實(shí)現(xiàn)為多個(gè)子步驟。現(xiàn)在參考圖16,總地以250a指示一種用于執(zhí)行步驟250的子步驟的方法。在步驟251,在方法200的步驟240寫入的事務(wù)記錄被發(fā)送到備份服務(wù)器70。在步驟252,備份服務(wù)器70接收該記錄,并且在步驟253,將該記錄寫到它的事務(wù)日志TLB,然后執(zhí)行交付。在步驟254,備份服務(wù)器70通過將應(yīng)答發(fā)送回主服務(wù)器62來應(yīng)答該交付。在步驟255,主服務(wù)器62確定交付是否被應(yīng)答,并且如果是的話,則方法250a前進(jìn)到步驟256,在那里復(fù)制現(xiàn)在被認(rèn)為得到確認(rèn)。在該點(diǎn),方法250a返回到步驟260,返回復(fù)制的確認(rèn)到方法200。然而,如果在步驟255確定沒有交付被應(yīng)答,則方法250a前進(jìn)到步驟257,并且復(fù)制不被認(rèn)為得到確認(rèn)。在該點(diǎn),方法250a返回到方法200的步驟260,將復(fù)制的失敗返回到方法200。應(yīng)當(dāng)理解,主服務(wù)器62和備份服務(wù)器70不需要在兩個(gè)單獨(dú)的計(jì)算環(huán)境上實(shí)現(xiàn),而是實(shí)際上可以在單個(gè)計(jì)算環(huán)境上實(shí)現(xiàn),該單個(gè)計(jì)算環(huán)境包括多個(gè)處理器并且被分割到一個(gè)虛擬主服務(wù)器和虛擬備份服務(wù)器。作為另一個(gè)實(shí)現(xiàn),兩個(gè)單獨(dú)的服務(wù)器可以被劃分到兩個(gè)分區(qū)。每個(gè)機(jī)器的第一分區(qū)可以被指配主服務(wù)器,而第二分區(qū)可以被指配備份服務(wù)器。然后為了提供雙份的故障解決機(jī)制,第一機(jī)器的主服務(wù)器被耦合到第二機(jī)器的備份服務(wù)器,并且反之亦然。作為另一個(gè)實(shí)現(xiàn),多個(gè)備份服務(wù)器可以被連接到主服務(wù)器并且被采用來為系統(tǒng)甚至更高的可用性提供潛能。還應(yīng)當(dāng)理解,故障的主服務(wù)器剛一恢復(fù),就可倒轉(zhuǎn)由備份服務(wù)器和主服務(wù)器執(zhí)行的任務(wù)。例如,如先前描述的,如果主服務(wù)器故障并且系統(tǒng)進(jìn)行故障解決而到備份服務(wù)器,那么在這樣的時(shí)刻當(dāng)主服務(wù)器恢復(fù)操作時(shí),則備份服務(wù)器可以承擔(dān)主服務(wù)器的角色而主服務(wù)器可以采用備份服務(wù)器的任務(wù)。上面描述的本發(fā)明的實(shí)施例意欲成為本發(fā)明的示例并且本領(lǐng)域的技術(shù)人員可以實(shí)現(xiàn)對(duì)其的變更和修改,而不脫離由關(guān)于其的附屬權(quán)利要求獨(dú)自定義的本發(fā)明的范圍。
權(quán)利要求
1.一種用于故障解決的系統(tǒng),包括至少一個(gè)客戶,選擇性地經(jīng)由網(wǎng)絡(luò)連接而可連接到主服務(wù)器和至少一個(gè)備份服務(wù)器中的至少一個(gè);所述主服務(wù)器和所述至少一個(gè)備份服務(wù)器在正常狀態(tài)下彼此相連接,在該正常狀態(tài)期間所述主服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在該狀態(tài)期間所述備份服務(wù)器可操作來維持所述事務(wù)日志的鏡像,所述事務(wù)日志周期性地被清洗到每個(gè)所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備;在當(dāng)所述備份服務(wù)器不可用時(shí)的僅有主服務(wù)器的狀態(tài)中,所述客戶只被連接到所述主服務(wù)器,在該僅有主服務(wù)器狀態(tài)期間所述主服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在該僅有主服務(wù)器狀態(tài)期間所述主服務(wù)器事務(wù)日志在每個(gè)所述消息被處理之后,被清洗到所述主服務(wù)器非易失性存儲(chǔ)器設(shè)備;以及,在當(dāng)所述主服務(wù)器不可用時(shí)的僅有備份服務(wù)器狀態(tài)中,所述客戶只被連接到所述備份服務(wù)器,在該僅有備份服務(wù)器狀態(tài)期間所述備份服務(wù)器最初恢復(fù)所述主服務(wù)器的最后已知狀態(tài),然后處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的所述備份服務(wù)器事務(wù)日志,并且其中所述事務(wù)日志在每個(gè)所述消息被處理之后立刻被清洗到所述備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。
2.一種用于故障解決的系統(tǒng),包括經(jīng)由至少一個(gè)網(wǎng)絡(luò)連接而互連的至少一個(gè)客戶、一個(gè)主服務(wù)器以及至少一個(gè)備份服務(wù)器;所述主服務(wù)器和所述至少一個(gè)備份服務(wù)器每個(gè)可操作來執(zhí)行用于處理從所述至少一個(gè)客戶接收的消息的應(yīng)用;在隨機(jī)存取存儲(chǔ)器中維持事務(wù)日志;執(zhí)行復(fù)制代理;執(zhí)行用于將所述事務(wù)日志清洗到每個(gè)所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備的檢驗(yàn)點(diǎn)代理;所述系統(tǒng)具有正常狀態(tài),在該正常狀態(tài)期間只有所述主服務(wù)器應(yīng)用處理所述消息并將其結(jié)果寫到所述主服務(wù)器事務(wù)日志,并且在該正常狀態(tài)期間所述復(fù)制代理可操作來將所述主服務(wù)器事務(wù)日志鏡像到所述備份服務(wù)器事務(wù)日志中,根據(jù)預(yù)定義的準(zhǔn)則清洗每個(gè)所述事務(wù)日志;僅有主服務(wù)器狀態(tài),在該僅有主服務(wù)器狀態(tài)期間只有所述主服務(wù)器應(yīng)用處理所述消息并將其結(jié)果寫到所述主服務(wù)器事務(wù)日志,并且在該僅有主服務(wù)器狀態(tài)期間,事務(wù)日志同時(shí)被清洗到所述主服務(wù)器非易失性存儲(chǔ)器設(shè)備;僅有備份服務(wù)器狀態(tài),在該僅有備份服務(wù)器狀態(tài)期間只有所述備份服務(wù)器應(yīng)用處理所述消息并且將其結(jié)果寫到所述備份服務(wù)器事務(wù)日志,并且在該僅有備份服務(wù)器狀態(tài)期間,備份服務(wù)器事務(wù)日志同時(shí)被清洗到所述備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。
3.一種用于故障解決的系統(tǒng),包括至少一個(gè)客戶,在正常狀態(tài)下其可連接到耦合到備份服務(wù)器的主服務(wù)器,在該正常狀態(tài)期間所述主服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在該狀態(tài)期間所述備份服務(wù)器可操作來維持所述事務(wù)日志的鏡像,所述事務(wù)日志周期性地被清洗到每個(gè)所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備;當(dāng)所述備份服務(wù)器不可用時(shí),所述至少一個(gè)客戶只可被連接到所述主服務(wù)器,在此期間所述主服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在此期間在每個(gè)所述消息被處理之后,所述備份服務(wù)器事務(wù)日志被清洗到所述主服務(wù)器非易失性存儲(chǔ)器設(shè)備;以及當(dāng)所述主服務(wù)器不可用時(shí),所述至少一個(gè)客戶只可被連接到所述備份服務(wù)器,在此期間所述備份服務(wù)器最初恢復(fù)所述主服務(wù)器的最后已知狀態(tài),然后處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的所述備份服務(wù)器事務(wù)日志,并且其中所述事務(wù)日志在每個(gè)所述消息被處理之后立刻被清洗到所述備份服務(wù)器非易失性存儲(chǔ)器設(shè)備。
4.一種用于故障解決的系統(tǒng),包括至少一個(gè)客戶,當(dāng)主服務(wù)器和備份服務(wù)器二者都可用時(shí),其可連接到耦合到備份服務(wù)器的主服務(wù)器,并且在此期間所述主服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在此期間所述備份服務(wù)器可操作來維持所述事務(wù)日志的鏡像,所述事務(wù)日志被周期性地清洗到每個(gè)所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備;當(dāng)所述主服務(wù)器和所述備份服務(wù)器中的一個(gè)不可用時(shí),所述至少一個(gè)客戶可連接到所述主服務(wù)器和所述備份服務(wù)器中可用的一個(gè),在此期間所述可用的服務(wù)器處理來自所述客戶的消息并且在隨機(jī)存取存儲(chǔ)器中維持每個(gè)所述消息各自的事務(wù)日志,并且在此期間,所述可用的服務(wù)器事務(wù)日志在每個(gè)所述消息被處理之后被清洗到其各自的所述非易失性存儲(chǔ)器設(shè)備。
5.一種用于故障解決的系統(tǒng),包括可連接到多個(gè)可互連服務(wù)器的至少一個(gè)客戶,每個(gè)所述服務(wù)器可操作來處理來自所述客戶的消息并且至少在存儲(chǔ)在易失性存儲(chǔ)器中的事務(wù)日志中維持每個(gè)所述消息各自的事務(wù)記錄,并且還可操作來在每個(gè)所述消息被處理之后將所述事務(wù)日志清洗到所述服務(wù)器各自的非易失性存儲(chǔ)器設(shè)備,其中當(dāng)一個(gè)以上的服務(wù)器可用時(shí),則只有所述服務(wù)器中的一個(gè)處理所述消息并且所述服務(wù)器中的剩余服務(wù)器維持所述事務(wù)日志的鏡像,所述事務(wù)日志在周期基礎(chǔ)上被清洗,并且其中當(dāng)只有所述服務(wù)器中的一個(gè)可用時(shí),則所述事務(wù)日志比所述周期基礎(chǔ)更頻繁地被清洗。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述周期基礎(chǔ)是基于從以下組中選擇的一個(gè)準(zhǔn)則的間隔,該組由固定時(shí)間間隔、已經(jīng)被存儲(chǔ)在所述易失性存儲(chǔ)器中的預(yù)定個(gè)數(shù)的所述事務(wù)記錄、以及當(dāng)所述服務(wù)器中一個(gè)各自的所述易失性存儲(chǔ)器需要被釋放用于其它目的時(shí)的時(shí)刻組成。
7.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述服務(wù)器可經(jīng)由第一網(wǎng)絡(luò)連接到所述客戶并且其中所述服務(wù)器可經(jīng)由第二網(wǎng)絡(luò)彼此互連。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述第二網(wǎng)絡(luò)包括主鏈路和故障保險(xiǎn)鏈路。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述第一網(wǎng)絡(luò)從由互聯(lián)網(wǎng)、局域網(wǎng)以及廣域網(wǎng)組成的組中選擇。
10.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述客戶從由個(gè)人數(shù)字助理、蜂窩電話、膝上型電腦和電子郵件尋呼設(shè)備組成的組中選擇。
11.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述服務(wù)器包括一個(gè)主服務(wù)器和一個(gè)備份服務(wù)器。
12.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述主服務(wù)器和所述備份服務(wù)器在兩個(gè)基本上相同的計(jì)算環(huán)境上實(shí)現(xiàn)。
13.根據(jù)權(quán)利要求13所述的系統(tǒng),包括至少一個(gè)額外的備份服務(wù)器。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述主服務(wù)器和所述備份服務(wù)器在單個(gè)計(jì)算環(huán)境上被實(shí)現(xiàn),該計(jì)算環(huán)境邏輯上被分割成所述主服務(wù)器和所述備份服務(wù)器。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述服務(wù)器包括多個(gè)軟件組件,該軟件組件包括在熱式狀態(tài)下操作來處理所述消息且否則在暖式狀態(tài)下操作的至少一個(gè)應(yīng)用進(jìn)程。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中當(dāng)所述主服務(wù)器可用時(shí),則所述主服務(wù)器應(yīng)用進(jìn)程在所述熱式狀態(tài)下操作,并且當(dāng)所述主服務(wù)器不可用時(shí),則所述備份服務(wù)器將它的應(yīng)用進(jìn)程從所述暖式狀態(tài)帶到所述熱式狀態(tài),并且其后可操作來處理來自所述客戶的所述消息。
17.根據(jù)權(quán)利要求15所述系統(tǒng),其中所述軟件組件包括在每個(gè)所述服務(wù)器上執(zhí)行并且彼此通信以驗(yàn)證每個(gè)其它所述服務(wù)器是否可用的故障解決代理。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中當(dāng)所述主服務(wù)器故障解決代理未能與所述備份服務(wù)器故障解決代理通信時(shí),則所述主服務(wù)器開始操作在僅有主服務(wù)器模式下,在此期間所述主服務(wù)器事務(wù)日志在每個(gè)消息之后被清洗。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中當(dāng)所述備份服務(wù)器故障解決代理未能與所述主服務(wù)器故障解決代理通信時(shí),則所述備份服務(wù)器開始操作在僅有備份服務(wù)器模式下,在此期間所述備份服務(wù)器事務(wù)日志在每個(gè)消息之后被清洗。
20.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述軟件組件包括在每個(gè)所述服務(wù)器上執(zhí)行并且彼此通信以在兩種所述服務(wù)器都可用時(shí)維持所述鏡像的復(fù)制代理。
21.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述軟件組件包括在每個(gè)所述服務(wù)器上執(zhí)行并且與它各自的事務(wù)日志通信的檢驗(yàn)點(diǎn)代理,所述檢驗(yàn)點(diǎn)代理用于將它各自的事務(wù)日志清洗到非易失性存儲(chǔ)器。
22.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述服務(wù)器可操作來確定接收到的一個(gè)所述消息是否為重復(fù)的并且代替處理所述消息而返回表示所述消息的前一處理的存儲(chǔ)的記錄結(jié)果。
23.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述消息包括所述客戶的標(biāo)識(shí)符、消息標(biāo)識(shí)符以及消息體。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),其中所述消息體包括購買或者出售金融憑證的請(qǐng)求。
25.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述消息包括作為至少一個(gè)離散事務(wù)被處理的請(qǐng)求,每個(gè)所述事務(wù)產(chǎn)生至少一個(gè)事務(wù)日志記錄。
26.根據(jù)權(quán)利要求11所述的系統(tǒng),其中當(dāng)所述備份服務(wù)器處理請(qǐng)求時(shí),當(dāng)所述主服務(wù)器變得可用時(shí),所述備份服務(wù)器可操作來承擔(dān)所述主服務(wù)器的角色,并且在該點(diǎn)所述主服務(wù)器承擔(dān)所述備份服務(wù)器的角色。
27.一種操作用于故障解決的系統(tǒng)的方法,包括步驟在主服務(wù)器處接收來自客戶的請(qǐng)求;在所述主服務(wù)器處將所述請(qǐng)求作為至少一個(gè)事務(wù)來處理;在所述主服務(wù)器的易失性存儲(chǔ)器中保存所述至少一個(gè)事務(wù)各自的事務(wù)記錄;在所述主服務(wù)器處產(chǎn)生交付所述事務(wù)的請(qǐng)求;將所述事務(wù)記錄鏡像到所述備份服務(wù)器的易失性存儲(chǔ)器中;以及如果所述鏡像被成功確認(rèn),在所述主服務(wù)器中應(yīng)答所述交付請(qǐng)求。
28.根據(jù)權(quán)利要求27所述的方法,還包括步驟周期性地將所述主服務(wù)器易失性存儲(chǔ)器清洗到所述主服務(wù)器各自的非易失性存儲(chǔ)器。
29.根據(jù)權(quán)利要求27所述的方法,還包括步驟周期性地將所述備份服務(wù)器易失性存儲(chǔ)器清洗到所述備份服務(wù)器各自的非易失性存儲(chǔ)器。
30.根據(jù)權(quán)利要求27所述的方法還包括為另外接收的消息重復(fù)前述步驟的額外步驟。
31.根據(jù)權(quán)利要求30所述的方法,還包括步驟如果所述鏡像不被成功確認(rèn),則立刻將所述主服務(wù)器易失性存儲(chǔ)器清洗到非易失性存儲(chǔ)器;并且此后停止所述鏡像步驟的進(jìn)一步執(zhí)行;以及此后在所述保存步驟之后,將每個(gè)所述事務(wù)記錄清洗到非易失性存儲(chǔ)器。
32.根據(jù)權(quán)利要求27所述的方法,在所述接收步驟之后還包括步驟確定所述請(qǐng)求是否是重復(fù)的請(qǐng)求,并且如果所述請(qǐng)求是重復(fù)的請(qǐng)求,則將處理所述請(qǐng)求的先前存儲(chǔ)的結(jié)果返回給所述客戶,然后在重復(fù)所述方法之前忽略所述方法的剩余步驟。
33.一種操作用于故障解決的系統(tǒng)中的備份服務(wù)器的方法,包括步驟當(dāng)所述備份服務(wù)器確定連接到其的主服務(wù)器可用時(shí),執(zhí)行步驟將由所述主服務(wù)器產(chǎn)生的事務(wù)記錄鏡像到所述備份服務(wù)器的易失性存儲(chǔ)器中;以及周期性地將所述易失性存儲(chǔ)器清洗到連接到所述備份服務(wù)器的非易失性存儲(chǔ)器中;當(dāng)所述備份服務(wù)器確定所述主服務(wù)器不可用時(shí),執(zhí)行步驟從客戶接收請(qǐng)求;將所述請(qǐng)求作為至少一個(gè)事務(wù)來處理;在易失性存儲(chǔ)器中保存所述至少一個(gè)事務(wù)各自的事務(wù)記錄;以及將所述至少一個(gè)事務(wù)記錄清洗到非易失性存儲(chǔ)器。
34.根據(jù)權(quán)利要求33所述的方法,還包括步驟當(dāng)所述備份服務(wù)器最初確定所述主服務(wù)器不再可用時(shí)將所述備份服務(wù)器易失性存儲(chǔ)器清洗到非易失性存儲(chǔ)器;將任何未完成的事務(wù)應(yīng)用到至少與存儲(chǔ)在所述非易失性存儲(chǔ)器上的所述事務(wù)記錄相關(guān)聯(lián)的一個(gè)表和隊(duì)列;并且發(fā)送信號(hào)給所述客戶,指示所述備份服務(wù)器準(zhǔn)備好處理請(qǐng)求。
35.一種在用于故障解決的系統(tǒng)中的備份服務(wù)器,包括用于當(dāng)所述備份服務(wù)器確定連接到其的主服務(wù)器可用時(shí)執(zhí)行以下步驟的裝置將由所述主服務(wù)器產(chǎn)生的事務(wù)記錄鏡像到所述備份服務(wù)器的易失性存儲(chǔ)器中;以及,周期性地將所述易失性存儲(chǔ)器清洗到連接到所述備份服務(wù)器的非易失性存儲(chǔ)器;用于當(dāng)所述備份服務(wù)器確定所述主服務(wù)器不可用時(shí)執(zhí)行以下步驟的裝置從客戶接收請(qǐng)求;將所述請(qǐng)求作為至少一個(gè)事務(wù)來處理;在易失性存儲(chǔ)器中保存所述至少一個(gè)事務(wù)各自的事務(wù)記錄;以及將所述至少一個(gè)事務(wù)記錄清洗到非易失性存儲(chǔ)器。
36.根據(jù)權(quán)利要求35所述的服務(wù)器,還包括用于當(dāng)所述備份服務(wù)器最初確定所述主服務(wù)器不再可用時(shí)執(zhí)行以下步驟的裝置將所述備份服務(wù)器易失性存儲(chǔ)器清洗到非易失性存儲(chǔ)器;將任何未完成的事務(wù)應(yīng)用到至少與存儲(chǔ)在所述非易失性存儲(chǔ)器上的所述事務(wù)記錄相關(guān)聯(lián)的一個(gè)表以及隊(duì)列;以及發(fā)送信號(hào)給所述客戶,指示所述備份服務(wù)器準(zhǔn)備好處理請(qǐng)求。
37.一種在用于故障解決的系統(tǒng)中的主服務(wù)器,包括用于從客戶接收請(qǐng)求的裝置;用于將所述請(qǐng)求作為至少一個(gè)事務(wù)來處理的裝置;用于在易失性存儲(chǔ)器中保存所述至少一個(gè)事務(wù)各自的事務(wù)記錄的裝置;用于產(chǎn)生交付所述事務(wù)的請(qǐng)求的裝置;用于發(fā)送請(qǐng)求以將所述事務(wù)記錄鏡像到備份服務(wù)器的易失性存儲(chǔ)器中的裝置;以及如果所述鏡像請(qǐng)求被成功確認(rèn),應(yīng)答所述交付請(qǐng)求。
38.根據(jù)權(quán)利要求37所述的服務(wù)器,還包括用于周期性地將所述主服務(wù)器易失性存儲(chǔ)器清洗到所述主服務(wù)器各自的非易失性存儲(chǔ)器的裝置。
全文摘要
本發(fā)明提供了一種用于故障解決的新系統(tǒng)和方法。在一個(gè)實(shí)施例中,主服務(wù)器和備份服務(wù)器可用于多個(gè)客戶。包含請(qǐng)求的消息被主服務(wù)器處理,同時(shí)通過這些請(qǐng)求的處理而產(chǎn)生的事務(wù)記錄的鏡像被維持在主服務(wù)器和備份服務(wù)器的易失性存儲(chǔ)器中。在這種操作模式中,易失性存儲(chǔ)器被周期性地清洗到非易失性存儲(chǔ)器。
文檔編號(hào)G06F11/20GK1906593SQ200480040864
公開日2007年1月31日 申請(qǐng)日期2004年1月12日 優(yōu)先權(quán)日2003年11月24日
發(fā)明者G·A·阿倫, T·莫羅桑 申請(qǐng)人:Tsx公司