專利名稱:網(wǎng)絡應用系統(tǒng)和方法
技術領域:
本發(fā)明涉及計算機網(wǎng)絡領域,具體涉及一種網(wǎng)絡應用系統(tǒng)和方法。
背景技術:
目前,隨著網(wǎng)絡應用的快速發(fā)展,網(wǎng)絡應用系統(tǒng)能夠呈現(xiàn)的應用種類和數(shù)量越來越多。在常見的網(wǎng)絡應用系統(tǒng)中,通常包括前端服務器以及一個或多個底層服務器,其中,底層服務器用于提供應用,前端服務器用于將來自一個或多個底層服務器的應用呈現(xiàn)給用戶。在這種網(wǎng)絡應用系統(tǒng)中,前端服務器與各個底層服務器之間存在著相互依賴的關系,因此,當一個底層服務器出現(xiàn)故障時,會影響網(wǎng)絡應用系統(tǒng)中的前端服務器以及其他底層服務器的正常運行。即使有報警設備進行監(jiān)測,但是報警后各底層服務器和其它設備通·過手工更新配置,重新上線,效率較低,線上影響時間較長,在此過程中,用戶無法訪問該網(wǎng)絡應用系統(tǒng)中出現(xiàn)故障的底層服務器所提供的應用,而且由于設備間的相互影響,甚至會導致用戶無法訪問該網(wǎng)絡應用系統(tǒng)中的任一應用,給用戶造成了極大的不便。
發(fā)明內容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的網(wǎng)絡應用系統(tǒng)和方法。依據(jù)本發(fā)明的一個方面,提供了一種網(wǎng)絡應用系統(tǒng),包括一個或多個底層服務器,每個底層服務器提供一個或多個應用;代理服務器,其以第一預定時間間隔對一個或者多個底層服務器提供的應用進行緩存;前端服務器,適于組合來自一個或者多個底層服務器的應用,并且提供用于與應用交互的外部接口 ;以及監(jiān)控服務器,其檢測底層服務器是否正常,以及檢測代理服務器是否正常,其中前端服務器還包括緩存器,其以第二預定時間間隔對一個或者多個底層服務器提供的應用進行緩存,以及前端服務器根據(jù)監(jiān)控服務器的檢測結果來決定如何調用所需的應用。??蛇x地,當監(jiān)控服務器檢測到底層服務器和代理服務器均正常時,前端服務器經(jīng)由代理服務器調用底層服務器中的應用;當監(jiān)控服務器檢測到底層服務器出現(xiàn)異常時,前端服務器從代理服務器中調用底層服務器的應用;以及當監(jiān)控服務器檢測到代理服務器和底層服務器出現(xiàn)異常時,前端服務器從緩存器調用底層服務器的應用??蛇x地,該系統(tǒng)還包括冗余服務器,冗余服務器與底層服務器相對應,并提供對應底層服務器的冗余備份??蛇x地,當監(jiān)控服務器檢測到底層服務器出現(xiàn)異常時,代理服務器切換為從對應的冗余服務器緩存應用??蛇x地,監(jiān)控服務器每隔預設的時間間隔,向底層服務器和/或代理服務器發(fā)送訪問請求,根據(jù)對訪問請求的應答來確定底層服務器和/或代理服務器是否正常??蛇x地,第一預定時間間隔小于第二預定時間間隔。
可選地,應用包括提供數(shù)據(jù)信息的應用,且緩存器以文本文件格式緩存數(shù)據(jù)信息。根據(jù)本發(fā)明的另一方面,提供了一種網(wǎng)絡應用方法,該方法包括設置一代理服務器,該代理服務器以第一預定時間間隔對一個或者多個底層服務器提供的應用進行緩存;設置一緩存器,該緩存器以第二預定時間間隔對一個或者多個底層服務器提供的應用進行緩存;檢測一個或者多個底層服務器是否正常,以及檢測代理服務器是否正常;根據(jù)檢測結果來決定從一個或者多個底層服務器、代理服務器、或緩存器調用所需的應用,并組合應用以提供集成的網(wǎng)絡應用系統(tǒng)??蛇x地,當檢測到底層服務器和代理服務器均正常時,經(jīng)由代理服務器調用所需的應用;當檢測到底層服務器出現(xiàn)異常時,從代理服務器中調用所需的應用;以及當檢測到代理服務器和底層服務器出現(xiàn)異常時,從緩存器調用所需的應用。
可選地,該方法還包括為底層服務器相對應地配置冗余服務器,以提供對應底層服務器的冗余備份??蛇x地,當檢測到底層服務器出現(xiàn)異常時,代理服務器切換為從對應的冗余服務器緩存應用??蛇x地,每隔預設的時間間隔向底層服務器和/或代理服務器發(fā)送訪問請求,根據(jù)對訪問請求的應答來確定底層服務器和/或代理服務器是否正常。可選地,第一預定時間間隔小于第二預定時間間隔??蛇x地,應用包括提供數(shù)據(jù)信息的應用,且將數(shù)據(jù)信息以文本文件格式緩存于緩存器。根據(jù)本發(fā)明的網(wǎng)絡應用系統(tǒng)和方法,通過代理服務器和緩存器分別對底層服務器提供的應用進行緩存,當監(jiān)控服務器檢測到底層服務器出現(xiàn)異常時,前端服務器可以根據(jù)監(jiān)控服務器的檢測結果決定從代理服務器或緩存器中調用應用。由此解決了只要有一個底層服務器中的一個應用出現(xiàn)故障就會影響整個網(wǎng)絡應用系統(tǒng)運行,從而導致無法為用戶提供完整應用功能的問題,取得了能夠在某一底層服務器中的應用出現(xiàn)故障的情況下,網(wǎng)絡應用系統(tǒng)依然可以向用戶提供完整的應用功能的有益效果。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的附圖標記表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡應用系統(tǒng)的結構圖;以及圖2示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡應用方法的流程圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。圖I示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡應用系統(tǒng)的結構示意圖。如圖I所示,該網(wǎng)絡應用系統(tǒng)包括一個或多個底層服務器110、與每個底層服務器110分別相連的代理服務器120、與代理服務器120相連的前端服務器140、以及與每個底層服務器110以及代理服務器120和前端服務器140相連的監(jiān)控服務器130,其中,該前端服務器140中進一步設置有緩存器141。每個底層服務器110提供一個或多個應用,在圖I中只示意性地畫出了兩個底層服務器,實際情況中,底層服務器的數(shù)量可以為一個或多個,當?shù)讓臃掌鞯臄?shù)量為多個時,每個底層服務器可以分別用于提供不同的應用,以滿足用戶訪問多種應用的需求??蛇x地,為了實現(xiàn)底層服務器之間的冗余配置,也可以將多個底層服務器配置為若干組,每組底層服務器中的各個底層服務器都用于提供相同的應用,不同組的底層服務器提供的應用不同,這樣既滿足了用戶訪問多種應用的需求,又在每組底層服務器內部實現(xiàn)了冗余配置。 代理服務器120以第一預定時間間隔(例如,5分鐘)對各底層服務器110提供的應用進行緩存,并將緩存后的應用提供給前端服務器140。前端服務器140內部設置的緩存器141以第二預定時間間隔(例如,I小時)對各底層服務器110提供的應用進行緩存。具體地,代理服務器120和緩存器141對應用進行緩存是指緩存應用提供的結果,例如如果應用提供數(shù)據(jù)信息,則代理服務器120和緩存器141緩存的是應用提供的數(shù)據(jù)信息所對應的數(shù)據(jù)內容。代理服務器120可以采用本領域使用的各種緩存技術,例如,各種web緩存技術、squid等,這些緩存技術除了保證緩存信息的正確之外,還需要考慮緩存效率等問題。而緩存器141的緩存主要考慮的是緩存數(shù)據(jù)的可靠性,而相對而言,緩存效率并不著重進行考慮,因此,可選地,緩存器141可以采用文本文件格式存儲這些數(shù)據(jù)內容,以提高緩存的可靠性。應用提供的結果可以包括每個游戲的區(qū)服信息等。而且,在代理服務器120和緩存器141緩存應用時,如果發(fā)現(xiàn)讀取應用相關的數(shù)據(jù)失敗則暫時不進行緩存,從而保證緩存的所有數(shù)據(jù)都是有效的,避免了緩存無效數(shù)據(jù)的情況。可選地,上面提到的第一預定時間間隔小于第二預定時間間隔,也就是說,代理服務器120的緩存頻率較高,緩存器141的緩存頻率較低,因此,代理服務器120上緩存的內容可能比緩存器141上緩存的內容更新。所以,前端服務器140優(yōu)先調用代理服務器120上緩存的應用。另外,在本實施例中,為了簡化系統(tǒng)結構,降低硬件成本,是以緩存器141設置在前端服務器140內部為例進行說明的,實際情況中,也可以將緩存器141獨立于前端服務器140設置,這樣,緩存器141需要與每個底層服務器110分別相連,以便每隔第二預定時間間隔獲取每個底層服務器110提供的應用。同時,緩存器141還要與前端服務器140相連,以便前端服務器140能夠訪問緩存器141上緩存的應用。當緩存器141獨立于前端服務器140設置時,緩存器141可以直接獲取每個底層服務器110提供的應用,而不必經(jīng)由代理服務器120獲取底層服務器110提供的應用,因此,緩存頻率更為靈活。監(jiān)控服務器130對每個底層服務器110以及代理服務器120進行檢測,并將檢測結果發(fā)送給前端服務器140。具體檢測時,可以每隔預設的時間間隔,檢測一次各個底層服務器中提供的應用是否正常,以及代理服務器的工作狀態(tài)是否正常,為了及時發(fā)現(xiàn)故障,可以將預設的時間間隔設置得盡可能小,以達到近似實時檢測的效果。
其中,監(jiān)控服務器130檢測底層服務器110時,由于底層服務器提供的每一應用都具有一個與之相對應的URL,通過訪問該URL,即可訪問該應用。因此,在檢測某一底層服務器中提供的應用是否正常時,可以通過訪問與該底層服務器所提供的應用相對應的URL來進行檢測。如果當訪問該底層服務器提供的該應用對應的URL時,該底層服務器對該URL請求沒有響應或者產(chǎn)生錯誤,則確定與該URL對應的應用不正常,反之,則確定與該URL對應的應用正常。例如,可以通過shell腳本(或其它腳本)來訪問某一底層服務器所提供的一個應用對應的URL,如果該底層服務器在預定時間內對該URL請求沒有響應,或者產(chǎn)生了錯誤信息,例如如果底層服務器返回500或502這樣的HTTP錯誤代碼等,則確定與該URL對應的應用不正常。這里,500表示內部服務器錯誤信息,502表示網(wǎng)關錯誤信息,根據(jù)產(chǎn)生的錯誤信息可以初步確定底層服務器中的應用存在故障的原因。通過定期訪問每個底層服務器中的每個應用對應的URL,即可確定各個底層服務器中的各應用的狀態(tài)是否正常。監(jiān)控服務器130檢測代理服務器120時,也可以采用類似的方式,通過向代理服務器發(fā)送訪問請求,并根據(jù)代理服務器對該訪問請求的應答,即是否返回響應消息或返回的響應消息是否正確來判斷代理服務器是否正常。具體地,如果代理服務器120對監(jiān)控 服務器130發(fā)送的訪問請求沒有應答或應答出現(xiàn)異常,則表示代理服務器120本身出現(xiàn)了故障,或者,出現(xiàn)了網(wǎng)絡問題。另外,即使代理服務器120本身運行正常,監(jiān)控服務器130還可以進一步檢測代理服務器120上緩存的數(shù)據(jù)是否已失效,在判斷緩存數(shù)據(jù)是否已失效時,可以采用兩種方式。第一種方式為,通過傳輸參數(shù)判斷數(shù)據(jù)是否已失效例如,監(jiān)控服務器130通過一個參數(shù),譬如zonearr參數(shù),獲取代理服務器上的緩存數(shù)據(jù),如果zonearr參數(shù)為空值,則表示獲取到的緩存數(shù)據(jù)已經(jīng)失效。第二種方式為,直接判斷緩存數(shù)據(jù)是否超過了緩存周期,例如,假設代理服務器120的緩存周期為5分鐘,即每隔5分鐘緩存一次,如果代理服務器當前緩存的應用的緩存時間顯示為5分鐘之前,則說明當前緩存的應用已經(jīng)超過了緩存周期,因此是失效數(shù)據(jù)。當監(jiān)控服務器130判斷出代理服務器120上的緩存數(shù)據(jù)為失效數(shù)據(jù)時,也可以向前端服務器140報告代理服務器120異常,從而使得前端服務器可以從緩存器141中調用應用。另外,為了確保底層服務器和代理服務器的及時修復,還可以在確定出底層服務器或代理服務器的狀態(tài)不正常之后,向技術人員發(fā)送短信通知,以便技術人員能夠及時對其進行修復。前端服務器140根據(jù)監(jiān)控服務器130的檢測結果來決定從代理服務器120或緩存器141中調用所需的應用,并對調用的來自各底層服務器110的應用進行組合,并且提供用于與這些應用交互的外部接口,用戶通過訪問外部接口即可訪問該外部接口對應的應用。可選地,當監(jiān)控服務器130檢測到底層服務器110和代理服務器120均正常時,前端服務器140經(jīng)由代理服務器120調用底層服務器110中的應用;當監(jiān)控服務器130檢測到底層服務器110出現(xiàn)異常時,前端服務器140從代理服務器120中調用底層服務器的應用;當監(jiān)控服務器130檢測到代理服務器120和底層服務器110出現(xiàn)異常時,前端服務器140從緩存器141調用底層服務器110的應用。通過這樣的調用方式,即使底層服務器出現(xiàn)異常,也可以通過調用代理服務器中緩存的應用來達到正常服務的目的,即使連代理服務器也出現(xiàn)異常,還可以通過調用緩存器中緩存的應用來達到正常服務的目的。無論前端服務器140是從代理服務器120調用底層服務器提供的應用,還是從緩存器141調用底層服務器提供的應用,其提供的與這些應用交互的外部接口都是一樣的,因此,對于用戶來講,不會產(chǎn)生任何區(qū)別。由此可見,在本實施例中,對底層服務器中的應用進行了雙重緩存,即代理服務器作為第一重緩存,緩存器作為第二重緩存,對網(wǎng)絡應用系統(tǒng)的正常運行起到了雙重保障的作用。其中,代理服務器作為第一重緩存,前端服務器優(yōu)先調用代理服務器中緩存的數(shù)據(jù),且通常情況下對代理服務器中的緩存數(shù)據(jù)的調用頻率較高,因此,對于代理服務器中的緩存數(shù)據(jù)來說,除了要符合可靠性的要求,以確保數(shù)據(jù)正確之外,還對緩存效率有著較高的要求,以確保當?shù)讓臃掌髦械臄?shù)據(jù)發(fā)生變化時,代理服務器中的緩存數(shù)據(jù)能夠迅速準確地更新為最新數(shù)據(jù),所以,代理服務器在緩存時的緩存周期一般設置得較小,以便能夠在底層服務器中的數(shù)據(jù)發(fā)生變化時及時更新,而且,代理服務器在緩存時采用的緩存技術(如,各種web緩存技術、squid等)也需要考慮緩存效率問題,以便能夠迅速地被前端服務器調取。相比較而言,緩存器作為第二重緩存,主要起到備份的作用,前端服務器通常只在代理服務器出現(xiàn)問題時才會調用緩存器中的緩存數(shù)據(jù),且通常情況下對緩存器中的緩存數(shù)據(jù)的調用頻率較低,因此,對于緩存器中的緩存數(shù)據(jù)來說,對可靠性有著較高的要求,以確保數(shù)據(jù)正確,但對緩存效率的要求較低,所以,緩存器在緩存時的緩存周期可以設置得較大一些,以降低對硬件資源和網(wǎng)絡資源的占用,而且,緩存器在緩存時采用的緩存技術通常更需要考慮可靠性問題,因此可以采用文本文件格式緩存數(shù)據(jù),以降低出錯率,提高緩存數(shù)據(jù)的可靠性。另外,根據(jù)本發(fā)明的一個實施例,緩存器141和前端服務器140位于同一個物理設備中,這樣,即使因為網(wǎng)絡通信故障等原因而導致代理服務器120不能訪問時,緩存器141也不會受網(wǎng)絡故障的影響而可以可靠地提供緩存的內容。由此可以避免由于網(wǎng)絡故障而導致緩存器141和代理服務器120同時不可用的情況,提高了系統(tǒng)的可靠性。另外,在本實施例中,當?shù)讓臃掌鳛槿哂嗯渲脮r,如果一組底層服務器中的一個底層服務器出現(xiàn)了異常,代理服務器120還可以通過監(jiān)控服務器130檢測到的各個底層服務器的檢測結果得知這一異常信息,從而自動地切換為從該組底層服務器中的其他正常的底層服務器中獲取應用并緩存,從而確保了緩存數(shù)據(jù)的正確性。圖2示出了根據(jù)本發(fā)明一個實施例的網(wǎng)絡應用方法的流程圖。該網(wǎng)絡應用方法可應用于圖I所示的網(wǎng)絡應用系統(tǒng)。如圖2所示,該網(wǎng)絡應用方法始于步驟S210,在步驟S210中,設置一代理服務器,該代理服務器以第一預定時間間隔對一個或者多個底層服務器提供的應用進行緩存。在步驟S220中,設置一緩存器,該緩存器以第二預定時間間隔對一個或者多個底層服務器提供的應用進行緩存。上述步驟S210以及步驟S220可以同時開始執(zhí)行,也可以先后開始執(zhí)行。由于第二預定時間間隔通常大于第一預定時間間隔,因此,通常情況下,先執(zhí)行步驟S210,后執(zhí)行步驟S220,且步驟S210和步驟S220中的緩存操作都是每隔預定時間間隔執(zhí)行一次的,因此,步驟S210和步驟S220中的緩存操作都屬于需要持續(xù)執(zhí)行的步驟。具體地,代理服務器和緩存器對應用進行緩存是指緩存應用提供的結果,例如如果應用提供數(shù)據(jù)信息,則代理服務器和緩存器緩存的是應用提供的數(shù)據(jù)信息所對應的數(shù)據(jù)內容,可選地,底層服務器提 供的應用包括提供數(shù)據(jù)信息的應用,則緩存器可以采用文本文件格式緩存這些數(shù)據(jù)信息,達到緩存應用的目的。應用提供的結果可以包括每個游戲的區(qū)服信息等。而且,在代理服務器和緩存器緩存應用時,如果發(fā)現(xiàn)緩存程序讀取數(shù)據(jù)失敗則暫時不進行緩存,從而保證緩存的所有數(shù)據(jù)都是有效的,避免了緩存無效數(shù)據(jù)的情況。在步驟S210和步驟S220開始執(zhí)行時或開始執(zhí)行后,執(zhí)行步驟S230。在步驟S230中,檢測一個或者多個底層服務器是否正常,以及檢測代理服務器是否正常。具體檢測時,可以每隔預設的時間間隔,檢測一次各個底層服務器中提供的應用是否正常,以及代理服務器的工作狀態(tài)是否正常,為了及時發(fā)現(xiàn)故障,可以將預設的時間間隔設置得盡可能小,以達到近似實時檢測的效果。其中,檢測底層服務器110時,由于底層服務器提供的每一應用都具有一個與之相對應的URL,通過訪問該URL,即可訪問該應用。因此,在檢測某一底層服務器中提供的應用是否正常時,可以通過訪問與該底層服務器所提供的應用相對應的URL來進行檢測。如果當訪問該底層服務器提供的該應用對應的URL時,該底層服務器對該URL請求沒有響應或者產(chǎn)生錯誤,則確定與該URL對應的應用不正常,反之,則確定與該URL對應的應用正常。例如,可以通過shell腳本(或其它腳本)來訪問某一底層服務器所提供的一個應用對應的URL,如果該底層服務器在預定時間內對該URL請求沒有響應,或者產(chǎn)生了 錯誤信息,例如如果底層服務器返回500或502這樣的HTTP錯誤代碼等,則確定與該URL 對應的應用不正常。這里,500表示內部服務器錯誤信息,502表示網(wǎng)關錯誤信息,根據(jù)產(chǎn)生的錯誤信息可以初步確定底層服務器中的應用存在故障的原因。通過定期訪問每個底層服務器中的每個應用對應的URL,即可確定各個底層服務器中的各應用的狀態(tài)是否正常。檢測代理服務器120時,也可以采用類似的方式,通過向代理服務器發(fā)送訪問請求,并根據(jù)代理服務器對該訪問請求的應答,即是否返回響應消息或返回的響應消息是否正確來判斷代理服務器是否正常。另外,為了確保底層服務器和代理服務器的及時修復,還可以在確定出底層服務器或代理服務器的狀態(tài)不正常之后,向技術人員發(fā)送短信通知,以便技術人員能夠及時對其進行修復。在執(zhí)行完步驟S230之后,在步驟S240中,根據(jù)檢測結果來決定從一個或者多個底層服務器、代理服務器、或緩存器調用所需的應用,并組合應用以提供集成的網(wǎng)絡應用系統(tǒng)。可選地,當檢測到底層服務器和代理服務器均正常時,經(jīng)由代理服務器調用所需的應用;當檢測到底層服務器出現(xiàn)異常時,從代理服務器中調用所需的應用;以及當檢測到代理服務器和底層服務器出現(xiàn)異常時,從緩存器調用所需的應用。通過這樣的調用方式,即使底層服務器出現(xiàn)異常,也可以通過調用代理服務器中緩存的應用來達到正常服務的目的,即使連代理服務器也出現(xiàn)異常,還可以通過調用緩存器中緩存的應用來達到正常服務的目的。也就是說,在本實施例中,對底層服務器中的應用進行了雙重緩存,即代理服務器作為第一重緩存,緩存器作為第二重緩存,對網(wǎng)絡應用系統(tǒng)的正常運行起到了雙重保障的作用。另外,根據(jù)本發(fā)明的一個實施例,緩存器和前端服務器位于同一個物理設備中,這樣,即使因為網(wǎng)絡通信故障等原因而導致代理服務器不能訪問時,緩存器也不會受網(wǎng)絡故障的影響而可以可靠地提供緩存的內容。由此可以避免由于網(wǎng)絡故障而導致緩存器和代理服務器同時不可用的情況,提高了系統(tǒng)的可靠性。也就是說,前端服務器可以通過本地調用的方式來獲取緩存器所緩存的應用數(shù)據(jù)而無需通過網(wǎng)絡通信,而對于代理服務器緩存的應用,則前端服務器需要通過網(wǎng)絡通信方式來獲取??蛇x地,為了進一步提高底層服務器的可靠性,該方法在起始階段還包括如下步驟為底層服務器相對應地配置冗余服務器,以提供對應底層服務器的冗余備份,這樣,當步驟S230中檢測到底層服務器出現(xiàn)異常時,代理服務器切換為從對應的冗余服務器緩存應用。根據(jù)本發(fā)明的網(wǎng)絡應用系統(tǒng)和方法,通過代理服務器和緩存器分別對底層服務器提供的應用進行緩存,當檢測到底層服務器出現(xiàn)異常時,可以根據(jù)檢測結果決定從代理服務器或緩存器中調用應用。由此解決了只要有一個底層服務器中的一個應用出現(xiàn)故障就會影響整個網(wǎng)絡應用系統(tǒng)運行,從而導致無法為用戶提供完整應用功能的問題,取得了能夠在某一底層服務器中的應用出現(xiàn)故障的情況下,網(wǎng)絡應用系統(tǒng)依然可以向用戶提供完整的應用功能的有益效果。因此,在本發(fā)明的網(wǎng)絡應用系統(tǒng)中,不會因為某一設備(如底層服務器、代理服務器)的異常而影響整個系統(tǒng)的運行,提高了系統(tǒng)的可靠性。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種 編程語言實現(xiàn)在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的網(wǎng)絡應用系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。·
權利要求
1.一種網(wǎng)絡應用系統(tǒng),包括 一個或多個底層服務器,每個底層服務器提供一個或多個應用; 代理服務器,其以第一預定時間間隔對所述一個或者多個底層服務器提供的應用進行緩存; 前端服務器,適于組合來自所述一個或者多個底層服務器的應用,并且提供用于與所述應用交互的外部接口;以及 監(jiān)控服務器,其檢測所述底層服務器是否正常,以及檢測所述代理服務器是否正常, 其中,所述前端服務器還包括緩存器,其以第二預定時間間隔對所述一個或者多個底層服務器提供的應用進行緩存,以及所述前端服務器根據(jù)所述監(jiān)控服務器的檢測結果來決定如何調用所需的應用。
2.如權利要求I所述的系統(tǒng),其中, 當所述監(jiān)控服務器檢測到所述底層服務器和代理服務器均正常時,所述前端服務器經(jīng)由所述代理服務器調用所述底層服務器中的應用; 當所述監(jiān)控服務器檢測到所述底層服務器出現(xiàn)異常時,所述前端服務器從所述代理服務器中調用所述底層服務器的應用;以及 當所述監(jiān)控服務器檢測到所述代理服務器和底層服務器出現(xiàn)異常時,所述前端服務器從所述緩存器調用所述底層服務器的應用。
3.如權利要求I或2所述的系統(tǒng),還包括 冗余服務器,所述冗余服務器與所述底層服務器相對應,并提供對應底層服務器的冗余備份。
4.如權利要求3所述的系統(tǒng),其中, 當所述監(jiān)控服務器檢測到所述底層服務器出現(xiàn)異常時,所述代理服務器切換為從對應的冗余服務器緩存應用。
5.如上述權利要求1-4中任一個所述的系統(tǒng),其中, 所述監(jiān)控服務器每隔預設的時間間隔,向所述底層服務器和/或代理服務器發(fā)送訪問請求,根據(jù)對所述訪問請求的應答來確定底層服務器和/或代理服務器是否正常。
6.如上述權利要求1-5中任一個所述的系統(tǒng),其中, 所述第一預定時間間隔小于所述第二預定時間間隔。
7.如權利要求1-6中任一個所述的系統(tǒng),所述應用包括提供數(shù)據(jù)信息的應用,且所述緩存器以文本文件格式緩存所述數(shù)據(jù)信息。
8.—種網(wǎng)絡應用方法,該方法包括 設置一代理服務器,該代理服務器以第一預定時間間隔對一個或者多個底層服務器提供的應用進行緩存; 設置一緩存器,該緩存器以第二預定時間間隔對所述一個或者多個底層服務器提供的應用進行緩存; 檢測所述一個或者多個底層服務器是否正常,以及檢測所述代理服務器是否正常;以及 根據(jù)檢測結果來決定從所述代理服務器或所述緩存器調用所需的應用,并組合所述應用以提供集成的網(wǎng)絡應用系統(tǒng)。
9.如權利要求8所述的方法,其中, 當檢測到所述底層服務器和代理服務器均正常時,經(jīng)由所述代理服務器調用所需的應用; 當檢測到所述底層服務器出現(xiàn)異常時,從所述代理服務器中調用所需的應用;以及 當檢測到所述代理服務器和底層服務器出現(xiàn)異常時,從所述緩存器調用所需的應用。
10.如權利要求8或9所述的方法,還包括 為所述底層服務器相對應地配置冗余服務器,以提供對應底層服務器的冗余備份,以及 當檢測到所述底層服務器出現(xiàn)異常時,所述代理服務器切換為從對應的冗余服務器緩存應用。
11.如權利要求8-10中任一個所述的方法,其中, 所述第一預定時間間隔小于所述第二預定時間間隔。
12.如權利要求8-11中任一個所述的方法,所述應用包括提供數(shù)據(jù)信息的應用,且將所述數(shù)據(jù)信息以文本文件格式緩存于所述緩存器。
13.如權利要求8-12中任一個所述的方法,其中通過網(wǎng)絡傳輸獲取所述代理服務器緩存的應用,并通過本地調用獲取緩存器緩存的應用。
全文摘要
本發(fā)明公開了一種網(wǎng)絡應用系統(tǒng)和方法。該系統(tǒng)包括一個或多個底層服務器,每個底層服務器提供一個或多個應用;代理服務器,其以第一預定時間間隔對一個或者多個底層服務器提供的應用進行緩存;前端服務器,適于組合來自一個或者多個底層服務器的應用,并且提供用于與應用交互的外部接口;以及監(jiān)控服務器,其檢測底層服務器是否正常,以及檢測代理服務器是否正常,其中前端服務器還包括緩存器,其以第二預定時間間隔對一個或者多個底層服務器提供的應用進行緩存,以及前端服務器根據(jù)監(jiān)控服務器的檢測結果來決定如何調用所需的應用。通過該網(wǎng)絡應用系統(tǒng)和方法,在某一底層服務器中的應用出現(xiàn)故障的情況下,網(wǎng)絡應用系統(tǒng)依然可以向用戶提供完整的應用功能。
文檔編號H04L12/24GK102868565SQ20121039267
公開日2013年1月9日 申請日期2012年10月16日 優(yōu)先權日2012年10月16日
發(fā)明者趙宏威, 黃會娟 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司