專利名稱:主從式網(wǎng)絡計算機服務器群自組織方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在網(wǎng)絡計算機系統(tǒng)中,多個網(wǎng)絡計算機服務器的組織方法,尤其是能自動組織成多個以一服務器為主和多個服務器為輔的主從式服務器群,并為位于同一網(wǎng)絡上的多個具有本地計算能力的客戶端提供啟動、以及按需定制、下載應用程序服務的方法。
二、技術(shù)背景網(wǎng)絡計算機(Network Computer或NC)最早由Oracle公司在1995年提出,是網(wǎng)絡計算階段具代表性的一種計算機形態(tài)。1996年5月Oracle公司聯(lián)合其它四家公司共同制定了網(wǎng)絡計算機標準1(Network Computer Reference Profile 1)。作為客戶端的NC采取了簡化計算機硬件的做法,本地無硬盤,采用低功耗CPU,主板設置有大容量的非易失性存儲裝置,通常是只讀存儲器ROM或快閃存儲器(Flash ROM)。在軟件上,傳統(tǒng)NC在本地的非易失性存儲裝置中,存儲了嵌入式的操作系統(tǒng)或終端協(xié)議代碼。其工作原理是通過WWW/Applet技術(shù),X-terminal或其他終端技術(shù)(如RDP,ICA等)訪問遠程服務器上的應用程序和數(shù)據(jù),本地不進行計算,只負責接收用戶輸入和進行圖形界面顯示工作。傳統(tǒng)NC的計算主要發(fā)生在服務器上,因此對服務器的依賴性很大,尤其在應用于多媒體應用場景的時候,對服務器的要求很高,因此普通服務器能同時支持的NC數(shù)目非常有限。并且,由于操作系統(tǒng)固化在NC的ROM或Flash ROM中,因此升級困難,可擴展性差。
為了解決傳統(tǒng)NC對服務器依賴過重,對多媒體應用支持不足,軟件升級困難,可擴展性差的問題。清華大學網(wǎng)絡互連實驗室研制了一種本地無操作系統(tǒng)的NC-可管理多媒體網(wǎng)絡計算機MMNC(參見本申請人的相關(guān)專利ZL03122022.3,ZL01142033.2),它是一種具有本地計算能力的NC,如圖1,服務器端101上存儲并管理客戶端所需要的操作系統(tǒng)和應用程序,并不負責應用的計算,具有成本低、負載輕的特點。服務器和客戶端102通過硬化的驅(qū)動程序和通信協(xié)議進行通信,應用的計算在NC客戶端發(fā)生,能極大減輕以往NC的計算對服務器依賴過重的問題,且客戶端本地無操作系統(tǒng)、無硬盤、成本低。MMNC能大大增強NC應用的靈活性并具有很強的擴展能力,能支持豐富的桌面應用,這種NC在服務器上放置了NC操作系統(tǒng)內(nèi)核鏡像以及應用程序,并配置了動態(tài)主機配置協(xié)議(Dynamic Host ConfigurationProtocol,DHCP)服務,簡單文件傳輸協(xié)議(Trivial File Transfer Protocol,TFTP)服務以及遠程執(zhí)行環(huán)境(Preboot Execution Enviroment,PXE)服務。如圖2,NC客戶端203(簡稱NC或客戶端)和NC服務器202(簡稱服務器)位于一個計算機網(wǎng)絡201上,服務器同時為多個客戶端提供操作系統(tǒng)和應用程序資源,服務器和客戶端之間形成星形的邏輯關(guān)系。MMNC的啟動過程如圖3所示,客戶端203被加電301后開始NC的啟動過程,之后執(zhí)行非易失存儲器中的引導代碼302,通過DHCP消息廣播同服務器進行聯(lián)系,服務器收到DHCP客戶端廣播消息后,向客戶端應答并為客戶端分配一網(wǎng)絡地址,即一IP地址303。獲得網(wǎng)絡地址之后,客戶端向服務器發(fā)出下載操作系統(tǒng)內(nèi)核鏡像和包括初始應用程序的根文件系統(tǒng)鏡像的文件下載請求,服務器接收到文件下載請求后向客戶端傳輸操作系統(tǒng)內(nèi)核鏡像以及根文件系統(tǒng)鏡像,客戶端接收服務器的傳輸304,NC客戶端接收完畢后加載服務器端傳輸?shù)牟僮飨到y(tǒng)內(nèi)核鏡像和根文件系統(tǒng)鏡像305,就完成了NC的啟動過程306。
為了提高MMNC的啟動性能,尤其是減緩客戶端在啟動時對于服務器的依賴,我們進一步提出了一種網(wǎng)絡計算機的協(xié)作式啟動方法(參見本申請人的專利申請200410009789.3),如圖4,其中服務器402和所有NC403和位于一計算機網(wǎng)絡401上,服務器上存儲了所有NC啟動所需的操作系統(tǒng)和應用程序,但在啟動時,服務器和客戶端之間的請求/服務關(guān)系不是星形的邏輯關(guān)系,即可以不僅由服務器對NC的啟動請求提供服務,在NC間也可以協(xié)作式地提供服務、互助完成啟動一臺客戶端啟動時的初始應用程序可以由服務器獨立提供,或由若干臺其他客戶端共同提供,或由服務器和若干臺客戶端共同提供。采用這種啟動方法不僅保留了原MMNC易管理、應用擴展性好、對多媒體應用支持豐富的特點,并且能降低啟動時服務器的負載,提高NC的平均啟動速度和網(wǎng)絡利用率,整個系統(tǒng)具有較好的魯棒性。
上述NC能提供很好的多媒體支持,具有高的可管理性,但目前的系統(tǒng)基本上基于一單服務器的系統(tǒng)結(jié)構(gòu),即由一個服務器為同網(wǎng)絡上的多個NC客戶端同時服務,不僅系統(tǒng)的魯棒性受制于該系統(tǒng)結(jié)構(gòu),更重要的是系統(tǒng)的擴展性成為一個瓶頸。雖然一方面,服務器可以采用類似鏡像的技術(shù)提高整個系統(tǒng)的魯棒性和容錯性,避免由服務器故障造成整個系統(tǒng)無法使用的情況;另一方面,也可以通過提高服務器硬件性能或改進服務器的運行算法來提高服務器整體性能和負載能力,但是卻無法從根本上突破系統(tǒng)的負載數(shù)量受單服務器結(jié)構(gòu)限制的這個不足。事實上,我們發(fā)現(xiàn)在實際的應用中,一臺普通配置的PC服務器所能支持的客戶端極難超過百臺的限制,但在對NC可能的應用場合進行需求分析后發(fā)現(xiàn),許多NC的大中型應用對于客戶端的需求數(shù)量都要遠高于這個限制。盡管我們可以采用靜態(tài)劃分客戶端所屬關(guān)系的方法,使用多個服務器來分別為各自所屬部分客戶端提供服務,但由于這種方法缺乏一個完整統(tǒng)一的架構(gòu),如何合理地進行這種靜態(tài)劃分,在需求發(fā)生變化時如何調(diào)整劃分等由靜態(tài)劃分所帶來的一系列問題都將成為棘手、卻不得不解決的問題。另一方法是,采用高配置的高級專用服務器來滿足大負載數(shù)需求,這種方法將使得整個系統(tǒng)的造價將大幅提高,性價比大大降低。因此若能采用一個完整、統(tǒng)一的多服務器的NC體系結(jié)構(gòu),使得多個普通PC服務器以群的方式動態(tài)、透明地為客戶端提供服務,則能在保留現(xiàn)有MMNC成本低、易管理、支持應用豐富等特點的情況下,提供與服務器節(jié)點成正比的負載能力,同時具有高的可用性和更好的系統(tǒng)擴展性及魯棒性。
發(fā)明內(nèi)容
針對現(xiàn)有的基于單服務器的NC系統(tǒng)結(jié)構(gòu)擴展性、魯棒性不佳,負載能力有限的問題,本發(fā)明提出了一種多個NC服務器的自組織方法,其中NC和服務器任意分布于計算機網(wǎng)絡上,服務器上存儲了NC啟動和運行所需的操作系統(tǒng)和應用程序,位于同一廣播可達網(wǎng)絡上的所有服務器屬于同一個服務器群,一個服務器群包括一個主NC服務器MNCS和若干個SNCS服務器,NC只能由屬于群中的服務器為其提供服務,尚未加入群的服務器按照以下步驟自組織成服務器群啟動一進程,該進程負責偵聽其他服務器發(fā)送的信息;如果在Td的時間內(nèi)沒有收到心跳信息,則服務器認定自己是群中MNCS,開始以固定的心跳時長向網(wǎng)絡廣播心跳信息,其中Td是數(shù)倍于心跳時長的時間段,并開始偵聽NC的服務請求;否則認定自己是SNCS,開始偵聽NC的服務請求。一SNCS在收到MNCS的心跳信號時向MNCS回復一個反射信號;MNCS在收到一SNCS的首次反射信號時將其加入群;MNCS根據(jù)各SNCS反射信號中的狀態(tài)信息,動態(tài)維護服務器群的狀態(tài)信息。若所述的MNCS在所述Td的時間內(nèi)沒有收到一SNCS的反射信號,則嘗試向該SNCS通信,若一定次數(shù)的嘗試通信后依然無回應,則將該SNCS從群中去除。
若一SNCS在Td時間內(nèi)沒有收到心跳信號,則執(zhí)行如下處理步驟1發(fā)出一個競職信號;步驟2假如在等待的Td時間內(nèi)收到一MNCS發(fā)來的心跳信號,則結(jié)束處理;步驟3否則,假如沒有收到其他SNCS發(fā)來的競職信號,則自己升級為MNCS,用自身保持的綁定NC狀態(tài)信息初始化群狀態(tài)信息,并開始廣播心跳信息,結(jié)束處理;步驟4否則,假如收到其他SNCS發(fā)來的競職信號,則延遲一段時間,若延遲期間收到心跳信息,則認定自己為SNCS,結(jié)束處理;否則轉(zhuǎn)到步驟1處理;若所述MNCS收到其他MNCS發(fā)出的心跳信號,則向該MNCS發(fā)送一沖突指示信號,其中包括了其所屬群的狀態(tài)信息。若一MNCS A收到另一MNCS B發(fā)出的沖突指示信號,則比較雙方群中所屬的服務器數(shù)量,若前者大于后者,則A將B所屬群的狀態(tài)信息合并至自己所屬群的狀態(tài)信息中,其中將B作為一SNCS插入到A所屬群的狀態(tài)中,并向B發(fā)送一沖突回復信號。若一MNCS收到一沖突回復信號,則認定自己為SNCS,停止發(fā)送心跳信號,并更新相關(guān)狀態(tài)信息。
采用本發(fā)明的網(wǎng)絡計算機的服務器群自組織方法,使得在保留現(xiàn)有的MMNC體系結(jié)構(gòu)成本低、易管理、支持應用豐富等特點的同時,提供了更好的負載能力、動態(tài)擴展性和魯棒性,并可兼容現(xiàn)有的NC客戶端。
四
圖1是MMNC系統(tǒng)結(jié)構(gòu)示意2是現(xiàn)有NC的啟動關(guān)系示意3現(xiàn)有NC的啟動流程4是使用協(xié)作式啟動方法的NC啟動關(guān)系示意5是未經(jīng)組織的NC網(wǎng)絡拓撲6是未經(jīng)組織的NC網(wǎng)絡實體示意7是自組織后的的NC網(wǎng)絡實體示意8是自組織后的的NC網(wǎng)絡拓撲9是MNCS及SNCS中使用到的數(shù)據(jù)結(jié)構(gòu)五具體實施方式
下面參照圖示對本發(fā)明進行詳細說明。
如圖5,是未經(jīng)組織時的NC系統(tǒng)網(wǎng)絡拓撲示意圖。多個NC客戶端503和NC服務器504、505、506、507物理上分散地分布地在計算機網(wǎng)絡501、502的各處,網(wǎng)絡501和網(wǎng)絡502支持內(nèi)部廣播(如以太網(wǎng)),但不支持相互間的廣播通信,因此被認為是不同的連通網(wǎng)絡。群是指同一個連通網(wǎng)絡上所有NC服務器,NC客戶端以及他們之間的相互關(guān)系。服務器群指屬于一個群的所有NC服務器的集合。初始時服務器均處于關(guān)閉狀態(tài),服務器不可用,并且沒有加入任何群,NC客戶端也因為在相同連通網(wǎng)絡上不存在可用的服務器而無法使用,服務器和服務器、服務器和客戶端之間都不存在任何關(guān)系。
自組織是指NC服務器和NC客戶端能自發(fā)地形成群的關(guān)系,并能對群關(guān)系進行動態(tài)的調(diào)整,經(jīng)過自組織的NC服務器群可以透明地向NC客戶端提供如啟動服務(包括IP分配、操作系統(tǒng)內(nèi)核鏡像下載等),應用程序的按需定制、下載服務、共享數(shù)據(jù)的下載等和現(xiàn)有技術(shù)MMNC中單服務器所能提供的相同服務,而從客戶端的角度,感覺不到群模式的服務器和現(xiàn)有的單服務器模式的區(qū)別。
如圖6和圖7,本發(fā)明的自組織方法。可以看作是將初始時處于同一層次601的、語義上無差別的、互不相干的只是物理上相互連通的多個網(wǎng)絡實體602(包括NC客戶端、NC服務器),按照客戶端和服務器間的隸屬關(guān)系,和服務器間的主從關(guān)系,自行組成三層次的、多群的實體間關(guān)系。
如圖8,是上述網(wǎng)絡結(jié)構(gòu)在使用本發(fā)明的自組織方法后形成的多服務器NC系統(tǒng)網(wǎng)絡拓撲圖。在同一連通網(wǎng)絡501/502中所有的服務器被組織進一個群(群1/群2),一個群中至少包括一個主NC服務器(Master NC Server,MNCS)504/505,如果有兩個以上服務器,則還包括若干個從服務器(Slave NC Server,SNCS)506、507,因此在多個不同連通網(wǎng)絡上,會形成多個群,屬于該網(wǎng)絡上所有的NC客戶端503都由相應的服務器群提供服務。在一個群中,客戶端在發(fā)起啟動請求后,將被指定由某一個服務器(MNCS或SNCS)固定提供啟動服務和啟動后的應用程序等服務,這種從客戶端到服務器的單射關(guān)系,被稱為綁定。
如圖9,在MNCS中維護了一個綁定映射關(guān)系表BMRT 910來記錄群中客戶端-服務器,服務器-服務器的映射關(guān)系,即記錄了一個群中MNCS到SNCS的主從關(guān)系,NC到服務器的隸屬關(guān)系。其中一維表911主要起到索引的作用,每個節(jié)點931對應MNCS及從屬于它的SNCS,二維表912的每個節(jié)點932對應隸屬于一個服務器的客戶端。MNCS中還維護了一個SNCS列表932,記錄了群中SNCS的狀態(tài)信息,其中每個節(jié)點933記錄的信息中包括了收到該SNCS報文的時間戳信息。在服務器中還維護了一Subscriber表920,記錄了被綁定至該服務器的所屬客戶端信息921,如標識、優(yōu)先級、狀態(tài)、IP地址等信息。
NC服務器的心跳信號是一種基于IP/UDP的報文。心跳信號是一種主動信號,MNCS服務器在運行中會按固定時間長t在網(wǎng)絡上廣播發(fā)出周期性的心跳信號。其中心跳間隔t可根據(jù)應用需求設置為5-300s范圍內(nèi)的一數(shù)值,或按t=2*網(wǎng)絡最大直徑*測量得到的單跳間平均延遲(包括傳輸延遲和節(jié)點處理延遲)計算結(jié)果的倍數(shù)值。
反射信號也是一種基于IP/UDP的報文,反射信號是一種被動信號,SNCS在收到MNCS發(fā)出的心跳信號之后向MNCS發(fā)送反射信號。心跳信號和反射信號中都包括了發(fā)出信號的NC服務器在當時的性能參數(shù)值,如當時的NC客戶端負載數(shù)Wλ,CPU利用率Pλ,內(nèi)存利用率Mλ,虛存的使用率Gλ,輸出帶寬/理論帶寬P/T,等參數(shù)值或關(guān)于這些參數(shù)的函數(shù)值,通過這些參數(shù)可以及時了解到群中服務器的載荷情況。
競職信號是一種基于IP/UDP的報文,用于SNCS嘗試升級為MNCS時。
服務器按照下列處理步驟進行自組織形成一服務器群Step1服務器在啟動后自動啟動一進程,偵聽其他服務器發(fā)來的包括心跳、反射信號、競職信號、沖突指示/回復信號等信息,主要用于服務器之間的交互;Step2If如果在2t-5t的時間內(nèi)沒有接收到其他服務器的心跳信息,則認定自己為群中的MNCS,執(zhí)行將SNCS列表置空,Subscriber表置空,BMRT表中只加入自己一個節(jié)點;開始每t時間向網(wǎng)絡廣播周期性心跳信息;并啟動一進程,開始偵聽NC的啟動和應用程序請求,跳至step4;Step3Else認定自己為SNCS,執(zhí)行初始化所屬的Subscriber表;啟動一進程開始偵聽NC的啟動和應用程序請求,跳至step4;Step 4end對于服務器群的動態(tài)調(diào)整按照下列步驟進行一方面對于MNCS
MNCS在首次收到某SNCS反射信號時將其加入群將SNCS插入BMRT表和SNCS列表;通過SNCS列表節(jié)點中的時間戳參數(shù),若MNCS在T0=2t-5t時間內(nèi)收不到某SNCS的反射信號,則以Tn=Tn-1*1/Nn的時間間隔以端對端方式向該SNCS重發(fā)心跳信號,其中N0=2,Nn=Nn-1+1,Nn<=Nmax,Nmax表示最大嘗試次數(shù),可自定義。若Nmax后還無收到SNCS的反射信號,則認定該SNCS在群中不可用,則要更新群關(guān)系,具體地,將綁定至該服務器上的所有客戶端去綁定,即從BMRT表中刪除該SNCS及相關(guān)的客戶端,并在SNCS列表中將該服務器的狀態(tài)置為不可用N/A。
另一方面,對于SNCS一旦SNCS收到MNCS廣播發(fā)出的心跳信號后,將向MNCS回復一發(fā)射信號,若SNCS在2t-5t時間內(nèi),沒有收到MNCS發(fā)出的心跳信息,則認定群中無MNCS,跳至P1執(zhí)行P1發(fā)出一個競職信號;If 2t-5t時間內(nèi)收到MNCS發(fā)來的心跳信號,則跳至P2;Else If沒有收到其他SNCS發(fā)來的競職信號,則自己升級為MNCS將SNCS列表置空,BMRT表中只加入自己一個節(jié)點,并以當前的Subscriber表來初始化BMRT表,即在BMRT表中加入這些客戶端;開始每t時間向網(wǎng)絡廣播周期性心跳信息;跳至P2。
Else If收到其他SNCS發(fā)來的競職信號,則使用二進制指數(shù)回退算法(Binaryexponential backoff algorithm)延遲R*T*2powerN時間,其中R是隨機數(shù),T是上次延遲等待的時間(首次延遲為2t-5t),N是算法被調(diào)用次數(shù),若延遲期間收到心跳信息,則認定自己為SNCS,goto P2;否則goto P1;P2end此外,若任意時刻一個MNCS收到其他MNCS的心跳信號(可能是由于網(wǎng)絡拓撲結(jié)構(gòu)發(fā)生改變,導致同一連通網(wǎng)絡上出現(xiàn)若干MNCS),這時也需要動態(tài)調(diào)整群關(guān)系收到心跳信號的MNCS采用端對端方式向發(fā)出心跳信號的另一MNCS發(fā)送沖突指示信號,其中包括了自己的BMRT表和SNCS列表內(nèi)容;若一MNCS A收到另一MNCS B發(fā)來的沖突指示信號,則A比較B的SNCS數(shù),若A的SNCS數(shù)大于等于B的SNCS數(shù),則A將B插入自己的SNCS表,并將B的BMRT表和SNCS列表內(nèi)容無冗余地插入自身的BMRT表和SNCS,其中將B變?yōu)橐籗NCS,并向B發(fā)送沖突回復信號。否則A向B發(fā)送一沖突指示信號,并在收到B發(fā)送的沖突回復信號之后,認定自己為SNCS,停止發(fā)送心跳信息,初始化BMRT表和SNCS列表。
客戶端可以透明地使用群提供的服務,群對客戶端的服務請求處理則與單服務器對客戶端的服務請求處理的有所不同。客戶端加電啟動后將發(fā)起啟動請求時,群將按下列執(zhí)行步驟提供服務客戶端在網(wǎng)上發(fā)送DHCP廣播消息;SNCS收到消息后,如果在Subscriber列表中找不到該客戶端,則不做處理,忽略收到的請求,否則由該服務器向該客戶端提供服務;MNCS收到客戶端請求后,如果在BMRT表中找不到該客戶端,根據(jù)不同的策略(如基于服務器性能參數(shù)找載荷最輕的,或基于Round Robin的等),將該客戶端綁定到一服務器,并將客戶端插入相應的服務器(MNCS或SNCS)的鏈表。若綁定的服務器是SNCS,則MNCS通知它這次綁定。綁定服務器會將客戶端加入到Subscriber表中,并向該客戶端提供服務;客戶端加載從綁定服務器上下載的操作系統(tǒng)核心鏡像和初始應用程序之后,再次在網(wǎng)絡上廣播,由其綁定服務器進行應答,客戶端因此可以獲知其綁定的服務器,客戶端就完成了啟動。
此后的按需定制、下載應用程序等服務,客戶端都可向其綁定的服務器發(fā)出請求獲得。
作為另一種實施方式,客戶端可以不必知道其綁定的服務器,而采用廣播的方式進行服務請求,服務器判斷若收到的服務請求隸屬自己,則向其提供服務,否則忽略。
如果因為網(wǎng)絡拓撲結(jié)構(gòu)發(fā)生了變化,或綁定服務器發(fā)生了故障,導致客戶端無法從綁定服務器上獲得服務,客戶端可以手工地或在檢測到該情況后自動地重新啟動,由于MNCS將在檢測到相應SNCS不可用后可自動更新群關(guān)系,因此客戶端重啟后將由群將其重新綁定至另一服務器。
作為另一種實施方式,服務器可在啟動后的運行過程中,手工或自動地執(zhí)行加入群的過程,而不必在啟動時執(zhí)行,這種方式更有利于對服務器的定制和動態(tài)擴展群的總負載能力。
以上描述的具體實施方式
只是對本發(fā)明進行示例,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明實質(zhì)性思想的基礎上進行各種修改和改進后得到的技術(shù)方案,均視為在本發(fā)明的范圍之內(nèi)。本發(fā)明適當?shù)姆秶詸?quán)利要求書為準進行確定。
權(quán)利要求
1.一種網(wǎng)絡計算機NC的服務器群自組織方法,NC和服務器任意分布于計算機網(wǎng)絡上,服務器上存儲了NC啟動和運行所需的操作系統(tǒng)和應用程序,其中位于同一廣播可達網(wǎng)絡上的所有服務器屬于同一個服務器群,一個服務器群包括一個主NC服務器MNCS和若干個從NC服務器SNCS,NC只能由屬于群中的服務器為其提供服務,尚未加入群的服務器按照以下步驟自組織成服務器群步驟一啟動一進程,該進程負責偵聽其他服務器發(fā)送的信息;步驟二如果在Td的時間內(nèi)沒有收到心跳信息,則服務器認定自己是群中MNCS,開始以固定的心跳時長向網(wǎng)絡廣播心跳信息,其中Td是數(shù)倍于心跳時長的時間段,并開始偵聽NC的服務請求;否則認定自己是SNCS,開始偵聽NC的服務請求;一SNCS在收到MNCS的心跳信號時向MNCS回復一個反射信號;步驟三MNCS在收到一SNCS的首次反射信號時將其加入群;MNCS根據(jù)各SNCS反射信號中的狀態(tài)信息,動態(tài)維護服務器群的狀態(tài)信息。
2.如權(quán)利要求1所述的網(wǎng)絡計算機的服務器群自組織方法,其特征在于若所述的MNCS在所述Td的時間內(nèi)沒有收到一SNCS的反射信號,則嘗試向該SNCS通信,若一定次數(shù)的嘗試通信后依然無回應,則將該SNCS從群中去除;若一SNCS在Td時間內(nèi)沒有收到心跳信號,則執(zhí)行如下處理步驟1發(fā)出一個競職信號;步驟2假如在等待的Td時間內(nèi)收到一MNCS發(fā)來的心跳信號,則結(jié)束處理;步驟3否則,假如沒有收到其他SNCS發(fā)來的競職信號,則自己升級為MNCS,用自身保持的綁定NC狀態(tài)信息初始化群狀態(tài)信息,并開始廣播心跳信息,結(jié)束處理;步驟4否則,假如收到其他SNCS發(fā)來的競職信號,則延遲一段時間,若延遲期間收到心跳信息,則認定自己為SNCS,結(jié)束處理;否則轉(zhuǎn)到步驟1處理;
3.如權(quán)利要求2所述的網(wǎng)絡計算機的服務器群自組織方法,其特征在于若所述MNCS收到其他MNCS發(fā)出的心跳信號,則向該MNCS發(fā)送一沖突指示信號,其中包括了其所屬群的狀態(tài)信息;若一MNCS A收到另一MNCS B發(fā)出的沖突指示信號,則比較雙方群中所屬的服務器數(shù)量,若前者大于后者,則A將B所屬群的狀態(tài)信息合并至自己所屬群的狀態(tài)信息中,其中將B作為一SNCS插入到A所屬群的狀態(tài)中,并向B發(fā)送一沖突回復信號;若一MNCS收到一沖突回復信號,則認定自己為SNCS,停止發(fā)送心跳信號,并更新相關(guān)狀態(tài)信息。
4.如權(quán)利要求1-3中任一個所述的網(wǎng)絡計算機的服務器群自組織方法,其特征在于按照如下步驟所述NC取得服務器群提供的服務步驟aNC加電后在網(wǎng)絡上廣播啟動請求;步驟b若一SNCS收到請求后,如果發(fā)現(xiàn)該NC隸屬于本服務器,則提供服務;若所述MNCS收到請求后,如果在保持的群狀態(tài)信息中發(fā)現(xiàn)該NC不隸屬于任何服務器,則將該NC綁定至一服務器,并告知該服務器已將該NC綁定到該服務器,由綁定服務器向該NC提供服務;步驟cNC從綁定服務器上下載并加載下載的操作系統(tǒng)核心鏡像和初始應用程序后,再次在網(wǎng)絡上廣播,由其隸屬的綁定服務器進行應答后,該NC即完成了啟動;步驟dNC啟動后,如需獲得按需定制、下載應用程序等服務,都可向其綁定服務器發(fā)出請求獲得;若某一NC在啟動運行后無法從其綁定服務器上獲得服務,則可手工地或在自行檢測到此情況后自動重新啟動。
全文摘要
本發(fā)明涉及一種主從式網(wǎng)絡計算機NC服務器群自組織方法,其中NC和服務器任意分布于計算機網(wǎng)絡上,位于同一廣播可達網(wǎng)絡上的所有服務器屬于同一個服務器群,一個服務器群包括一個主NC服務器MNCS和若干個從NC服務器SNCS,服務器按照以下步驟自組織成服務器群啟動一進程,該進程負責偵聽其它服務器發(fā)送的信息;如果在數(shù)倍于心跳時長的時間段的時間內(nèi)沒有收到心跳信息,則服務器認定是群中MNCS,開始以固定的心跳時長向網(wǎng)絡廣播心跳信息,并開始偵聽NC的服務請求;否則認定自己是SNCS,開始偵聽NC的服務請求。SNCS在收到MNCS的心跳信號時向MNCS回復一個反射信號;MNCS在收到SNCS的首次反射信號時將其加入群;MNCS根據(jù)各SNCS反射信號中的狀態(tài)信息,動態(tài)維護服務器群的狀態(tài)信息。
文檔編號G06F15/16GK1641620SQ20051001112
公開日2005年7月20日 申請日期2005年1月7日 優(yōu)先權(quán)日2005年1月7日
發(fā)明者張堯?qū)W, 徐廣斌, 楊華杰, 匡文淵, 田鵬偉 申請人:清華大學