国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種傳輸鏈路的選擇方法

      文檔序號:7595602閱讀:231來源:國知局
      專利名稱:一種傳輸鏈路的選擇方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及到計(jì)算機(jī)分布式應(yīng)用系統(tǒng)的處理單元間通信技術(shù),特別涉及到與多個(gè)目的處理單元通信時(shí)的傳輸鏈路選擇的方法。
      背景技術(shù)
      隨著信息技術(shù)的不斷發(fā)展,計(jì)算機(jī)應(yīng)用系統(tǒng)的規(guī)模正在加速膨脹,為了滿足計(jì)算機(jī)應(yīng)用系統(tǒng)復(fù)雜程度不斷上升的需要,應(yīng)用程序的組件化和模塊化已是大勢所趨。很多計(jì)算機(jī)應(yīng)用系統(tǒng)已經(jīng)出現(xiàn)了越來越專門化的模塊分工,將復(fù)雜的應(yīng)用程序劃分稱為多個(gè)模塊,由多個(gè)處理單元分別處理,其中的各個(gè)模塊只關(guān)注應(yīng)用系統(tǒng)一個(gè)很小的方面,例如,使用專門的處理單元接入用戶、使用專門的處理單元管理狀態(tài)數(shù)據(jù)等等。各個(gè)處理單元之間通過各種通信手段進(jìn)行相互通信,將處理結(jié)果結(jié)合起來,對外形成一個(gè)整體,提供強(qiáng)大的服務(wù)功能。在此所述的處理單元也可以理解為通常所說的進(jìn)程。
      上述這種類流水線的作業(yè)方式大大提高了計(jì)算機(jī)應(yīng)用系統(tǒng)的伸縮性,即當(dāng)計(jì)算機(jī)應(yīng)用系統(tǒng)中的某個(gè)處理單元的性能出現(xiàn)了瓶頸,只要增加該處理單元的處理能力就可以滿足系統(tǒng)的要求,因此,可以方便的對應(yīng)用系統(tǒng)的處理能力進(jìn)行實(shí)時(shí)的調(diào)整。
      不過,計(jì)算機(jī)應(yīng)用系統(tǒng)各處理單元的協(xié)作是依賴通信平臺(tái)支持的,因此,上述類流水線的作業(yè)方式雖然降低了系統(tǒng)的復(fù)雜度,提高了系統(tǒng)的伸縮性,但同時(shí)也增加了各處理單元之間的通信壓力,進(jìn)而可能影響整個(gè)系統(tǒng)的性能。這樣一來,提高各個(gè)處理單元之間協(xié)作的效率將成為提高計(jì)算機(jī)應(yīng)用系統(tǒng)整體性能的一個(gè)重要的手段。
      在這里,如何提高協(xié)作效率包括以下兩個(gè)方面的問題首先,如何將協(xié)作通知以最快的速度發(fā)送到目的處理單元;其次,如何在能夠處理當(dāng)前任務(wù)的處理單元中獲得處理速度最快的目的處理單元。
      針對上述提高協(xié)作效率的第一個(gè)問題,通??梢圆捎米钇胀ǎ彩亲罨A(chǔ)的套接字(Socket)通信模式實(shí)現(xiàn)將協(xié)作通知以最快的速度發(fā)送到目的處理單元的目的。Socket可以有效的實(shí)現(xiàn)進(jìn)程之間快速通信,但是直接應(yīng)用Socket實(shí)現(xiàn)進(jìn)程間通信限制了系統(tǒng)的伸縮性,靈活性較差,而且軟件重用能力不好。為此,網(wǎng)絡(luò)編程人員通常將Socket作為通信的基礎(chǔ)模塊封裝在通信單元中,而在實(shí)際的進(jìn)程間通信過程中,直接調(diào)用通信單元,這樣可以靈活、簡單的實(shí)現(xiàn)進(jìn)程間通信。
      針對上述提高協(xié)作效率的第二個(gè)問題,即解決如何在可以處理當(dāng)前任務(wù)的處理單元中選擇處理速度最快的處理單元的問題,一般可以引入負(fù)載分擔(dān)機(jī)制,即在進(jìn)程通信前,先通過負(fù)載分擔(dān)機(jī)制選擇當(dāng)前負(fù)載最輕的處理單元進(jìn)行處理。
      當(dāng)前在分布式應(yīng)用中有效結(jié)合上述兩方面的解決方案一般是采用分層的形式實(shí)現(xiàn),即抽象出一個(gè)傳輸層來專門負(fù)責(zé)管理處理單元之間的通信。整個(gè)系統(tǒng)的應(yīng)用模塊將基于該傳輸層的通信支持進(jìn)行開發(fā),傳輸層向上為應(yīng)用程序提供通信服務(wù)接口,應(yīng)用模塊通過這一接口,使用傳輸層提供的服務(wù),完成處理單元之間的數(shù)據(jù)傳輸。
      圖1顯示了當(dāng)前一種典型的計(jì)算機(jī)應(yīng)用系統(tǒng)實(shí)現(xiàn)處理單元之間通信的抽象模型。從圖1可以看出,該模型的各個(gè)處理單元可以抽象成以下幾層模塊底層模塊、傳輸層以及應(yīng)用層。其中,底層模塊包括操作系統(tǒng)、中間件以及各種通用的模塊;傳輸層負(fù)責(zé)管理和維護(hù)處理單元之間的傳輸鏈路,并使用定制的負(fù)載分擔(dān)算法從候選集中選擇處理單元;應(yīng)用層實(shí)現(xiàn)業(yè)務(wù)邏輯,應(yīng)用傳輸層服務(wù)完成數(shù)據(jù)通信。
      在系統(tǒng)的運(yùn)行過程中,應(yīng)用層向傳輸層提交傳輸請求,傳輸層分析請求的任務(wù),應(yīng)用負(fù)載分擔(dān)算法選擇一個(gè)可以處理本次任務(wù)的處理單元,并通過建立和使用到該處理單元的傳輸鏈路來完成傳輸過程。
      可以看出,在圖1所示的處理單元進(jìn)行通信的過程中,每一次通信過程都要首先應(yīng)用已經(jīng)確定的負(fù)載分擔(dān)算法從可以處理本次任務(wù)的處理單元的中選擇一個(gè)處理單元,然后再通過到該處理單元的傳輸路徑完成數(shù)據(jù)通信。
      這樣一來,每一次通信過程所花費(fèi)的時(shí)間就都將包括檢索可以處理本次任務(wù)的目的處理單元,并確定到相應(yīng)處理單元的傳輸路徑所需的時(shí)間;以及在該傳輸路徑上傳輸數(shù)據(jù)包所用的時(shí)間。這里檢索和定位傳輸鏈路只是輔助處理單元協(xié)作,并不是分布式系統(tǒng)處理單元協(xié)作必須花費(fèi)的時(shí)間。
      另外,一個(gè)大型計(jì)算機(jī)應(yīng)用系統(tǒng)的特點(diǎn)是多樣的,因此,在傳輸層應(yīng)用預(yù)先確定的負(fù)載分擔(dān)算法并不總是對所有的通信情況都能有效的發(fā)揮作用。例如,在現(xiàn)有技術(shù)中,負(fù)載分擔(dān)通常是通過傳輸層在可以處理本次任務(wù)的目的處理單元中隨機(jī)選擇,這種隨機(jī)選擇算法在總體上表現(xiàn)為所有處理單元負(fù)載平均的效果,即傳輸層在候選集中所有的處理單元中平均分配請求處理的任務(wù)。這種負(fù)載分擔(dān)算法雖然簡單、易于實(shí)現(xiàn),并且可以基本上平均發(fā)揮各個(gè)處理單元的處理能力,但是,在實(shí)際的應(yīng)用中是有一定局限性的。例如,在系統(tǒng)動(dòng)態(tài)加入某個(gè)新的處理單元或者升級某個(gè)處理單元時(shí),該處理單元的處理能力,包括中央處理器以及內(nèi)存等,都可能與原有的處理單元有較大的偏差,在這種情況下,隨機(jī)選擇算法顯然不能充分發(fā)揮新加入或者新升級處理單元的處理能力。造成新加入或者新升級的處理單元無法快速和整個(gè)系統(tǒng)融合的問題。

      發(fā)明內(nèi)容
      為了解決上述技術(shù)問題,本發(fā)明提供了一種傳輸鏈路的選擇方法,可以最大程度的減少檢索處理單元的時(shí)間,實(shí)現(xiàn)快速的處理任務(wù)分發(fā)。
      本發(fā)明進(jìn)一步的目的是更有效的在處理單元間分配負(fù)載,提高各個(gè)處理單元的協(xié)作性能。
      本發(fā)明所述傳輸鏈路的選擇方法,將負(fù)載分擔(dān)算法處理和負(fù)載數(shù)據(jù)管理分離并分別設(shè)置于處理單元的應(yīng)用層和傳輸層,并在應(yīng)用層和傳輸層之間通過傳輸接口傳遞負(fù)載分擔(dān)算法信息,協(xié)作完成處理任務(wù)的分發(fā)過程;
      該方法還包括以下步驟a、應(yīng)用層檢測是否存在到可以處理本次任務(wù)的處理單元的傳輸鏈路,如果存在,則使用該傳輸鏈路完成本次任務(wù)的分發(fā)過程,然后結(jié)束;否則,執(zhí)行步驟b;b、應(yīng)用層根據(jù)應(yīng)用程序的特點(diǎn)選擇適合的負(fù)載分擔(dān)算法;并通過傳輸接口請求傳輸層提供合適的傳輸鏈路,然后執(zhí)行步驟c;c、傳輸層判斷是否存在可以處理本次任務(wù)的處理單元,如果存在,則根據(jù)應(yīng)用層選擇的負(fù)載分擔(dān)算法從可以處理本次任務(wù)的處理單元中選擇合適的處理單元,然后,使用到所選擇處理單元的傳輸鏈路完成處理單元之間的通信;否則,進(jìn)行異常處理,然后結(jié)束。
      所述方法進(jìn)一步包括在傳輸層建立傳輸鏈路并返回傳輸層鏈路標(biāo)記后,應(yīng)用層創(chuàng)建應(yīng)用層路由標(biāo)記,并通過智能指針建立到該傳輸鏈路的關(guān)聯(lián)。
      并且,在傳輸鏈路狀態(tài)發(fā)生變化時(shí),傳輸層修改其保存的傳輸層鏈路標(biāo)記狀態(tài);應(yīng)用層路由標(biāo)記通過智能指針自動(dòng)獲知該傳輸鏈路狀態(tài)的變化。
      步驟a所述檢測是否存在到可以處理本次任務(wù)的處理單元的傳輸鏈路的方法具體為應(yīng)用層檢測應(yīng)用層路由標(biāo)記的智能指針是否有效。
      步驟b所述的根據(jù)應(yīng)用的特點(diǎn)選擇適合的負(fù)載分擔(dān)算法具體為應(yīng)用程序根據(jù)應(yīng)用所需的處理器能力,或所需的內(nèi)存資源,或所需的網(wǎng)絡(luò)帶寬資源,或三者的任意組合選擇適合的負(fù)載分擔(dān)算法。
      步驟c進(jìn)一步包括在所述傳輸層選擇目的處理單元之后,傳輸層首先判斷是否存在到所選擇處理單元的傳輸鏈路,如果存在,則使用該傳輸鏈路完成處理單元之間的通信過程;否則,傳輸層建立到所選擇處理單元的傳輸鏈路,然后使用建立的傳輸鏈路完成處理單元之間的通信過程。
      所述方法進(jìn)一步包括處理單元接收其他處理單元廣播的負(fù)載數(shù)據(jù),并根據(jù)其他處理單元的負(fù)載數(shù)據(jù)進(jìn)行分類匯總,生成處理單元候選集合;步驟c所述從可以處理本次任務(wù)的處理單元選擇目的處理單元具體為在可以處理本次任務(wù)的處理單元候選集合中選擇目的處理單元。
      所述負(fù)載數(shù)據(jù)包括處理單元可以處理的任務(wù)類型、處理單元的處理能力以及處理單元的當(dāng)前負(fù)載量。
      步驟c所述的負(fù)載分擔(dān)算法為當(dāng)前處理單元的傳輸層在所有可以處理本次任務(wù)的處理單元候選集合中搜索負(fù)載最輕的處理單元。
      處理單元在進(jìn)行步驟c所述負(fù)載分擔(dān)之前設(shè)置搜索步長值;并在可以處理本次任務(wù)的處理單元候選集合中設(shè)置一個(gè)搜索基準(zhǔn)指針,指向搜索起始位置的處理單元;所述的處理單元步驟b所述的負(fù)載分擔(dān)算法包括以下步驟b1、本處理單元在可以處理本次任務(wù)的處理單元候選集合中,從所述搜索基準(zhǔn)指針?biāo)傅奶幚韱卧_始,比較搜索步長值個(gè)數(shù)的處理單元的負(fù)載情況,并從中選擇負(fù)載最輕的處理單元;b2、將所述搜索基準(zhǔn)指針向前移動(dòng)所述搜索步長值的一半,指向下次搜索起始位置的處理單元。
      由此可以看出,應(yīng)用本發(fā)明所述的傳輸鏈路選擇方法可以獲得以下有益效果1、本發(fā)明通過使用傳輸鏈路標(biāo)記,在處理任務(wù)分發(fā)時(shí),選擇使用應(yīng)用層路由標(biāo)記所保存的傳輸鏈路,而不用重復(fù)檢索處理單元,從而減少了傳輸鏈路選擇的時(shí)間,實(shí)現(xiàn)了快速的傳輸鏈路選擇,同時(shí)也避免了傳輸鏈路的二次建立過程;2、本發(fā)明通過讓應(yīng)用程序?qū)崿F(xiàn)負(fù)載分擔(dān)算法功能,而在傳輸層實(shí)現(xiàn)負(fù)載數(shù)據(jù)管理的功能,可以充分根據(jù)進(jìn)程的特點(diǎn)靈活的引入各種負(fù)載分擔(dān)算法,從而更有效的發(fā)揮各處理單元的處理能力,提高處理單元之間的協(xié)作性能,以及分布式應(yīng)用的系統(tǒng)伸縮性。


      圖1顯示了目前典型的計(jì)算機(jī)應(yīng)用系統(tǒng)處理單元之間通信的抽象模型;圖2顯示了本發(fā)明一個(gè)優(yōu)選實(shí)施例所述的應(yīng)用系統(tǒng)實(shí)現(xiàn)處理單元之間通信的抽象模型;圖3為本發(fā)明一個(gè)優(yōu)選實(shí)施例所述的應(yīng)用層通信方法的流程圖;圖4為本發(fā)明一個(gè)優(yōu)選實(shí)施例所述的處理單元應(yīng)用層路由標(biāo)記和傳輸層鏈路標(biāo)記的關(guān)系示意圖;圖5為本發(fā)明一個(gè)優(yōu)選實(shí)施例所述的負(fù)載分擔(dān)算法流程圖。
      具體實(shí)施例方式
      下面結(jié)合附圖以及具體的實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
      為了實(shí)現(xiàn)分布式應(yīng)用系統(tǒng)各處理單元更好的協(xié)作,本發(fā)明的一個(gè)優(yōu)選實(shí)施例對現(xiàn)有的負(fù)載分擔(dān)處理方法進(jìn)行了改進(jìn)。圖2顯示了該實(shí)施例所述的計(jì)算機(jī)應(yīng)用系統(tǒng)實(shí)現(xiàn)處理單元之間通信的抽象模型。如圖2所示,所述實(shí)施例將負(fù)載分擔(dān)算法處理和負(fù)載數(shù)據(jù)管理分離并分別設(shè)置于處理單元的應(yīng)用層和傳輸層,并在應(yīng)用層和傳輸層之間通過傳輸接口(TI,Transport Interface)傳遞負(fù)載分擔(dān)算法信息,協(xié)作完成處理任務(wù)的分發(fā)過程。
      其中,位于應(yīng)用層的負(fù)載分擔(dān)算法處理模塊可以根據(jù)應(yīng)用自身的特點(diǎn)選擇適合的負(fù)載分擔(dān)算法。例如,某個(gè)應(yīng)用對處理能力以及內(nèi)存資源的要求很高,應(yīng)用程序所設(shè)計(jì)的負(fù)載分擔(dān)算法就可以選擇當(dāng)前處理能力最強(qiáng)、內(nèi)存資源最空閑的處理單元;而如果某個(gè)進(jìn)程對帶寬資源要求比較高,應(yīng)用程序所設(shè)計(jì)的負(fù)載分擔(dān)算法就可以選擇到本處理單元傳輸鏈路帶寬最寬的處理單元。應(yīng)用層的負(fù)載分擔(dān)算法處理模塊甚至可以考慮隨著處理單元候選集合中處理單元負(fù)載狀況的變化更新負(fù)載分擔(dān)算法,比如,如果處理單元候選集合處理單元負(fù)載普遍較輕,就沒有必要選擇太精確的負(fù)載分擔(dān)算法。
      而位于傳輸層的負(fù)載數(shù)據(jù)管理模塊用于收集和管理其他處理單元的負(fù)載數(shù)據(jù),例如,其他處理單元可以處理的任務(wù)類型,正在運(yùn)行的任務(wù)數(shù)目以及最大處理能力等等,然后對其他處理單元的負(fù)載數(shù)據(jù)進(jìn)行分類匯總,形成針對各類處理目標(biāo)的處理單元候選集合,并生成其他處理單元的負(fù)載指標(biāo)。每個(gè)處理單元候選集合實(shí)時(shí)的反映了當(dāng)前可為某種處理目標(biāo)服務(wù)的處理單元的數(shù)量以及狀態(tài)。
      這樣,通過圖2所述的抽象模型,改變了現(xiàn)有技術(shù)中由于負(fù)載分擔(dān)功能在傳輸層實(shí)現(xiàn)而帶來的種種限制,在分布式應(yīng)用系統(tǒng)中可以更有效的發(fā)揮各個(gè)處理單元的處理能力,提高處理單元之間的協(xié)作性能。
      另外,為了進(jìn)一步降低建立及選擇到目的處理單元的傳輸鏈路所需的時(shí)間,實(shí)現(xiàn)快速的鏈路選擇及通信過程,本發(fā)明的優(yōu)選實(shí)施例在處理單元應(yīng)用層的負(fù)載分擔(dān)算法處理模塊引入了應(yīng)用層路由標(biāo)記,該應(yīng)用層路由標(biāo)記用于記錄該處理單元到相應(yīng)目的處理單元的傳輸路由,以作為后續(xù)傳輸過程是否重選傳輸鏈路的依據(jù)。
      下面結(jié)合圖2進(jìn)行說明,如果處理單元1建立與處理單元2的傳輸鏈路,則處理單元1應(yīng)用層的負(fù)載分擔(dān)算法處理模塊將保存一個(gè)到處理單元2的應(yīng)用層路由標(biāo)記。而如果處理單元1到處理單元2的傳輸鏈路出現(xiàn)異常,則處理單元1應(yīng)用層的負(fù)載分擔(dān)算法處理模塊應(yīng)該釋放該到處理單元2的應(yīng)用層路由標(biāo)記。這樣,在下一次處理單元1與處理單元2的通信過程中,處理單元1的應(yīng)用層可以首先檢測相應(yīng)的應(yīng)用層路由標(biāo)記是否有效,如果該應(yīng)用層路由標(biāo)記有效,則處理單元1就可以直接通過該應(yīng)用層路由標(biāo)記所記錄的已經(jīng)建立的傳輸鏈路進(jìn)行數(shù)據(jù)通信,而無需再次啟動(dòng)負(fù)載分擔(dān)過程,從而節(jié)省了搜索、選擇處理單元的時(shí)間,實(shí)現(xiàn)了快速的傳輸鏈路選擇。由此,應(yīng)用程序就可以充分利用已建立的傳輸鏈路進(jìn)行數(shù)據(jù)傳輸,而不需要在每一次的通信過程中都檢索并選擇處理單元,進(jìn)而實(shí)現(xiàn)了進(jìn)程間的快速通信。
      圖3顯示了本發(fā)明一個(gè)優(yōu)選實(shí)施例所述傳輸鏈路的選擇過程。如圖3所示,本發(fā)明所述傳輸鏈路的選擇過程包括如下步驟步驟301應(yīng)用程序發(fā)送傳輸請求到處理單元應(yīng)用層的負(fù)載分擔(dān)算法處理模塊,該傳輸請求中包含待其他處理單元處理的任務(wù);步驟302負(fù)載分擔(dān)算法處理模塊檢測是否存在與可以處理步驟301所述任務(wù)的處理單元相對應(yīng)的應(yīng)用層路由標(biāo)記,如果有,則執(zhí)行步驟306;否則,則執(zhí)行步驟303;步驟303負(fù)載分擔(dān)算法處理模塊選擇適合的負(fù)載分擔(dān)算法,使用本次任務(wù)的特征信息通過傳輸接口向傳輸層請求傳輸鏈路;傳輸層判斷是存在相應(yīng)的處理單元候選集合,如果有,則執(zhí)行步驟304;否則,執(zhí)行步驟307;步驟304傳輸層根據(jù)選擇的負(fù)載分擔(dān)算法,選擇適合的處理單元,并判斷是否存在到所選擇處理單元的傳輸鏈路,如果存在,則執(zhí)行步驟305;否則,傳輸層建立到所選擇處理單元的傳輸鏈路,然后,執(zhí)行步驟305;步驟305負(fù)載分擔(dān)算法處理模塊保存該應(yīng)用層路由標(biāo)記,然后,執(zhí)行步驟306;步驟306負(fù)載分擔(dān)算法處理模塊使用該應(yīng)用層路由標(biāo)記所記錄的傳輸鏈路完成進(jìn)程間通信;步驟307應(yīng)用程序進(jìn)行異常處理,標(biāo)志本次處理任務(wù)分發(fā)過程失敗。
      為了實(shí)現(xiàn)圖3所示的方法,必須保證處理單元應(yīng)用層的負(fù)載分擔(dān)算法處理模塊所保存的應(yīng)用層路由標(biāo)記實(shí)時(shí)的反映當(dāng)前本處理單元與其他處理單元之間傳輸鏈路的狀態(tài)。但是,由于處理單元的分層結(jié)構(gòu)以及系統(tǒng)設(shè)計(jì)的通信單元封裝原則,雖然負(fù)責(zé)管理和維護(hù)處理單元之間傳輸鏈路的傳輸層可以實(shí)時(shí)的獲得傳輸鏈路的狀態(tài),但是傳輸層沒有直接的接口可以通知應(yīng)用層傳輸鏈路的狀態(tài)已經(jīng)改變。這樣,就很可能會(huì)產(chǎn)生應(yīng)用層的負(fù)載分擔(dān)算法處理模塊所保存的應(yīng)用層路由標(biāo)記與實(shí)際的鏈路狀態(tài)不一致的情況。很明顯,這將導(dǎo)致通信過程的失敗。
      為了解決這一問題,本發(fā)明的一個(gè)優(yōu)選實(shí)施例在建立傳輸鏈路時(shí),處理單元的傳輸層也建立一個(gè)傳輸層鏈路標(biāo)記,記錄該處理單元到相應(yīng)處理單元的傳輸鏈路。圖4為該優(yōu)選實(shí)施例所述的處理單元應(yīng)用層路由標(biāo)記和傳輸層鏈路標(biāo)記關(guān)系的示意圖。如圖4所示,處理單元的傳輸層鏈路標(biāo)記具體為傳輸層的連接器對象,應(yīng)用層路由標(biāo)記具體為應(yīng)用層的路由對象,這兩個(gè)對象均標(biāo)記同一個(gè)傳輸鏈路。其中,應(yīng)用層的路由對象進(jìn)一步包括一個(gè)指向傳輸層連接器對象的智能指針,通過該智能指針,保證傳輸層鏈路標(biāo)記和應(yīng)用層路由標(biāo)記狀態(tài)一致,實(shí)現(xiàn)傳輸層傳輸鏈路狀態(tài)向應(yīng)用層隱式透傳的目的,即如果該智能指針不為空,則該應(yīng)用層路由標(biāo)記為有效狀態(tài);而如果該智能指針為空,則該應(yīng)用層路由標(biāo)記為無效狀態(tài)。
      在傳輸層建立傳輸鏈路時(shí),處理單元在傳輸層和應(yīng)用層分別建立一個(gè)連接器對象、一個(gè)路由對象,并且應(yīng)用層的路由對象的智能指針指向相對應(yīng)的傳輸層連接器對象。這兩個(gè)對象都標(biāo)記了到對應(yīng)處理單元的傳輸鏈路。這樣,在傳輸鏈路正常的情況下,應(yīng)用程序可以通過其應(yīng)用層路由對象的智能指針找到所標(biāo)記的傳輸鏈路,并通過該傳輸鏈路完成數(shù)據(jù)通信。而當(dāng)傳輸鏈路不可用時(shí),傳輸層釋放相應(yīng)連接器對象的操作將導(dǎo)致應(yīng)用層的路由對象變?yōu)闊o效狀態(tài)。這樣應(yīng)用層路由標(biāo)記就可以通過檢測其智能指針實(shí)時(shí)的獲得相應(yīng)傳輸鏈路的狀態(tài)。
      由此,負(fù)載分擔(dān)算法處理模塊通過檢測應(yīng)用層的路由對象的智能指針是否有效就可以實(shí)現(xiàn)步驟302所述的檢測應(yīng)用層路由標(biāo)記是否存在的操作。
      另外,在本發(fā)明所述方法的步驟304,負(fù)載分擔(dān)算法處理模塊可以選擇現(xiàn)有技術(shù)中的隨機(jī)分擔(dān)算法,也可以選擇多種其他的負(fù)載分擔(dān)算法,本發(fā)明并沒有對負(fù)載分擔(dān)算法的選擇給予限制。
      本發(fā)明的一個(gè)優(yōu)選實(shí)施例提供了一種負(fù)載分擔(dān)算法以及負(fù)載數(shù)據(jù)管理的方法,該實(shí)施例的負(fù)載分擔(dān)算法適于應(yīng)用對負(fù)載分擔(dān)精度要求較高的情況。另外,該實(shí)施例的負(fù)載數(shù)據(jù)管理利用目的處理單元的處理能力以及當(dāng)前負(fù)載情況的負(fù)載數(shù)據(jù)等,在處理單元候選集合中實(shí)際負(fù)載與處理能力比值最小的處理單元,即當(dāng)前負(fù)載最輕的處理單元。其中,處理單元候選集合是由傳輸層的負(fù)載數(shù)據(jù)管理模塊建立并維護(hù)的。
      為了實(shí)時(shí)獲得其他處理單元的負(fù)載情況,處理能力以及可以處理的任務(wù)類型,每個(gè)處理單元會(huì)周期的廣播這些值到其他處理單元的負(fù)載數(shù)據(jù)管理模塊,廣播的周期越短,傳輸層鏈路標(biāo)記記錄的數(shù)據(jù)就越準(zhǔn)確,進(jìn)而負(fù)載分擔(dān)算法就越有效。但是,另一方面,廣播周期的縮短將會(huì)導(dǎo)致處理單元之間傳送的狀態(tài)信息量加大,造成網(wǎng)絡(luò)的負(fù)載變重,降低系統(tǒng)協(xié)作性能。該廣播周期一般根據(jù)應(yīng)用所期望的負(fù)載信息精確度來設(shè)定。
      從上述負(fù)載分擔(dān)算法以及負(fù)載數(shù)據(jù)管理方法可以看出,本實(shí)施例所述的負(fù)載數(shù)據(jù)管理并不會(huì)對處理單元候選集合的大小進(jìn)行限制,因此,可以在系統(tǒng)中不斷加入新的處理單元。另外,由于新加入系統(tǒng)的處理單元或新升級的處理單元當(dāng)前負(fù)載為零,會(huì)在一段時(shí)間內(nèi)成為處理任務(wù)分配的主要目標(biāo),直到該處理單元的負(fù)載與其他處理單元的負(fù)載逐漸持平為止,因此本實(shí)施例能夠保證新的處理單元快速、無縫的融入整個(gè)分布式系統(tǒng)。
      但是,在整個(gè)處理單元候選集合中搜索負(fù)載最輕的目的處理單元的時(shí)間復(fù)雜度是線性的,這樣就會(huì)隨著分布式應(yīng)用系統(tǒng)規(guī)模的擴(kuò)展出現(xiàn)算法退化的問題。因此,在本發(fā)明的另一個(gè)實(shí)施例中,其負(fù)載分擔(dān)算法采用了次優(yōu)搜索的算法,即搜索算法不再在整個(gè)處理單元候選集的范圍內(nèi)進(jìn)行搜索,而是根據(jù)事先約定的經(jīng)驗(yàn)搜索步長值Step,每次僅搜索指定步長Step個(gè)數(shù)的處理單元,并在這個(gè)搜索步長內(nèi)找出一個(gè)負(fù)載最輕的處理單元作為該次處理任務(wù)分發(fā)的目的處理單元。該負(fù)載分擔(dān)算法也適合當(dāng)前任務(wù)分發(fā)處理單元負(fù)載較高的情況,這樣就可以盡快將任務(wù)分發(fā)出去,降低處理能力占用。
      圖5為該優(yōu)選實(shí)施例所述的負(fù)載分擔(dān)算法流程圖。如圖5所示,本發(fā)明所述的負(fù)載分擔(dān)算法在可以處理本次任務(wù)的處理單元候選集合中,設(shè)置一個(gè)搜索基準(zhǔn)指針,指示本次搜索的起始位置,并通過控制該指針的移動(dòng)實(shí)現(xiàn)候選集中每個(gè)處理單元均等的被選擇機(jī)會(huì);另外算法設(shè)定了一個(gè)經(jīng)驗(yàn)搜索步長值Step,本實(shí)施例中該值被置為5;本發(fā)明所述負(fù)載分擔(dān)算法包括以下步驟步驟501從搜索基準(zhǔn)指針?biāo)傅奶幚韱卧_始,比較步長值Step個(gè)處理單元的負(fù)載情況,并從中選擇一個(gè)當(dāng)前負(fù)載與處理能力比值最小的處理單元,即負(fù)載最輕的處理單元;步驟502將搜索基準(zhǔn)指針向前移動(dòng)步長值的一半,即移動(dòng)Step/2個(gè)處理單元,作為下一次搜索的起始搜索點(diǎn);步驟503建立到該處理單元的傳輸鏈路,實(shí)現(xiàn)數(shù)據(jù)傳輸。
      在這一實(shí)施例中,通過多次的負(fù)載分擔(dān)搜索過程,搜索基準(zhǔn)指針可以在處理單元的候選集合中循環(huán),使得處理單元候選集合中所有的處理單元都能夠參與負(fù)載分擔(dān),因而保證了負(fù)載分擔(dān)算法的公平性,基本實(shí)現(xiàn)充分發(fā)揮所有處理單元處理能力,實(shí)現(xiàn)各個(gè)處理單元之間有效的協(xié)作的目的。
      另外,所述負(fù)載分擔(dān)算法是在預(yù)先設(shè)定的Step個(gè)處理單元之間選擇負(fù)載最輕的處理單元,而不是在整個(gè)處理單元候選集合中檢索,這樣,就使得檢索的時(shí)間大大減少,進(jìn)而提高了應(yīng)用程序搜索目的處理單元的效率。
      需要說明的是,上述處理單元處理能力為虛擬的處理能力,這個(gè)處理能力可能是系統(tǒng)的標(biāo)稱指標(biāo),也可能是系統(tǒng)的一個(gè)配置參數(shù),甚至有可能是在一個(gè)硬件系統(tǒng)上實(shí)現(xiàn)多個(gè)處理單元的情況下,將該硬件系統(tǒng)的實(shí)際處理能力以某種方式分配到上述多個(gè)處理單元時(shí),每個(gè)處理單元所配置的處理能力。
      由上述實(shí)施例可以看出,本發(fā)明所述的方法通過將負(fù)載分擔(dān)算法處理功能移到處理單元的應(yīng)用層,并且在傳輸層增加負(fù)載數(shù)據(jù)管理的功能,可以充分根據(jù)應(yīng)用的特點(diǎn)靈活的引入各種負(fù)載分擔(dān)算法,從而更有效的發(fā)揮了處理單元的處理能力,提高了處理單元之間的協(xié)作性能。
      另外,本發(fā)明所述方法通過為傳輸鏈路設(shè)立標(biāo)記的方法,可以在數(shù)據(jù)傳輸?shù)臅r(shí)候使用保存在應(yīng)用層路由標(biāo)記的傳輸鏈路,而不用二次檢索目的處理單元,從而減少了選擇傳輸鏈路的時(shí)間,實(shí)現(xiàn)了快速有效的處理單元間協(xié)作。
      以上舉優(yōu)選的實(shí)施例,對本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)進(jìn)行了進(jìn)一步的詳細(xì)說明,所應(yīng)理解的是,以上所述為本發(fā)明的優(yōu)選實(shí)施例而已,并不用以顯示本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種傳輸鏈路選擇的方法,其特征在于,該方法將負(fù)載分擔(dān)算法處理和負(fù)載數(shù)據(jù)管理分離并分別設(shè)置于處理單元的應(yīng)用層和傳輸層,并在應(yīng)用層和傳輸層之間通過傳輸接口傳遞負(fù)載分擔(dān)算法信息,協(xié)作完成處理任務(wù)的分發(fā)過程;該方法還包括以下步驟a、應(yīng)用層檢測是否存在到可以處理本次任務(wù)的處理單元的傳輸鏈路,如果存在,則使用該傳輸鏈路完成本次任務(wù)的分發(fā)過程,然后結(jié)束;否則,執(zhí)行步驟b;b、應(yīng)用層根據(jù)應(yīng)用的特點(diǎn)選擇適合的負(fù)載分擔(dān)算法;并通過傳輸接口請求傳輸層提供合適的傳輸鏈路,然后執(zhí)行步驟c;c、傳輸層判斷是否存在可以處理本次任務(wù)的處理單元,如果存在,則根據(jù)應(yīng)用層選擇的負(fù)載分擔(dān)算法從可以處理本次任務(wù)的處理單元中選擇合適的處理單元,然后,使用到所選擇處理單元的傳輸鏈路完成處理單元之間的通信;否則,進(jìn)行異常處理,然后結(jié)束。
      2.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括在傳輸層建立傳輸鏈路并返回傳輸層鏈路標(biāo)記后,應(yīng)用層創(chuàng)建應(yīng)用層路由標(biāo)記,并通過智能指針建立到該傳輸鏈路的關(guān)聯(lián)。
      3.如權(quán)利要求2所述的方法,其特征在于,在傳輸鏈路狀態(tài)發(fā)生變化時(shí),傳輸層動(dòng)態(tài)修改其所保存的傳輸層鏈路標(biāo)記狀態(tài);應(yīng)用層路由標(biāo)記通過智能指針自動(dòng)獲知該傳輸鏈路狀態(tài)的變化。
      4.如權(quán)利要求1、2或3所述的方法,其特征在于,步驟a所述檢測是否存在到可以處理本次任務(wù)的處理單元的傳輸鏈路的方法具體為應(yīng)用層檢測應(yīng)用層路由標(biāo)記的智能指針是否有效。
      5.如權(quán)利要求1所述的方法,其特征在于,步驟b所述的根據(jù)應(yīng)用的特點(diǎn)選擇適合的負(fù)載分擔(dān)算法具體為應(yīng)用程序根據(jù)本次任務(wù)所需的處理器能力,或所需的內(nèi)存資源,或所需的網(wǎng)絡(luò)帶寬資源,或三者的任意組合選擇適合的負(fù)載分擔(dān)算法。
      6.如權(quán)利要求1所述的方法,其特征在于,步驟c進(jìn)一步包括在所述傳輸層選擇目的處理單元之后,傳輸層首先判斷是否存在到所選擇處理單元的傳輸鏈路,如果存在,則使用該傳輸鏈路完成處理單元之間的通信過程;否則,傳輸層建立到所選擇處理單元的傳輸鏈路,然后使用建立的傳輸鏈路完成處理單元之間的通信過程。
      7.如權(quán)利要求1所述的方法,其特征在于,所述方法進(jìn)一步包括處理單元接收其他處理單元廣播的負(fù)載數(shù)據(jù),并根據(jù)其他處理單元的負(fù)載數(shù)據(jù)進(jìn)行分類匯總,生成處理單元候選集合;步驟c所述從可以處理本次任務(wù)的處理單元選擇目的處理單元具體為在可以處理本次任務(wù)的處理單元候選集合中選擇目的處理單元。
      8.如權(quán)利要求7所述的方法,其特征在于,所述負(fù)載數(shù)據(jù)包括處理單元可以處理的任務(wù)類型、處理單元的處理能力以及處理單元的當(dāng)前負(fù)載量。
      9.如權(quán)利要求7所述的方法,其特征在于,步驟c所述的負(fù)載分擔(dān)算法為當(dāng)前處理單元的傳輸層在所有可以處理本次任務(wù)的處理單元候選集合中搜索負(fù)載最輕的處理單元。
      10.如權(quán)利要求7所述的方法,其特征在于,處理單元在進(jìn)行步驟c所述負(fù)載分擔(dān)之前設(shè)置搜索的步長值;并在可以處理本次任務(wù)的處理單元候選集合中設(shè)置一個(gè)搜索基準(zhǔn)指針,指向位于搜索起始位置的處理單元;所述的處理單元步驟b所述的負(fù)載分擔(dān)算法包括以下步驟b1、本處理單元在可以處理本次任務(wù)的處理單元候選集合中,從所述搜索基準(zhǔn)指針?biāo)傅奶幚韱卧_始,比較搜索步長值個(gè)數(shù)的處理單元的負(fù)載情況,并從中選擇負(fù)載最輕的處理單元;b2、將所述搜索基準(zhǔn)指針向前移動(dòng)所述搜索步長值的一半,作為下一次搜索的起始搜索點(diǎn)。
      全文摘要
      本發(fā)明公開了一種傳輸鏈路的選擇方法,該方法將負(fù)載分擔(dān)算法和負(fù)載數(shù)據(jù)管理進(jìn)行分離并分別設(shè)置于處理單元的應(yīng)用層和傳輸層,通過應(yīng)用層和傳輸層來協(xié)作完成分布式應(yīng)用的處理任務(wù)分發(fā)過程。該方法包括應(yīng)用層首先檢測是否存在到可以處理該任務(wù)的目的處理單元的傳輸鏈路,如果存在,則使用該傳輸鏈路完成處理任務(wù)分發(fā)過程;否則,應(yīng)用層選擇適當(dāng)?shù)呢?fù)載分擔(dān)算法,并通過傳輸接口向傳輸層請求可用的傳輸鏈路;傳輸層使用負(fù)載分擔(dān)算法在其所維護(hù)的處理單元候選集中選擇一個(gè)合適的處理單元,并建立到該處理單元的傳輸鏈路;應(yīng)用層保存并使用傳輸層返回的傳輸鏈路完成處理任務(wù)的分發(fā)。本發(fā)明實(shí)現(xiàn)了處理任務(wù)的快速分發(fā),提高了分布式應(yīng)用的系統(tǒng)伸縮性。
      文檔編號H04L29/04GK1744593SQ20041006428
      公開日2006年3月8日 申請日期2004年8月30日 優(yōu)先權(quán)日2004年8月30日
      發(fā)明者王剛 申請人:普天信息技術(shù)研究院
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1