專利名稱::分布式企業(yè)計算機環(huán)境中的負載平衡的制作方法
技術領域:
:本發(fā)明涉及對大型分布式企業(yè)計算機環(huán)境的管理,特別是調(diào)節(jié)管理環(huán)境中計算機資源間的數(shù)據(jù)分配的問題。要為復雜的網(wǎng)絡設計最有效的報文分配分層體系,必須考慮諸多因素,包括網(wǎng)絡拓撲結構、網(wǎng)絡帶寬和機器資源。設計良好的分配方法應該既高效又能容錯。不過,由于現(xiàn)今實際使用的各種網(wǎng)絡的功能差異,不可能事先選擇一種適用于所有網(wǎng)絡的分配方法。對于地理位置分散的大型網(wǎng)絡環(huán)境,這個問題尤其突出。已知這樣一種環(huán)境,它包括一個管理框架(managementframework),管理框架中有一個對若干節(jié)點進行管理的服務器,每個節(jié)點有一個本地對象數(shù)據(jù)庫,存放該本地節(jié)點的對象數(shù)據(jù)。服務器用來執(zhí)行各種系統(tǒng)管理任務,包括有效地進行一對多的數(shù)據(jù)分配的多路轉(zhuǎn)接分配服務。數(shù)據(jù)分配一般是通過對象方法調(diào)用(objectmethodinvocation)在各個目標節(jié)點處啟動的。還已知,在這種分配方案中,用了一個可以調(diào)節(jié)的網(wǎng)絡負載參數(shù),通過設定該參數(shù),能限制數(shù)據(jù)分配在單位時間內(nèi)寫數(shù)據(jù)的量。然而,這種技術沒有充分解決當多個端點(endpoint)同時尋求獲得分配服務時可能發(fā)生的嚴重的負載問題。下面用一個分配分層體系示例對這個問題進行闡釋。假定在網(wǎng)絡中有一個轉(zhuǎn)發(fā)器扇出到50臺機器,所有機器都連接在單獨的T1鏈路上,該網(wǎng)絡有一個10mbit的局域網(wǎng)(LAN),它是通往管理著各T1鏈路的路由器的必經(jīng)之路。轉(zhuǎn)發(fā)器的持續(xù)發(fā)送速率為750KB/秒,為了合理控制局域網(wǎng)的通信量,設定網(wǎng)絡負載調(diào)節(jié)參數(shù)為500KB/秒。本例中,因為同時只能有4-5個端點(500/1.5)占線,所以局域網(wǎng)就成為“瓶頸”。如果同時向5個以上的端點進行分配,各個分配的速度就會減慢。要是向所有50個機器發(fā)送分配數(shù)據(jù),其效果是,每個網(wǎng)絡只有十分之一的占線率。如果端點機(endpointmachine)使用的調(diào)制解調(diào)器速度較低(例如小于9600波特),問題就更糟糕。調(diào)制解調(diào)器速度低是個相當普遍的現(xiàn)象,因為端點機通常都是企業(yè)最不情愿進行設備更新的對象。在這種設備陳舊的網(wǎng)絡上,就是一次16K的寫操作,也足以使網(wǎng)絡堵塞30秒,不能進行其它工作。因此,有必要提供一種改進的機理,在所管理的網(wǎng)絡環(huán)境中有效地進行數(shù)據(jù)分配。本發(fā)明的一個主要目的是,為分布式企業(yè)計算環(huán)境提供一種有效地進行一對多數(shù)據(jù)分配的服務。本發(fā)明的一個更具體目的是,在具有地理位置分散的多個端點機的大型的所管理的企業(yè)內(nèi)控制數(shù)據(jù)的分配。本發(fā)明的另一個目的是,使企業(yè)能將其所有的計算資源置于一個管理可靠、低耗高效的網(wǎng)絡上,在企業(yè)內(nèi)部提供一種有效的數(shù)據(jù)分配服務。本發(fā)明的再一個目的是,在管理環(huán)境中提供一種多路轉(zhuǎn)接分配方案,平衡其中連接各自端點機的一個或多個網(wǎng)絡上的分配負載。本發(fā)明的再一個目的是,為鏈接端點機與企業(yè)環(huán)境中管理節(jié)點的各個網(wǎng)絡提供負載控制。本發(fā)明的再一個目的是,方便分布式大型企業(yè)環(huán)境中對端點機進行的并行數(shù)據(jù)分配。本發(fā)明的再一個目的是,利用數(shù)據(jù)分配期間的網(wǎng)絡實際負載數(shù)據(jù),保證各個網(wǎng)絡的負載不超過一期望負載值。本發(fā)明的再一個目的是,滿足地理位置分散的大型網(wǎng)絡的用戶的需要,特別是顯著地提高網(wǎng)絡管理人員數(shù)據(jù)分配的能力。上述及其它種種目的在一個分布式大型企業(yè)內(nèi)得以實現(xiàn),該企業(yè)中的計算機資源是按一個或多個管理區(qū)域組織的,每個區(qū)域由一個管理服務器管理,其中,管理服務器服務一個或多個網(wǎng)關機,而每個網(wǎng)關機服務多個端點機。最好在各網(wǎng)關機及其一個或多個端點機上“分布”一個系統(tǒng)管理框架(systemmanagementframework),執(zhí)行系統(tǒng)管理任務。為了平衡數(shù)據(jù)的分配,網(wǎng)絡管理員首先要設置負載參數(shù)(loadparameter),負載參數(shù)確定網(wǎng)關機及其服務的端點之間每個網(wǎng)絡路徑(networkpath)中每個子網(wǎng)上,一次特定數(shù)據(jù)分配所允許占用的網(wǎng)絡帶寬的量。在啟動數(shù)據(jù)分配之前,先要計算這次數(shù)據(jù)分配將要影響的每個子網(wǎng)的有效負載。然后判定,在該數(shù)據(jù)分配影響的子網(wǎng)中,是否有任何子網(wǎng)的有效負載超過該子網(wǎng)的負載參數(shù)。如果是這樣,就通過在從網(wǎng)關向該受影響的網(wǎng)絡路徑進行的數(shù)據(jù)傳輸?shù)乃俾手胁迦胍粋€或多個延時的方法,改變數(shù)據(jù)分配。然后再啟動改變后的數(shù)據(jù)分配。對每次新的數(shù)據(jù)分配,或者每隔預定的時間,重復上述步驟。以上概括了本發(fā)明的若干目的。這些目的只是為了解釋本發(fā)明的一些比較主要的特點和應用。用其它方法實施本發(fā)明或?qū)Ρ景l(fā)明加以改進,可以獲得許多其它有益效果,這些將在下文中有所說明。因此,要更完整地理解本發(fā)明,了解本發(fā)明的其它目的,可參閱以下對較佳實施例的詳細說明。為了更徹底地理解本發(fā)明及其優(yōu)點,應參閱下面的詳細說明并結合本說明書的各個附圖,其中附圖1表示本發(fā)明所應用于的大型分布式計算機企業(yè)環(huán)境的簡圖。附圖2是一個較佳的系統(tǒng)管理框架的方框圖,它表示了該框架功能是如何在一個管域(managedregion)內(nèi)的網(wǎng)關及其端點上分布的。附圖2A是系統(tǒng)管理框架的LCF客戶機功能塊(clientcomponent)的方框圖。附圖3表示一個較小型的企業(yè)“工作組”(workgroup)應用實例,其中,服務器功能和網(wǎng)關功能由同一個機器支持。附圖4A-4D表示一個管理網(wǎng)絡示例中網(wǎng)關機與一對端點機之間的有代表性的幾種網(wǎng)絡連接。附圖5表示由附圖4A-4D中所有代表性的部分管理網(wǎng)絡的網(wǎng)絡連接結合成的一個超級網(wǎng)絡。附圖6是本發(fā)明管理數(shù)據(jù)分配的一個較佳方法的流程圖。附圖7簡單地表示了系統(tǒng)管理員是如何執(zhí)行系統(tǒng)管理任務的。附圖8表示了本發(fā)明中進行數(shù)據(jù)分配時應用的ORB/BOA對象調(diào)用(object-invocation)的機理。參見附圖1,本發(fā)明的理想實施環(huán)境是有成千上萬個“節(jié)點”的大型分布式計算機環(huán)境10。各節(jié)點的地理位置分散,整個環(huán)境是按分布式方式進行管理的。最好將管理環(huán)境(ME-managedenvironment)在邏輯上分解為一系列連接松散的管域(MR)12,每個MR有自己的管理服務器14,管理其當?shù)刭Y源。網(wǎng)絡中一般要含有其它服務器(圖中未予示出),執(zhí)行其它分布式網(wǎng)絡功能。這些服務器包括名稱服務器(nameservers)、安全服務器(securityservers)、文件服務器(fileservers)、線程服務器(threadsservers)、時間服務器(timeservers)等等。眾多的服務器14協(xié)調(diào)企業(yè)范圍內(nèi)的活動,允許進行遠程現(xiàn)場管理和操作。每個服務器14服務于多個網(wǎng)關機16,每個網(wǎng)關機又進一步支持多個端點18。服務器14用終端節(jié)點管理器(terminalnodemanager)20協(xié)調(diào)管域內(nèi)的所有活動。參見附圖2,每個網(wǎng)關機16運行系統(tǒng)管理框架的一個服務器功能模塊(servercomponent)22。服務器功能模塊22是多線程執(zhí)行進程(multi-threadedruntimeprocess),它包括幾個功能模塊一個對象請求中斷程序(ORB-objectrequestbroker)21,一個授權服務程序(authorizationservice)23,對象定位服務程序(objectlocationservice)25和基本對象適配程序(BOA-basicobjectadaptor)27。服務器功能模塊22中還包括一個對象庫(objectlibrary)29。ORB21最好是獨立于操作系統(tǒng)連續(xù)運行,并經(jīng)由一個進程間通信(IPC-interprocesscommunication)設備19、通過獨立的殘樁程序與骨架(stubsandskeletons)與服務器和客戶機進程進行通信。特別地,要用一個安全遠程過程調(diào)用程序(PRC-remoteprocedurecall)來調(diào)用對遠程對象進行的操作。網(wǎng)關機16中還包括操作系統(tǒng)15和線程機構(threadsmechnism)17。系統(tǒng)管理框架中,每個端點機18上支持一個客戶機功能模塊(clientcomponent)24??蛻魴C功能模塊24是一套成本低、少維護的應用程序,從系統(tǒng)管理數(shù)據(jù)并非持久地存儲于端點機的高速緩沖存儲器或內(nèi)存這個意義上說,客戶機功能模塊最好不含數(shù)據(jù)。采用這種“客戶機-服務器”方式的管理框架,較現(xiàn)有技術有顯著的優(yōu)點,它方便了個人計算機向管理環(huán)境的連入。系統(tǒng)管理框架運用一種面向?qū)ο蟮姆椒?,方便了在管域中進行資源管理所要求的各系統(tǒng)管理任務的執(zhí)行。這些任務種類各異,其中包括文件與數(shù)據(jù)的分配、網(wǎng)絡使用監(jiān)測,用戶管理、打印機或其它資源配置的管理等等。在如附圖1所示的這種大型企業(yè)中,每個有一定數(shù)量網(wǎng)關的管域最好配備一臺服務器。對附圖3中所示的工作組規(guī)模的系統(tǒng)(例如局域網(wǎng)),用一臺服務器級的機器就可以充當服務器和網(wǎng)關。這樣就沒有訪問時要涉及服務器和網(wǎng)關兩種不同設備的局限,因為這些設備可以被綜合到一個單一的平臺。對于中等規(guī)模的系統(tǒng),管域的寬度增加了,就要使用額外的網(wǎng)關,來平衡各端點的負載。服務器的權力層次最高,在所有網(wǎng)關和端點之上。服務器中有一個端點表(endpointlist),隨時記錄被管理區(qū)域內(nèi)每個端點的情況。該表含有唯一標識和管理各端點所需的全部數(shù)據(jù),其中包括名稱、位置及機型等等。服務器中還有端點與網(wǎng)關間的映射(mapping),映射是動態(tài)的。根據(jù)各種針對地點的配置,有可能在網(wǎng)關發(fā)生故障時要為端點另外分配網(wǎng)關,也有可能在網(wǎng)關轄區(qū)自動加入新入網(wǎng)的端點。如上所述,每個管域有一個或多個網(wǎng)關。網(wǎng)關是一個被充分管理的節(jié)點,對它的配置使其具有網(wǎng)關的功能。起初,網(wǎng)關對端點一無所知。當各端點進行登錄時(后文有所敘述),網(wǎng)關為其端點建立一個端點表。網(wǎng)關的責任是,聽取端點的登錄請求,聽取端點的上呼叫(upcall)請求,作為主要任務,還起著在端點上進行方法啟用(methodinvocation)的網(wǎng)關的作用。再如上所述,端點機運行系統(tǒng)管理框架的客戶機功能模塊,本文稱其為廉價框架(LCF-lowcostframework)。如附圖2A中所示,LCF有兩個主要部分LCF守護程序(daemon)24A和一個應用程序運行庫(applicationruntimelibrary)24B。LCF守護程序24A負責端點登錄和生成應用端點可執(zhí)行程序(applicationendpointexecutables)??蓤?zhí)行程序一旦生成,LCF守護程序24A就不再與其發(fā)生關系。每個可執(zhí)行程序都與應用程序運行庫24B相連,后者處理與網(wǎng)關的進一步通信。服務器和每個網(wǎng)關最好是一臺計算機或本文所稱的“機器”。例如,每臺計算機可以是RISCSystem/6000(一種基于精簡指令集(RISC)的工作站),運行的AIX(AdvancedInteractiveExecutive)操作系統(tǒng),版本最好是3.2.5或以上。AIX操作系統(tǒng)在應用接口層與UNIX操作系統(tǒng)5.2版兼容。IBM公司的許多出版物上有對基于RISC的計算機的不同機型的介紹,例如,《RISCSystem/6000、7030and7016POWERstationandPOWERserverHardwareTechnicalReference》,訂單號為SA23-2644-00。對AIX操作系統(tǒng)的介紹,可見于《AIX操作系統(tǒng)技術參考》(原名AIXOperatingSystemTechnicalReference,1985年11月IBM公司第一版)及其它出版物。關于UNIX操作系統(tǒng)設計的詳細介紹的書,有MauriceJ.Bach著的《UNIX操作系統(tǒng)設計》(原名DesignofUnixOperatingSystem,Prentice-Hall公司1986年出版)。其它適用的機器包括IBM兼容的486以上的個人計算機,運行NovellUnixWare2.0;AT&T3000系列,運行AT&TUnixSVR4MP-RAS2.02或更高版本;DataGeneralAViiON系列,運行DG/UX5.4R3.00或更高版本;HP9000/700及800系列,運行HP/UX9.00到HP/UX9.05;Motorola88K系列,運行R40V4.2版的SVR4;SUNSPARC系列,運行SunOS4.1.2或4.1.3版。當然,也可用其它機器及操作系統(tǒng)來充當網(wǎng)關和服務器。每個端點也是一臺計算機。在本發(fā)明的一個較佳實施例中,大多數(shù)端點都是個人計算機(例如桌上型或膝上型計算機)。這種體系結構中,對端點的功能要求不高,無需使用復雜的機型或工作站。端點機可以是一臺IBMThinkPad之類的筆記本式電腦,也可以是以Windows3.1或更高版本為操作系統(tǒng)的英特爾x86系列計算機或基于奔騰芯片(Pentium)的計算機。端點機還可以用OS/2操作系統(tǒng)的IBM機或IBM兼容機。關于OS/2操作系統(tǒng)的詳細內(nèi)容,讀者可參閱《OS/22.0技術資料大全-編程指南》(OS/22.0TechnicalLibrary,ProgrammingGuide)1~3卷,2.00版,訂單號為10G6261、10G6495和10G9494。如上所述,每個網(wǎng)關機上運行的服務器級框架是多線程化的,能夠同時維持數(shù)百個由網(wǎng)絡到遠程計算機的連接。一個執(zhí)行線程(athreadofexecution)可以是一個單獨進程(在UNIX范例中),也可能是單進程中的一個單獨線程(在POSIX范例中)。POSIX是開放系統(tǒng)的應用程序和用戶接口的一個系列標準,由國際電力電子工程協(xié)會(IEEE)頒布。IEEEPOSIX.1c是為用戶級多線程化程序設計而新設立的標準,應用于系統(tǒng)管理框架的被服務功能模塊(servedcomponent)中。這種框架中的所有對象展示“狀態(tài)”。狀態(tài)可以是完全恒定的,也可以是非恒定的,前一種情況中,狀態(tài)由與網(wǎng)關機相關聯(lián)的對象數(shù)據(jù)庫中的各屬性值(attributes)來表示。要向企業(yè)添加一個端點,首先要向該端點的磁盤拷貝LCF守護程序24A。這個工作可以通過網(wǎng)絡登錄腳本(networkloginscripts)、通過人工插入軟盤或是在購買或獲得使用許可時預裝入啟動盤自動完成。第一次安裝了LCF守護程序24A以及以后每次啟動時,LCF守護程序24A都試圖向其網(wǎng)關進行登錄。如果不知道向哪個網(wǎng)關登錄,或者網(wǎng)關對登錄請求沒有響應,守護程序就發(fā)出一個網(wǎng)關請求廣播。對于完全是第一次加入的端點,該廣播最終要被傳送到服務器。如果有網(wǎng)關接到一個來自其認識的端點的廣播或登錄請求,該網(wǎng)關就為該請求進行服務。當服務器接到端點的網(wǎng)關請求廣播時,就查閱其端點表,看看該端點屬于哪個網(wǎng)關。對于新端點或是在網(wǎng)關間游移端點,服務器按地點相關原則選擇恰當網(wǎng)關(例如由子網(wǎng))。其后通知該網(wǎng)關接納其新端點,網(wǎng)關再通知該端點,然后結束登錄過程。端點最好只與其網(wǎng)關進行通信。要求所有端點通信通過單一的網(wǎng)關大大地簡化了連接問題。登錄成功后,端點和網(wǎng)關雙方都知道與對方聯(lián)絡的彼此工作地址。如果一個DHCP地址租賃到期,或者網(wǎng)絡拓撲結構發(fā)生變化,則下一次端點登錄將向網(wǎng)關地址建立新端點。對一個網(wǎng)關能支持的端點數(shù),沒有絕對的最大限額。設計上所采取的策略是讓網(wǎng)關總是能控制住自己的工作負載。端點未經(jīng)允許不得發(fā)送數(shù)據(jù)。如果有的端點有結果要返回,或是希望進行一次上呼叫(upcall),就發(fā)出非常少量的消息請求服務。網(wǎng)關將該請求放到等待隊列中,如果有時間就為該隊列中的請求進行服務。如果端點要返回的結果的數(shù)據(jù)量大,就必須將其分割成若干數(shù)據(jù)塊,接到發(fā)送通知后只能發(fā)送一個數(shù)據(jù)塊。采用這種策略,使得用一個網(wǎng)關就能支持數(shù)千個端點,哪怕速度慢些。若要求提高服務的質(zhì)量,那只是添加網(wǎng)關的問題。端點方法(endpointmethods)是與IDL編譯器生成的代碼和端點應用程序運行庫24B鏈接的正常CORBA方法(下文有所論述)。其結果是產(chǎn)生一個天然可執(zhí)行程序,它設計為由LCF守護程序24A生產(chǎn)。一個可實現(xiàn)程序中能執(zhí)行任意多的方法。端點被安裝時最好不帶任何方法。方法可執(zhí)行程序(methodexecutables)可隨需要從網(wǎng)關下載。LCF守護程序接到一個方法調(diào)用請求時,就檢查當?shù)氐拇疟P高速緩存器。要是高速緩存器中沒有,或是版本不配,就下載一個新的可執(zhí)行程序。用這種方法,端點可以從一無所有開始,繼而建立一套方法,用以快速執(zhí)行。附圖4A~4E表示一個特定的網(wǎng)關(GW)是如何與一對端點機(EP1和EP2)連接的。附圖4A中,網(wǎng)關GW與每個端點機EP1和EP2直接相連,沒有任何中間設備,這樣,GW與每個端點之間的路徑上有一個單獨的路徑段,圖中以A標記。附圖4B中,該路徑中有一個路由器35,而端點EP1和EP2直接與該路由器相連,這種結構就在GW與兩個端點之間的路徑上產(chǎn)生了兩個路徑段A和B。附圖4C顯示的是另一種連接方式,其中,端點EP1和EP2分別與路由器35中不同的分支點相連,這種構造在GW與每個端點之間的每條路徑上也產(chǎn)生兩個路徑段(A和B)。附圖4D表示的另一種構造中,使用了第二個路由器37。這樣,GW與EP1之間的路徑就含有兩個路徑段(A和B),GW與EP2之間的路徑就含有另外兩個路徑段(C和D)。從這些例子中可見,網(wǎng)關與其服務的某端點之間的路徑,可能經(jīng)過一個路徑段,也可能經(jīng)過兩個路徑段(路徑段實際上就是網(wǎng)絡)。網(wǎng)關每增加一個端點時,可能不增加路徑(如附圖4A),也可能多出一條新路徑(如附圖4B)或兩條新路徑(如附圖4C),這取決于中間路由器的存在與否。附圖5表示由附圖4A-4D中表示的各種網(wǎng)絡構造而組合成的一個超級網(wǎng)絡,它說明了如何構造大型企業(yè)的網(wǎng)絡線路。該網(wǎng)絡中包括一個源節(jié)點41、路由器43和45、以及分布在六個子網(wǎng)(圖中標記為A~G)上的十四個端點EP1~EP14。本例中,假設子網(wǎng)A、B、C、D和F的最大速度為每秒10兆位(mb/s),子網(wǎng)E的最大速度為每秒56千位(kb/s),子網(wǎng)G的最大速度為100mb/s。假設所有數(shù)據(jù)分配都是從源節(jié)點開始的(通常,源節(jié)點就是管理服務器和/或一個網(wǎng)關)。從一個節(jié)點(例如源節(jié)點)向多個端點的數(shù)據(jù)分配,在附圖5中的網(wǎng)絡上表現(xiàn)為同時進行的多個一對一分配。本發(fā)明的可調(diào)節(jié)參數(shù)允許現(xiàn)場管理員對A~G每個子網(wǎng)可用帶寬的最大百分比作出規(guī)定。這里所用的每個子網(wǎng)的“有效”負載,例如可以通過記錄單位時間內(nèi)寫入子網(wǎng)的字節(jié)數(shù)而計算出來。如果相同子網(wǎng)中并行運行著兩個操作,每個操作都計入有效負載。例如,在一秒中內(nèi),寫入了16K字節(jié),數(shù)據(jù)速率為16KB/秒,如果該子網(wǎng)是1mb的線路,則可計算出所用的百分比為(16KB*8bit)/1mb=12.5%。本發(fā)明中實現(xiàn)了若干個負載平衡概念。如果分配要經(jīng)過兩個子網(wǎng),對兩個子網(wǎng)的負載都要加以考慮,最好是用這兩個中最忙的子網(wǎng),來確定總體分配中應插入的“延遲”量,以平衡負載。本發(fā)明還考慮到,即使在各個操作的基本上增加延遲量,所有的操作也都會增加有效負載。以下參照附圖5中的網(wǎng)絡,舉例說明以上概念。假設對附圖5中端點EP9進行一次單獨分配。每個數(shù)據(jù)包要經(jīng)過子網(wǎng)B和E。假設子網(wǎng)B的網(wǎng)絡負載參數(shù)被定為80%,子網(wǎng)E的網(wǎng)絡負載參數(shù)被定為50%。操作一秒鐘后,傳送了4k字節(jié)。子網(wǎng)B上的有效負載為4kB/10mb=0.3%,而子網(wǎng)E上的有效負載為4kB/56kb=57%。結果,子網(wǎng)B的有效負載遠遠低于其最大負載,而子網(wǎng)E上卻太忙。本發(fā)明方法是,插入一個短暫的延遲,使子網(wǎng)E上的有效負載降低到50%。盡管子網(wǎng)B近乎空閑,也必須延遲下一個寫操作,以減輕子網(wǎng)E上的負載。現(xiàn)在假設對端點EP1~EP4進行分配,它們都是子網(wǎng)A上的端點。本例中,假設子網(wǎng)A的網(wǎng)絡負載參數(shù)為25%。一秒鐘后,向每個端點傳送了100k字節(jié)。因為向四個不同端點傳送了相同的100k,這100k四次經(jīng)過子網(wǎng)A。子網(wǎng)A上的負載為(4*100kB)/10mb=31%。因為這個值超過了負載參數(shù),所以需要插入延遲。在下面的例子中,假設對端點EP5、EP6、EP11和EP12進行分配。一秒鐘后,向每個端點傳送了100k字節(jié)。子網(wǎng)B上的負載為(4*100kB)/10mb=31%。子網(wǎng)D和子網(wǎng)F每個上面的負載為(2*100kB)/10mb=15.5%。現(xiàn)在假設對所有端點進行分配。一秒鐘后,向每個端點傳送了100k字節(jié)。對各有效負載計算如下A=(4*100kB)/10mb=31%B=(8*100kB)/10mb=62%C=(2*100kB)/10mb=15.5%D=(4*100kB)/10mb=31%E=100kB/56kb=1400%F=(3*100kB)/10mb=23%G=(2*100kB)/100mb=1.5%子網(wǎng)E的有效負載為1400%,需要一個長時延遲。這種情況下,路由器43將緩存這100kB數(shù)據(jù),以子網(wǎng)E能接受的最大速度釋放數(shù)據(jù)。按照本發(fā)明方法,延遲被插入,網(wǎng)絡寫數(shù)據(jù)塊被減小,從而將有效負載降到設定的網(wǎng)絡負載值。這也獲得了減緩子網(wǎng)B忙碌程度的效果。本發(fā)明提供了一種方法,來對管理企業(yè)中從一個或多個網(wǎng)關機向其服務的諸端點進行的大規(guī)模數(shù)據(jù)分配加以有效管理。一般來說,特定網(wǎng)關與其服務的一個或多個端點機,是按附圖4A~4D中的一種或多種拓撲結構連接的。如上所述,附圖5就是其中一例。附圖6中的流程圖就一個特定網(wǎng)關與其相關端點對本方法作了概括描述。當然,該方法也可應用于并行處理的多個網(wǎng)關機,但為了簡明起見,圖中只表示了一個網(wǎng)關機。該示例方法的開始步驟30,設置可調(diào)節(jié)的負載參數(shù),最好是網(wǎng)關機與某端點機之間每個網(wǎng)絡路徑的每個子網(wǎng)都設置。不需要進行負載平衡的網(wǎng)絡路徑則可不必設置。負載參數(shù)是可選擇的,它確定的是子網(wǎng)上進行一次下載操作所能占用的總帶寬的最大百分比。該參數(shù)值的設定依賴于多種因素,包括連接類型、數(shù)據(jù)類型、速度以及端點的內(nèi)存特性、網(wǎng)關與其端點之間是否有路由器或其它中間設備,等等。步驟32選擇啟動一次數(shù)據(jù)分配,一般是由一個端點方法調(diào)用該網(wǎng)關上支持的一個對象(后文將有詳敘)。本文有時稱數(shù)據(jù)分配為“寫”操作,因為是將數(shù)據(jù)從一個源節(jié)點寫到多個被管理端點。如附圖5所示,是網(wǎng)絡路徑和子網(wǎng)的種種連接方式和特點,決定了受到影響的網(wǎng)絡路徑上每個子網(wǎng)的“有效”負載。所謂“受到影響”網(wǎng)絡路徑,就是數(shù)據(jù)分配要經(jīng)過的路徑。步驟34,最好在數(shù)據(jù)分配在線路上實際開始之前,由該方法調(diào)用(methodinvocation)計算受到影響的每個子網(wǎng)的有效負載。步驟36進行測試,確定是否每個受到影響子網(wǎng)的有效負載與該子網(wǎng)的負載參數(shù)有預定的關系(例如,有效負載是否大于負載參數(shù))。如果步驟36的測試結果是否定的,就不需要進行負載平衡,該過程繼續(xù)到步驟38,啟動數(shù)據(jù)分配;如果相反,即步驟36的測試結果是肯定的,則至少有一個子網(wǎng)要超載(對于該子網(wǎng)的預定負載參數(shù)而言),則需要進行負載平衡。此時,過程繼續(xù)到步驟40,去改變分配的特性(一般是通過插入定時延遲,或控制將數(shù)據(jù)緩存在上游的路由器中),以便當步驟42實際發(fā)送數(shù)據(jù)時減少相關子網(wǎng)中的有效負載。因此如上所述,負載平衡算法最好在寫操作之前檢查子網(wǎng)超載的可能性,以便以某種有效方法改變數(shù)據(jù)分配方式,再在預定的子網(wǎng)負載參數(shù)范圍內(nèi)進行數(shù)據(jù)分配。這種平衡技術過程,在每啟動一次寫操作時,就要執(zhí)行一次,當然,它也可以用其它方式執(zhí)行。這樣,當數(shù)據(jù)在網(wǎng)絡上進行分配時,這種技術過程可以以一種連續(xù)的方式執(zhí)行(例如按一定的時間間隔如2分鐘一次)。這考慮到了這樣的事實—即使可以為各個操作增加延遲量,所有的操作都會增加有效負載。因此在寫操作之前,要估測網(wǎng)關與其服務的端點之間給定的網(wǎng)絡路徑中、數(shù)據(jù)分配將在其上發(fā)生的每個子網(wǎng)的有效負載,采用一個負載平衡算法,以保證實際執(zhí)行寫操作時,通過受到影響的子網(wǎng)的數(shù)據(jù)分配不超過其中任何子網(wǎng)的有效帶寬。這個有利結果是通過計算數(shù)據(jù)分配所影響的每個子網(wǎng)的有效負載而取得的。在啟動操作之前,首先要確定,有效負載是否超過(或者接近)某個預定的閥值(閥值最好是可選擇的)。如果是,就降低總體分配的速度,否則改變,以阻止個別子網(wǎng)(通常是負載最重的子網(wǎng))對其它分配造成不平衡。所以實際上,根據(jù)存在的子網(wǎng)的數(shù)量,有的子網(wǎng)要因為它們被分配的帶寬而受到“指責”。本文使用的有效負載,甚至當有效負載與一給定的負載參數(shù)基本相等時,也可能會超過該負載參數(shù)。當然,當有效負載占負載參數(shù)的一定比例(例如95%)時,就可以改變數(shù)據(jù)分配速度。所有這些變化都含括在本發(fā)明的負載平衡技術的范圍內(nèi)。盡管在較佳實施例中,對數(shù)據(jù)分配特性參數(shù)的修改的程度是在數(shù)據(jù)分配實際發(fā)生之前計算的,但是本發(fā)明也考慮了先監(jiān)測首次數(shù)據(jù)分配期間的實際負載值,再根據(jù)第一次分配期間網(wǎng)絡負載的約束情況,調(diào)整第二次數(shù)據(jù)分配的速率。然而如上所述,負載平衡技術過程最好是在數(shù)據(jù)分配期間執(zhí)行。附圖7表示的是如何選擇和啟動一次數(shù)據(jù)分配的。在這個管理環(huán)境中,數(shù)據(jù)分配只是眾多“系統(tǒng)管理任務”中之一,它們通常是由對象方法調(diào)用來啟動的。附圖7中,每個授權的管理員50都操作一臺桌面計算機52,計算機上有代表系統(tǒng)資源的圖標。管理員通過與這些圖標生成的對話屏幕和菜單交互對話,能夠按已知的方式,改變系統(tǒng)配置,管理分布式環(huán)境中的新資源。特別是當管理員50與桌面機進行人機對話時,要從用戶接口調(diào)用對代表某種系統(tǒng)資源或功能模塊的潛在對象的所謂“回調(diào)”(callbacks)。這些回調(diào)被轉(zhuǎn)換成一系列方法調(diào)用,去執(zhí)行實際工作,將結果或狀態(tài)返回給管理員。參考附圖7的過程流圖,特別來說,當管理員50選中一個圖標或進行人機對話時,信息開始流動。步驟54中,信息被傳送到桌面機(通常位于網(wǎng)關),此時,步驟56調(diào)用適當?shù)膽贸绦蚧卣{(diào)方法(applicationcallbackmethod)。該回調(diào)方法在步驟58調(diào)用核心應用方法(coreapplicationmethods),核心應用方法與應用程序?qū)ο?applicationobject)通信,執(zhí)行某個系統(tǒng)管理操作(如步驟39所示)。步驟60和61傳回所有的返回信息。如果需要更新用戶界面,則在步驟62中,桌面機52解釋該輸出信息,更新管理員的桌面機上的對話界面。框架中最好包括一個任務庫(tasklibrary),它能使管理員創(chuàng)建能管理企業(yè)環(huán)境中任一個管理節(jié)點的外殼腳本(shellscripts)。一個結合某管理節(jié)點的外殼腳本被稱作一個任務(task)。當管理員們想創(chuàng)建一個任務時,他們要向可執(zhí)行文件提供機器和路徑。該可執(zhí)行文件可以是外殼腳本、專用腳本、已編譯程序或任何其它種類的有效可執(zhí)行文件。一個任務被創(chuàng)建后,該可執(zhí)行文件就以某個屬性被存儲到與一網(wǎng)關機關聯(lián)的一個對象數(shù)據(jù)庫中。需要執(zhí)行該任務時,該可執(zhí)行文件被從該屬性中檢索出來,提供給一個或多個被管理節(jié)點。一個任務被創(chuàng)建后,就被添加到任務庫中,并用圖標顯示出來。參考前文所述內(nèi)容,系統(tǒng)管理采用了CORBA1.1對象請求中斷程序(ORB)、基本對象適配程序(BOA)以及有關的對象服務程序。CORBA1.1是對一種面向?qū)ο蟮姆植际接嬎銠C系統(tǒng)管理體系結構的規(guī)范,是由對象管理集團(OMG-ObjectManagementGroup)制訂的,這是一個有300多個公司參加的非盈利性協(xié)會。CORBA描述了如何使用對象請求中斷程序和基本對象適配程序,利用它們提供的關于對象調(diào)用與結果返回的機理。該規(guī)范為一組低級對象服務定義了接口,并用對象封裝(objectencapsulation)、服務請求者/提供者隔離(servicerequestor/providerisolation)以及接口與工具相分離(interfaceandimplementationseparation)等方法,使這類服務程序能應用于許多不同的語言和系統(tǒng)中。附圖8所示的一例CORBA1.1應用中,有三個主要組成部分客戶機、對象工具(objectimplementation)和ORB/BOA。客戶機70是服務的請求者,而服務由對象工具72提供。ORB21將客戶機70的服務請求經(jīng)BOA27傳遞到對象工具72。對象工具72于是執(zhí)行所請求的服務,并將返回數(shù)據(jù)傳遞回客戶機??蛻魴C與對象工具之間是相互隔離的,除了通過它們的ORB/BOA接口的媒介作用時外,哪一方都對另一方的情況一無所知??蛻魴C的請求不依賴對象工具的位置和實現(xiàn)時所使用的程序語言。ORB將該請求傳遞給BOA,后者啟動一個進程,對象工具(例如服務器)就在該進程下運行。然后,BOA通過服務器骨架(serverskeleton)調(diào)用與該請求關聯(lián)的方法。該方法運行結束時,BOA管理該方法的收尾工作,協(xié)調(diào)將結果返回到客戶機。另一個可行方法是,如果在實際運行之前,不能識別請求,就用一個動態(tài)調(diào)用接口(DDI-DynamicInvocationInterface)來建立一個請求,用于代替編譯時連接的客戶機殘樁程序83。系統(tǒng)管理框架的網(wǎng)關功能模塊(包括負載平衡機理)的諸多優(yōu)選實施方案中,有一種是位于端點隨機存取存儲器內(nèi)駐存的代碼模塊中的一個指令集。該指令集在計算機不需要時,可以存儲在其它計算機存儲設備中,如硬盤驅(qū)動器、可折除存儲器如光盤(可用于CD-ROM中)或軟盤(可用于軟盤驅(qū)動器中)、甚至可以通過INTERNET等網(wǎng)絡的連接下載到計算機。此外,盡管可以在事先用軟件方法有選擇地啟動或重新設置的通用計算機上,方便地實施所述各種方法,但是本領域具有一般知識的人也會認識到,這些方法也可以在硬件、固件或為執(zhí)行所需方法步驟制造的更專門的設備中執(zhí)行。最后,盡管本發(fā)明是通過在特定網(wǎng)絡環(huán)境中的一個較佳實施例加以說明的,具有本領域知識的人將認識到,在本文所附權利要求的思想和范圍內(nèi),本發(fā)明通過改進,也可以應用到其它各種網(wǎng)絡體系中。然而,本發(fā)明不應被認為是局限于特定網(wǎng)關和端點機拓撲結構的網(wǎng)絡中的負載平衡,只要是多個計算機資源(它們可以直接或通過另一個網(wǎng)絡設備與一管理節(jié)點連接)從管理節(jié)點接受數(shù)據(jù)分配,本發(fā)明也就可以用于其負載平衡。再者,本發(fā)明的負載平衡技術應能用于任何分布式網(wǎng)絡環(huán)境。權利要求1.一種對管理的網(wǎng)絡環(huán)境中的數(shù)據(jù)分配進行調(diào)節(jié)的方法,其中管理的網(wǎng)絡環(huán)境由一個管理服務器管理,管理服務器服務于一組網(wǎng)關,每個網(wǎng)關服務于一組端點,該方法包括以下步驟為某網(wǎng)關與某端點之間各網(wǎng)絡路徑上的各個子網(wǎng)設定負載參數(shù),以定義該子網(wǎng)上特定一次數(shù)據(jù)分配所能占用的網(wǎng)絡帶寬的量;響應來自網(wǎng)關要啟動一次數(shù)據(jù)分配的一個方法調(diào)用,確定該數(shù)據(jù)分配所影響的各個子網(wǎng)上的有效負載;如果給定子網(wǎng)上的有效負載與該子網(wǎng)的負載參數(shù)有預定關系,就改變該數(shù)據(jù)分配的一個特性參數(shù)。2.權利要求1中所述的數(shù)據(jù)分配調(diào)節(jié)方法,其特征在于,所述預定關系是指有效負載超過負載參數(shù)。3.權利要求2中所述的數(shù)據(jù)分配調(diào)節(jié)方法,其特征在于,所述特性參數(shù)是指數(shù)據(jù)在該路徑中分配的速率。4.權利要求3中所述的方法,其特征在于,當有效負載超過負載參數(shù)時,降低所述數(shù)據(jù)分配速率。5.權利要求4中所述的方法,其特征在于,所述數(shù)據(jù)分配速率是通過在由網(wǎng)關經(jīng)網(wǎng)絡路徑到端點的數(shù)據(jù)傳輸中插入延遲而降低的。6.權利要求1中所述的方法,其特征在于,設定負載參數(shù)的步驟是在網(wǎng)關中進行的。7.權利要求1中所述的方法,其特征在于,有效負載的確定是在數(shù)據(jù)分配啟動之前進行的。8.一種對管理的網(wǎng)絡環(huán)境中的數(shù)據(jù)分配進行調(diào)節(jié)的方法,其中管理網(wǎng)絡環(huán)境中有一個向一組端點分配數(shù)據(jù)的源節(jié)點,該方法包括以下步驟(1)為該源節(jié)點與某端點之間各網(wǎng)絡路徑上的各個子網(wǎng)設定負載參數(shù),以定義該子網(wǎng)上一次特定數(shù)據(jù)分配所能占用的網(wǎng)絡帶寬的量;(2)在從該源節(jié)點啟動一次數(shù)據(jù)分配之前,確定該數(shù)據(jù)分配所影響的各個子網(wǎng)上的有效負載;(3)判定是否有任何由該數(shù)據(jù)分配所影響子網(wǎng),其有效負載超過該子網(wǎng)的負載參數(shù);(4)如果有任何子網(wǎng)的有效負載超過其負載參數(shù),就改變該數(shù)據(jù)分配的一個特性參數(shù)。9.權利要求8中所述的方法,其特征在于,通過向從網(wǎng)關開始的在所影響的網(wǎng)絡路徑上傳輸數(shù)據(jù)的速率中插入一個或多個延遲來改變數(shù)據(jù)分配。10.權利要求8中所述的方法,其特征在于進一步包括為新的數(shù)據(jù)分配重復步驟(2)~(4)的步驟。11.一個可連入大型分布式企業(yè)中的計算機,其中該大型分布式企業(yè)有一個源節(jié)點,它通過一個或多個網(wǎng)絡路徑管理端點,其中每個路徑又有一個或多個子網(wǎng),所述計算機包括一個處理器;一個操作系統(tǒng);以及一個負載平衡機構,后者包括設定負載參數(shù)的裝置,它確定在至少一條網(wǎng)絡路徑中各個子網(wǎng)上一次特定的數(shù)據(jù)分配所能占用的網(wǎng)絡帶寬的量;響應寫操作調(diào)用的裝置,它計算該寫操作所影響的各個子網(wǎng)上的有效負載;判定該寫操作所影響的各個子網(wǎng)上是否有的有效負載與該子網(wǎng)的負載參數(shù)有預定關系、并根據(jù)判定結果改變數(shù)據(jù)分配的一個特性參數(shù)的裝置。12.權利要求11中所述的計算機,其特征在于,所述特性參數(shù)是指數(shù)據(jù)在該網(wǎng)絡路徑中分配的速率。13.權利要求12中所述的計算機,其特征在于,當寫操作所影響的任何子網(wǎng)的有效負載超過該子網(wǎng)的負載參數(shù)時,所述改變裝置就降低數(shù)據(jù)分配的速率。14.權利要求13中所述的計算機,其特征在于,進一步包括一個設定負載參數(shù)的接口裝置。15.權利要求11中所述的計算機,其特征在于,進一步包括一個線程機構(threadsmechanism),它由操作系統(tǒng)運行以執(zhí)行多個執(zhí)行線程(executionthreads)。16.權利要求15中所述的計算機,其特征在于,對由負載平衡機構控制的各個網(wǎng)絡路徑的進程控制由多個執(zhí)行線程之一提供。17.一種計算機程序產(chǎn)品,其中使用該產(chǎn)品的計算機有一個處理器、一個存儲器和將該計算機連入大型分布式企業(yè)的裝置,其中該大型分布式企業(yè)中的計算資源被組織成一個或多個被管理區(qū)域,每個被管理區(qū)域由服務于一個或多個網(wǎng)關機的管理服務器管理,而每個網(wǎng)關機服務于若干端點機,該計算機程序產(chǎn)品包括設定負載參數(shù)的裝置,它確定在某網(wǎng)關與某端點中間的一條網(wǎng)絡路徑中的一個特定子網(wǎng)上,一次特定數(shù)據(jù)分配所能占用的網(wǎng)絡帶寬的量;響應寫操作調(diào)用的裝置,它計算該寫操作所影響的各個子網(wǎng)上的有效負載;判定是否該寫操作所影響的任何子網(wǎng)上的有效負載與該子網(wǎng)的負載參數(shù)有預定關系、并根據(jù)判定結果改變數(shù)據(jù)分配的一個特性參數(shù)的裝置。全文摘要一種對管理網(wǎng)絡環(huán)境中的數(shù)據(jù)分配進行負載平衡的方法,其中至少有一個網(wǎng)關機,服務于一組端點。系統(tǒng)管理任務包括數(shù)據(jù)分配,該任務通常在網(wǎng)關處啟動,分配到所有管理端點。負載平衡的實現(xiàn),是通過為網(wǎng)關與其服務的某端點機之間各網(wǎng)絡路徑上的各個子網(wǎng)設定負載參數(shù)。該負載參數(shù)是可選擇的,它定義該段上一次特定數(shù)據(jù)分配所能占用的網(wǎng)絡帶寬的量。在分配啟動之前,要計算該操作實際開始后特定子網(wǎng)上將要出現(xiàn)的有效負載。如果有任何子網(wǎng)上的該有效負載超過該子網(wǎng)的負載參數(shù),就改變整個網(wǎng)絡路徑上的數(shù)據(jù)分配。本技術有效地平衡了網(wǎng)絡負載,更有效地利用了資源。文檔編號H04L12/56GK1179047SQ97117560公開日1998年4月15日申請日期1997年9月1日優(yōu)先權日1996年10月1日發(fā)明者T·W·貝雷特爾申請人:國際商業(yè)機器公司