欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

網(wǎng)絡(luò)上的動態(tài)分布式計(jì)算的方法和設(shè)備的制作方法

文檔序號:6418812閱讀:203來源:國知局
專利名稱:網(wǎng)絡(luò)上的動態(tài)分布式計(jì)算的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及分布式計(jì)算系統(tǒng),尤其涉及在網(wǎng)絡(luò)上進(jìn)行動態(tài)分布式計(jì)算的方法和設(shè)備。
背景技術(shù)
在分布式計(jì)算網(wǎng)絡(luò)中,用戶可利用耦合到網(wǎng)絡(luò)的大量計(jì)算機(jī)的處理能力??赏ㄟ^分割網(wǎng)絡(luò)上不同計(jì)算機(jī)中的處理,可快速地并行處理具有許多不同的獨(dú)立計(jì)算的任務(wù)。此外,通過定位網(wǎng)絡(luò)上最適用于處理數(shù)據(jù)的計(jì)算機(jī),可更快地計(jì)算專門任務(wù)。例如,在客戶系統(tǒng)上完成需大量浮點(diǎn)計(jì)算的任務(wù),可在耦合到網(wǎng)絡(luò)的服務(wù)器系統(tǒng)上更快地執(zhí)行,后者具有適用于這些特定計(jì)算的專用浮點(diǎn)硬件。
不幸的是,不容易在典型的異構(gòu)計(jì)算環(huán)境中實(shí)現(xiàn)用于分布式計(jì)算的常規(guī)技術(shù)。通常,網(wǎng)絡(luò)上的每個(gè)計(jì)算機(jī)是異構(gòu)的,它包含不同的處理器和操作系統(tǒng)組合,而且需要執(zhí)行不同的目標(biāo)模塊。在客戶一側(cè),不同的目標(biāo)模塊需要用戶對每個(gè)不同的平臺編譯不同版本的任務(wù),并把此模塊裝載到相應(yīng)平臺上,從而增加對每個(gè)客戶的存儲要求,還需要多次進(jìn)出和編譯相同的任務(wù)。此外,常規(guī)的技術(shù)需要在執(zhí)行代碼前很早就要在計(jì)算機(jī)上分配代碼。在常規(guī)系統(tǒng)中,進(jìn)行分布式計(jì)算所需的大量準(zhǔn)備妨礙了許多計(jì)算采用該技術(shù)。
基于腳本編排(scripting)語言的分布式計(jì)算系統(tǒng)是對某些常規(guī)分布式計(jì)算系統(tǒng)的改進(jìn)。不幸的是,基于腳本編排的系統(tǒng)消除了對重新編譯代碼的需要,但它仍舊不是非常有效?;谀_本編排的分布式系統(tǒng)可在多個(gè)平臺上執(zhí)行相同的指令,因?yàn)樵撜Z言是由位于每個(gè)系統(tǒng)上的解釋器來解釋的。結(jié)果,大多數(shù)腳本編排語言較慢,因?yàn)樗鼈儽仨毎迅呒壞_本編排指令實(shí)時(shí)地翻譯成低級當(dāng)?shù)?native)指令。此外,腳本編排語言難于優(yōu)化,且可能會浪費(fèi)存儲空間,因?yàn)橥ǔ2粚λ鼈冞M(jìn)行壓縮。
基于在常規(guī)系統(tǒng)中所發(fā)現(xiàn)的以上限制,想要改進(jìn)分布式計(jì)算系統(tǒng)。

發(fā)明內(nèi)容
在有關(guān)客戶計(jì)算機(jī)的本發(fā)明的一個(gè)方面,提供了用于動態(tài)分布式計(jì)算的方法和設(shè)備。最初,客戶從網(wǎng)絡(luò)中選擇一服務(wù)器來處理該任務(wù)。此選擇可基于服務(wù)器的可用性或服務(wù)器的專門處理能力。接著,客戶承接程序(stub)把參數(shù)和數(shù)據(jù)引入(marshal)到一任務(wù)請求中??蛻舭汛巳蝿?wù)請求發(fā)送到服務(wù)器,服務(wù)器啟用通用計(jì)算方法。服務(wù)器自動地確定在服務(wù)器上是否可獲得有關(guān)任務(wù)的類型并在必要時(shí)從網(wǎng)絡(luò)下載這些任務(wù)類型。使用任務(wù)類型中的信息來提取存儲在特定任務(wù)請求中的參數(shù)和數(shù)據(jù)。使用通用計(jì)算方法在選中的服務(wù)器上執(zhí)行該任務(wù)請求。在服務(wù)器處理了該任務(wù)請求后,客戶接收從選中服務(wù)器返回的結(jié)果或經(jīng)計(jì)算的任務(wù)。
在有關(guān)服務(wù)器計(jì)算機(jī)的本發(fā)明的另一個(gè)方面,提供了動態(tài)分布式計(jì)算的方法和設(shè)備。最初,服務(wù)器將自動地確定服務(wù)器上可獲得哪些任務(wù)類型,并將在必要時(shí)從網(wǎng)絡(luò)下載任務(wù)類型。這些任務(wù)類型有助于服務(wù)器從一任務(wù)請求中引出(unmarshal)參數(shù)和數(shù)據(jù)并產(chǎn)生一本地任務(wù)。接著,服務(wù)器啟用能處理所有類型的計(jì)算任務(wù)或子類型的計(jì)算任務(wù)的通用計(jì)算方法。使用通用計(jì)算方法在選中的服務(wù)器上執(zhí)行此任務(wù)請求。如果隨后的任務(wù)要使用結(jié)果,則服務(wù)器把來自經(jīng)計(jì)算的任務(wù)的結(jié)果存入本地高速緩沖存儲器中。一旦完成該任務(wù),服務(wù)器就把結(jié)果或經(jīng)計(jì)算的任務(wù)返還客戶。
附圖概述包含在本說明書中并構(gòu)成其一部分的附圖示出本發(fā)明的一個(gè)實(shí)施例,這些附圖與描述一起用來說明本發(fā)明的優(yōu)點(diǎn)和原理。
在圖中

圖1示出適用于符合本發(fā)明的方法和系統(tǒng)的網(wǎng)絡(luò);圖2是適用于符合本發(fā)明的方法和系統(tǒng)的計(jì)算機(jī)系統(tǒng)的方框圖;圖3是適用于使用符合本發(fā)明的方法和系統(tǒng)的客戶-服務(wù)器網(wǎng)絡(luò)環(huán)境的方框圖;圖4是客戶依據(jù)符合本發(fā)明的方法和系統(tǒng)所進(jìn)行的步驟的流程圖;以及圖5是服務(wù)器依據(jù)符合本發(fā)明的方法和系統(tǒng)所進(jìn)行的步驟的流程圖。
介紹現(xiàn)在將詳細(xì)地參考附圖所示的本發(fā)明實(shí)現(xiàn)。可能時(shí),在附圖和以下描述中使用相同的標(biāo)號來指示相同或相似的部分。
符合本發(fā)明的系統(tǒng)解決了已有技術(shù)的缺點(diǎn)并提供了在服務(wù)器計(jì)算機(jī)的網(wǎng)絡(luò)上使用的動態(tài)分布式計(jì)算系統(tǒng)。這種動態(tài)分布式計(jì)算系統(tǒng)尤其有用于異構(gòu)計(jì)算機(jī)網(wǎng)絡(luò),該網(wǎng)絡(luò)具有包含不同處理器、不同操作系統(tǒng)及其組合的計(jì)算機(jī)。這種系統(tǒng)使得客戶應(yīng)用程序可選擇一處于實(shí)時(shí)運(yùn)行的服務(wù)器計(jì)算機(jī)來執(zhí)行特定任務(wù)。在符合本發(fā)明的方法和系統(tǒng)中,該任務(wù)是一具有特定類型或類定義的對象。一般,服務(wù)器可能推遲知道實(shí)際類定義,直到在服務(wù)器上接收到有關(guān)此對象任務(wù)的參數(shù)和數(shù)據(jù)。結(jié)果,如果在服務(wù)器上不能獲得此特定類型,則服務(wù)器下載此特定類型。例如,如果未知類的對象實(shí)例傳遞到該服務(wù)器,該服務(wù)器下載該未知類。然后,服務(wù)器使用該類來處理對象。這種推遲把類定義分配給對象增強(qiáng)了在服務(wù)器計(jì)算機(jī)的網(wǎng)絡(luò)上處理復(fù)雜任務(wù)的靈活性。此外,本設(shè)計(jì)通過利用現(xiàn)有的遠(yuǎn)程過程調(diào)用子系統(tǒng)(諸如加里福尼亞州Mountain View的Sun Microsystems Inc.所開發(fā)的遠(yuǎn)程方法啟用(RMI)子系統(tǒng))中的特征以最小的額外開銷來促進(jìn)靈活性。對于有關(guān)遠(yuǎn)程方法啟用(RMI)的進(jìn)一步信息,見由Ann M.Wolrath、James Waldo和Roger Riggs于1996年4月23日提交的名為“有助于裝載“承接程序”信息以使得在一地址空間內(nèi)操作的程序可啟用另一地址空間內(nèi)的遠(yuǎn)程方法或過程的處理的系統(tǒng)和方法”的08/636,706號未決美國專利申請,該申請已轉(zhuǎn)讓給本發(fā)明的受讓人并在這里引用作為參考。此外,在FTP//ftp.javasoft.com/docs/jdk1.2/rmi-spec-jdk 1.2ps的JavaSoft WebPage(網(wǎng)頁)上更詳細(xì)地描述了RMI,也在這里引用作為參考。
與常規(guī)的系統(tǒng)不同的是,符合本發(fā)明的動態(tài)分布式系統(tǒng)中的任務(wù)可被寫一次,且該任務(wù)可在網(wǎng)絡(luò)中的任何服務(wù)器計(jì)算機(jī)上執(zhí)行。此能力在異構(gòu)網(wǎng)絡(luò)中尤其有優(yōu)勢,因?yàn)椴槐卦趫?zhí)行該任務(wù)前使該任務(wù)進(jìn)出每一個(gè)平臺。而是,把依據(jù)本發(fā)明設(shè)計(jì)的通用計(jì)算任務(wù)裝載在每個(gè)系統(tǒng)上。此通用計(jì)算任務(wù)能執(zhí)行客戶在運(yùn)行時(shí)所指定的廣泛類型的任務(wù)。例如,可開發(fā)一種所謂的“Compute(計(jì)算)”類型以及一種以面向?qū)ο蟮恼Z言(諸如Java)來接受此“計(jì)算”類型的通用計(jì)算任務(wù)。在許多文章中描述了Java,包括1996年由James Gosling、Bill Joy和Guy Steele、Addison-Wesley寫的名為“Java語言說明書”的文章,這里通過引用作為參考。客戶產(chǎn)生具有“計(jì)算”類型的子類型的任務(wù),并把相應(yīng)于此任務(wù)的對象傳遞給服務(wù)器上的通用計(jì)算任務(wù)。遠(yuǎn)程過程調(diào)用機(jī)構(gòu)把此對象下載到服務(wù)器和執(zhí)行此任務(wù)的通用計(jì)算任務(wù)。
在Java中,客戶所發(fā)送的任務(wù)實(shí)際上是包括一系列字節(jié)碼的對象。只要服務(wù)器實(shí)現(xiàn)了Java Virtual Machine(虛擬機(jī))(JVM),就可立即執(zhí)行這些字節(jié)碼。JVM可直接以硬件來實(shí)現(xiàn),或者它可有效地以在當(dāng)?shù)夭僮飨到y(tǒng)頂部運(yùn)行的軟件層來模擬。把Java語言設(shè)計(jì)成在具有Java虛擬機(jī)(JVM)說明書所指定的特性的計(jì)算系統(tǒng)上運(yùn)行。在Addison Wesley的名為Java虛擬機(jī)說明書的文章中更詳細(xì)地描述了JVM說明書,這里引用作為參考。此統(tǒng)一的JVM環(huán)境使得即使計(jì)算機(jī)系統(tǒng)為異構(gòu)且具有不同處理器、不同操作系統(tǒng)及其組合時(shí)也可同構(gòu)地執(zhí)行任務(wù)。依據(jù)本發(fā)明的設(shè)計(jì),把強(qiáng)大的遠(yuǎn)程過程調(diào)用子系統(tǒng)與服務(wù)器上的通用計(jì)算任務(wù)相組合產(chǎn)生了強(qiáng)大的動態(tài)分布式計(jì)算環(huán)境。
使用字節(jié)碼的計(jì)算機(jī)服務(wù)器可處理任務(wù)的速度比使用基于腳本編排語言的常規(guī)文本或基于語言的其它字符的系統(tǒng)快得多。每個(gè)字節(jié)碼是緊湊的(8位)且具有數(shù)字格式。結(jié)果,服務(wù)器計(jì)算機(jī)在運(yùn)行時(shí)不必花費(fèi)計(jì)算機(jī)周期對字符和自變量進(jìn)行分析(parse)。此外,可在把字節(jié)碼傳輸?shù)椒?wù)器前在客戶處優(yōu)化這些字節(jié)碼。服務(wù)器可任選地在運(yùn)行時(shí)使用諸如Just-in-Time(及時(shí))(JIT)編譯器把字節(jié)碼轉(zhuǎn)換成當(dāng)?shù)刂噶钜灾苯釉谟布蠄?zhí)行。對于有關(guān)JIT編譯器的更多信息,見Java虛擬機(jī)說明書。
依據(jù)本發(fā)明設(shè)計(jì)的系統(tǒng)假設(shè)每個(gè)客戶能通過諸如TCP/IP等公共網(wǎng)絡(luò)協(xié)議與每個(gè)服務(wù)器進(jìn)行通信。此外,假設(shè)在客戶和服務(wù)器上存在遠(yuǎn)程過程調(diào)用(RPC)子系統(tǒng),該子系統(tǒng)能接收來自客戶的遠(yuǎn)程請求并在服務(wù)器上執(zhí)行這些請求。此RPC系統(tǒng)還在運(yùn)行時(shí)自動地下載完成該任務(wù)所需的代碼和有關(guān)信息。Sun MicrosystemsInc.所開發(fā)的RMI是提供這些特征的適當(dāng)?shù)腞PC子系統(tǒng)。然而,本領(lǐng)域內(nèi)的技術(shù)人員將理解,代替RMI,可使用諸如Microsoft Inc.的DCOM/COM等其它RPC子系統(tǒng)。
計(jì)算機(jī)網(wǎng)絡(luò)圖1示出可實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)100。網(wǎng)絡(luò)100的本質(zhì)結(jié)構(gòu)中包括局域網(wǎng)(LAN)101、主干或廣域網(wǎng)(WAN)112及局域網(wǎng)(LAN)116。LAN 101包括一系列工作站和服務(wù)器計(jì)算機(jī)102、104、106和108。LAN 116包括一系列工作站和服務(wù)器計(jì)算機(jī)118、120、122和124。這些計(jì)算機(jī)系統(tǒng)102-108及118-124耦合在一起,以共享信息、發(fā)送數(shù)據(jù)及共享計(jì)算能力。使用網(wǎng)絡(luò)互連設(shè)備110把LAN 101耦合到較大的整體網(wǎng)絡(luò)。網(wǎng)絡(luò)互連器件的特定類型可以是路由器、交換器(switch)或與特定網(wǎng)絡(luò)結(jié)構(gòu)有關(guān)的網(wǎng)絡(luò)集線器(hub)。一般,網(wǎng)絡(luò)互連器件110包括路由器、交換器、網(wǎng)絡(luò)集線器或能把LAN 101、WAN 112和LAN 116與用戶終端連接成綜合網(wǎng)絡(luò)的任何其它網(wǎng)絡(luò)互連器件。網(wǎng)絡(luò)互連器件114也可包括路由器、交換器、網(wǎng)絡(luò)集線器或能把LAN 116上的計(jì)算機(jī)與用戶終端耦合成綜合網(wǎng)絡(luò)的任何其它網(wǎng)絡(luò)互連器件。一般,依據(jù)本發(fā)明設(shè)計(jì)的動態(tài)分布式計(jì)算系統(tǒng)通常位于耦合到網(wǎng)絡(luò)100的每個(gè)計(jì)算機(jī)系統(tǒng)上。相應(yīng)地,每個(gè)計(jì)算機(jī)可依據(jù)所構(gòu)成的特定請求和所提供的服務(wù)而作為客戶或服務(wù)器進(jìn)行操作。通常,客戶請求在服務(wù)器計(jì)算機(jī)上計(jì)算一任務(wù),服務(wù)器計(jì)算機(jī)將處理該任務(wù)。
計(jì)算機(jī)系統(tǒng)現(xiàn)在參考圖2,示出適用于實(shí)行符合本發(fā)明的方法和系統(tǒng)的計(jì)算機(jī)系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)。示例的計(jì)算機(jī)系統(tǒng)只是為了描述的目的。雖然此描述可參考在描述特定計(jì)算機(jī)系統(tǒng)(諸如IBM PS/2個(gè)人計(jì)算機(jī))時(shí)所常用的術(shù)語,但此描述和概念同樣適用于其它計(jì)算機(jī)系統(tǒng),諸如網(wǎng)絡(luò)計(jì)算機(jī)、工作站、甚至是體系結(jié)構(gòu)與圖1不相似的大型計(jì)算機(jī)。
此外,雖然本發(fā)明同樣可應(yīng)用于具有類似要求的其它計(jì)算機(jī)系統(tǒng),但參照實(shí)現(xiàn)Java編程語言和Java虛擬機(jī)說明的計(jì)算機(jī)系統(tǒng)來描述本實(shí)現(xiàn)。具體來說,以面向?qū)ο蠛头敲嫦驅(qū)ο蟮木幊滔到y(tǒng)來實(shí)現(xiàn)本發(fā)明。
計(jì)算機(jī)系統(tǒng)200包括中央處理單元(CPU)105(它可以常規(guī)的微處理器來實(shí)現(xiàn))、用于暫時(shí)存儲信息的隨機(jī)存取存儲器(RAM)210和用于永久性存儲信息的只讀存儲器(ROM)215。設(shè)有用于控制RAM 210的存儲器控制器220。
總線230使計(jì)算機(jī)系統(tǒng)200的部件互連。設(shè)有用于控制總線230的總線控制器225。使用中斷控制器235來接收和處理來自系統(tǒng)部件的各種中斷信號。
可通過軟盤242、CD ROM 247或硬盤驅(qū)動器252來提供海量存儲??山?jīng)由諸如軟盤242和CD ROM 247等可移去的媒體與計(jì)算機(jī)系統(tǒng)200交換數(shù)據(jù)和軟件。軟盤242可插入軟盤驅(qū)動器241,繼而軟盤驅(qū)動器241由控制器240連到總線230。類似地,CD ROM 247可插入CD ROM驅(qū)動器246,繼而CD ROM驅(qū)動器246由控制器245連到總線230。硬盤252是由控制器250連到總線230的固定磁盤驅(qū)動器251的一部分。
可由許多器件向計(jì)算機(jī)系統(tǒng)200提供用戶輸入。例如,鍵盤256和鼠標(biāo)器257通過控制器255連到總線230。對本領(lǐng)域內(nèi)的技術(shù)人員很明顯的是,需要時(shí),可把諸如筆和/或輸入板等其它輸入器件連到總線230和適當(dāng)?shù)目刂破骷败浖TO(shè)有用于對RAM 210進(jìn)行直接存儲器訪問的DMA控制器260。由控制視頻顯示器270的視頻控制器265來產(chǎn)生視覺顯示。
計(jì)算機(jī)系統(tǒng)200還包括通信適配器290,該適配器使得該系統(tǒng)可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)(如總線291和網(wǎng)絡(luò)295示意所示)互連。
計(jì)算機(jī)系統(tǒng)200的操作通常由操作系統(tǒng)軟件來控制和協(xié)調(diào)。操作系統(tǒng)控制系統(tǒng)資源的分配并進(jìn)行諸如處理調(diào)度、存儲器管理、網(wǎng)絡(luò)連接和服務(wù)等任務(wù)。
動態(tài)分布式計(jì)算動態(tài)分布式計(jì)算通常是一個(gè)客戶服務(wù)器過程。對所進(jìn)行的每個(gè)調(diào)用建立客戶-服務(wù)器關(guān)系,通常其作用是可以改變的。通常,把客戶定義為作出調(diào)用以請求位于服務(wù)器處或由服務(wù)器所控制的資源的過程。在此情況下,也可把執(zhí)行請求過程的計(jì)算機(jī)或處理器叫做客戶。然而,這些作用可依據(jù)信息的上下文和所發(fā)生的特定處理而改變。
圖3是用來實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的客戶-服務(wù)器網(wǎng)絡(luò)環(huán)境的方框圖。該圖包括強(qiáng)調(diào)本發(fā)明的一個(gè)實(shí)施例的與本發(fā)明最有關(guān)的那些子系統(tǒng)。根據(jù)實(shí)際實(shí)現(xiàn),可能需要未包含在圖3中的附加子系統(tǒng)。
相應(yīng)地,圖3包括客戶302、服務(wù)器316和對象/方法資源庫314,它們在操作時(shí)都耦合到網(wǎng)絡(luò)312。客戶302包括作出遠(yuǎn)程計(jì)算調(diào)用306以在遠(yuǎn)程服務(wù)器計(jì)算機(jī)上處理任務(wù)的應(yīng)用程序304。通常使用在RMI說明書中所述的遠(yuǎn)程過程調(diào)用子系統(tǒng)產(chǎn)生的遠(yuǎn)程承接程序310用來使有關(guān)特定遠(yuǎn)程計(jì)算機(jī)調(diào)用306的參數(shù)和數(shù)據(jù)形成包。典型的客戶還可包括本地對象/方法308的集合,它可包含調(diào)用遠(yuǎn)程計(jì)算調(diào)用306以執(zhí)行的任務(wù)客戶302類型?;蛘?,任務(wù)可位于對象方法資源庫314中,并可在需要時(shí)被計(jì)算方法320所訪問。服務(wù)器316包括遠(yuǎn)程框架(skeleton)322來引出從客戶發(fā)送的參數(shù)和數(shù)據(jù)。遠(yuǎn)程框架322準(zhǔn)備計(jì)算方法320所使用的信息。本地對象/方法324還包括客戶302可請求服務(wù)器316進(jìn)行處理的任務(wù)。
在操作中,遠(yuǎn)程計(jì)算調(diào)用306調(diào)用計(jì)算方法320來處理特定任務(wù)。遠(yuǎn)程承接程序310引入有關(guān)調(diào)用方法的信息,使服務(wù)器316上的計(jì)算方法320可執(zhí)行該任務(wù)。遠(yuǎn)程承接程序310還可引入被服務(wù)器302上的計(jì)算方法320用作自變量的基本參數(shù)。遠(yuǎn)程框架322接收該任務(wù)并引出在該網(wǎng)絡(luò)上接收到的數(shù)據(jù)和參數(shù),提供給計(jì)算機(jī)方法320。如果在服務(wù)器316上不可獲得任務(wù)和相關(guān)的類型,則框架從客戶302、對象/方法資源庫314或丟失類型的某些其它安全可靠的資源下載該類型。類型信息映射了數(shù)據(jù)在對象中的位置,并使遠(yuǎn)程框架完成對該對象的處理。RMI(未示出)是一個(gè)能提供遠(yuǎn)程承接程序310和遠(yuǎn)程框架322的遠(yuǎn)程過程調(diào)用(RPC)系統(tǒng)。一旦對象已被框架處理,計(jì)算方法320就執(zhí)行該任務(wù)并把經(jīng)計(jì)算的任務(wù)或經(jīng)計(jì)算的任務(wù)的結(jié)果返還客戶302。
圖4是客戶利用本發(fā)明的動態(tài)分布式計(jì)算系統(tǒng)和方法所進(jìn)行的步驟的流程圖。最初,客戶從網(wǎng)絡(luò)中選擇處理該任務(wù)的適當(dāng)服務(wù)器(步驟402)。選擇標(biāo)準(zhǔn)可根據(jù)服務(wù)器計(jì)算機(jī)集合中的整個(gè)處理負(fù)荷分布或每個(gè)服務(wù)器計(jì)算機(jī)的專門計(jì)算能力。例如,可使用負(fù)荷平衡技術(shù)來自動地確定在給定的時(shí)刻具有最少負(fù)荷的計(jì)算機(jī)。此外,客戶可選擇具有諸如圖形加速器或數(shù)學(xué)協(xié)處理器等專門硬件的某些計(jì)算機(jī),因?yàn)樵撊蝿?wù)具有諸如描繪(render)三維線框等大量的圖形計(jì)算,或者必須進(jìn)行許多浮點(diǎn)計(jì)算。
一旦服務(wù)器被選中,則客戶在選中的服務(wù)器上啟用遠(yuǎn)程計(jì)算方法(標(biāo)準(zhǔn)404)。諸如RMI等RPC系統(tǒng)有利于在服務(wù)器計(jì)算機(jī)上啟用遠(yuǎn)程計(jì)算方法。典型地,客戶只需要知道遠(yuǎn)程計(jì)算方法可被用作在遠(yuǎn)程計(jì)算機(jī)上處理特定任務(wù)的渠道。例如,在Java中,在客戶上所執(zhí)行的遠(yuǎn)程指令“Server.runTask(new PI(1000))”使得在“ComputerServer”類型的遠(yuǎn)程服務(wù)器“Server”上啟用遠(yuǎn)程方法“runTask”。這一步驟通過遠(yuǎn)程方法“runTask”把任務(wù)(在此情況下,任務(wù)是由“new PI(1000)所例示的類型任務(wù)對象)作為一個(gè)參數(shù)提供給通用計(jì)算方法。服務(wù)器上的“runTask”方法實(shí)現(xiàn)一Compute遠(yuǎn)程接口??蛇x擇地,該指令可向服務(wù)器指示應(yīng)把來自經(jīng)計(jì)算的任務(wù)的結(jié)果存入選中服務(wù)器上的結(jié)果高速緩沖存儲器中。這使得隨后的任務(wù)可在疊代(iteration)間共享結(jié)果。例如,計(jì)算“PI”得到的結(jié)果以后可被使用“PI”的值計(jì)算球的體積或完成另外精確計(jì)算的另一遠(yuǎn)程方法所使用。
接著,使用承接程序把參數(shù)和數(shù)據(jù)引入到一任務(wù)請求中。然后,把此任務(wù)請求提供給選中的服務(wù)器。典型地,任務(wù)請求包括該任務(wù)的數(shù)據(jù)和參數(shù)以及該類型或類(如果它不在服務(wù)器上)的網(wǎng)絡(luò)位置。服務(wù)器上的框架使用該類型或類信息來處理對象并引出數(shù)據(jù)和參數(shù)。在使用Java和RMI的系統(tǒng)中,任務(wù)請求是一對象,類位置信息包含在代碼庫(codebase)URL(全球記錄定位器(universal recordlocator))參數(shù)中。在RMI說明書中包含了與此有關(guān)的進(jìn)一步詳細(xì)信息。服務(wù)器可調(diào)度立即執(zhí)行該任務(wù)或一旦服務(wù)器找到執(zhí)行任務(wù)的適當(dāng)時(shí)間時(shí)執(zhí)行該任務(wù)。在服務(wù)器進(jìn)行計(jì)算后,客戶接收來自經(jīng)計(jì)算的任務(wù)的結(jié)果(步驟408)。
圖5是符合本發(fā)明的動態(tài)分布式計(jì)算系統(tǒng)和方法所進(jìn)行的步驟的流程圖。最初,服務(wù)器上的框架引出來自任務(wù)請求的參數(shù)和數(shù)據(jù)并重新產(chǎn)生與發(fā)送時(shí)相同的原始任務(wù)(步驟504)。這些參數(shù)的引出可包括下載幾個(gè)附加類型??蚣艽_定在該服務(wù)器上是否可獲得有關(guān)任務(wù)請求的類型(步驟506)。如果不能獲得有關(guān)任務(wù)請求的類型,則框架必須從網(wǎng)絡(luò)上的區(qū)域之一下載該任務(wù)(步驟509)。例如,如果“PI()”類型不在服務(wù)器上,則框架服務(wù)器將從客戶下載這一類型??蚣苁褂迷擃愋突蝾悂碛成湓搶ο笾械臄?shù)據(jù)并引入?yún)?shù)和數(shù)據(jù)。
典型地,客戶將指示請求包中特定類型所在的地方??蚣芸蓮膶ο螅椒ㄙY源庫中下載被請求的類型并可高速緩存此類型用以將來的服務(wù)器請求。此外,被請求的類型也可位于客戶上。例如,在Java和RMI中,包含特定類型的類位于客戶所發(fā)送的給定代碼庫URL(全球記錄定位器)中。RMI中的動態(tài)類裝載特征有利于使用代碼庫自動地下載類。這些類型使得框架可分析任務(wù)請求并提取適當(dāng)?shù)臄?shù)據(jù)和參數(shù)。以上簡述的步驟使得可容易地獲得進(jìn)一步處理用的參數(shù)和數(shù)據(jù)。
一旦可獲得適當(dāng)?shù)念愋停瑒t框架啟用通用計(jì)算方法(步驟508)。然后,服務(wù)器上的通用計(jì)算方法執(zhí)行被客戶所請求的特定任務(wù)(步驟510)。例如,假設(shè)客戶調(diào)用“ComputeServer.runTask(new PI(1000))”??蚣軐⒃诜?wù)器上啟用通用計(jì)算方法“runTask”?!皉unTask”方法調(diào)用嵌入用戶所調(diào)用的任務(wù)中的“run()”方法。此外,“runTask”方法實(shí)現(xiàn)了保持與客戶的遠(yuǎn)程連接的遠(yuǎn)程接口“Compute”。在客戶或服務(wù)器上的預(yù)定設(shè)置的選項(xiàng)處,如果后續(xù)的任務(wù)將使用來自經(jīng)計(jì)算的任務(wù)的結(jié)果,則框架把這些結(jié)果存入高速緩存存儲器中。作為服務(wù)器上的最后一個(gè)步驟,通過在服務(wù)器上執(zhí)行“return t.run()”把經(jīng)計(jì)算的任務(wù)或結(jié)果返還客戶(步驟512)。
示例實(shí)現(xiàn)依據(jù)本發(fā)明,提供以下代碼樣本作為一個(gè)實(shí)現(xiàn)。雖然以面向?qū)ο蟮腏ava編程語言來提供本例,但也可使用其它編程語言。例如,服務(wù)器可包括以下Java碼THE TASKpublic interface Task extends Serializable{//This interface allows a class(the“PI”//class)to implement the abstract//run() class{Public Object runO;}THE REMOTE INTERFACEimport java.rmi.*;public interface Compute extends Remote {//The RMI/RPC Interfacepublic Object runTask(Task t)throws RemoteException;//The abstract runIt method}//abstract “runTask” method// ...Code in this area is used for initializing the routine with RPC systempublic Object runTask(Task t)throws RemoteException//runTask implements the abstract method//defined in ComputerServer interfacereturn t.run(); //可在在進(jìn)行符合本發(fā)明的動態(tài)分布式計(jì)算的客戶上使用以下示例Java碼。class PI {private int precision;PI (int howManyPlaces) { //sets precision of PI value to be calculated laterprecision=howManyPlaces;}public Object runO { //implement the abstract run method in the//compute interfacedouble pi=computePIsomehow(precision);//calcualate pireturn new Double(pi);}public static void main (String[] args) {ComputerServer server=getAComputerServer(); //Select a server from//the network//and store in remote//compute call to RMI//RPC abstract remote//interfaceDouble pi=server.runTask(new PI(1000));//implement abstract remote//to execute a“pi”computation//defined in “PI”class.System.out.println("PI seems to be"+pi);//return results in“pi”variable//and print to standard out雖然這里為了說明的目的描述了特定實(shí)施例,但可進(jìn)行各種修改而不背離本發(fā)明的精神和范圍。本領(lǐng)域內(nèi)的技術(shù)人員理解,本發(fā)明可以在各種硬件和軟件平臺來實(shí)現(xiàn),且不限于以上所討論的傳統(tǒng)路由器、交換器和智能網(wǎng)絡(luò)集線器。相應(yīng)地,本發(fā)明不限于以上所描述的實(shí)施例,而根據(jù)附加權(quán)利要求書按照整個(gè)等價(jià)范圍來限定。
權(quán)利要求
1.一種在一計(jì)算機(jī)系統(tǒng)上執(zhí)行的方法,該計(jì)算機(jī)系統(tǒng)具有主存儲器件、次級存儲器件、顯示器件和輸入/輸出機(jī)構(gòu),該方法使得客戶給服務(wù)器計(jì)算機(jī)集合中的一個(gè)服務(wù)器計(jì)算機(jī)動態(tài)地分配以與每一個(gè)服務(wù)器計(jì)算機(jī)兼容的編程語言所開發(fā)的任務(wù),其特征在于所述方法包括以下步驟根據(jù)服務(wù)器集合中的整個(gè)處理負(fù)荷分布和每個(gè)服務(wù)器計(jì)算機(jī)的專門計(jì)算能力,從多個(gè)異構(gòu)服務(wù)器中選擇一個(gè)服務(wù)器來處理一任務(wù);把參數(shù)和數(shù)據(jù)引入到一任務(wù)請求中,這一步驟進(jìn)一步包括以下子步驟,確定在選中的服務(wù)器上是否存在與被請求的任務(wù)有關(guān)的代碼和數(shù)據(jù)類型,以及當(dāng)選中的服務(wù)器上不存在該代碼和數(shù)據(jù)類型時(shí),把代碼和有關(guān)的數(shù)據(jù)類型下載到選中的服務(wù)器上;啟用有關(guān)選中服務(wù)器的通用計(jì)算方法,這一步驟執(zhí)行任務(wù)且進(jìn)一步包括以下子步驟,把任務(wù)作為參數(shù)提供給通用計(jì)算方法,以及向服務(wù)器指示應(yīng)把來自于經(jīng)計(jì)算的任務(wù)的結(jié)果存入選中服務(wù)器上的結(jié)果高速緩沖存儲器中以便使隨后的任務(wù)使用;以及接收從選中服務(wù)器返還的經(jīng)計(jì)算的任務(wù)以在客戶上進(jìn)行進(jìn)一步處理。
2.一種在包含在一計(jì)算機(jī)系統(tǒng)內(nèi)的處理器上執(zhí)行的方法,該計(jì)算機(jī)系統(tǒng)具有主存儲器件、次級存儲器件、顯示器件和輸入/輸出機(jī)構(gòu),該方法使得與一服務(wù)器集合相連的一個(gè)服務(wù)器動態(tài)地接收和處理來自客戶計(jì)算機(jī)的任務(wù),其中該任務(wù)為與每一個(gè)服務(wù)器計(jì)算機(jī)兼容的可執(zhí)行編程語言,其特征在于所述方法包括以下步驟把一任務(wù)請求中的參數(shù)和數(shù)據(jù)引出到一任務(wù)中,這一步驟進(jìn)一步包括以下子步驟,確定在該服務(wù)器上是否可獲得有關(guān)該任務(wù)的類型,以及當(dāng)在該服務(wù)器上不能獲得有關(guān)該任務(wù)的類型時(shí),從客戶所提供的參數(shù)所指示的位置把類型下載到服務(wù)器上;啟用能處理所有類型的任務(wù)的通用計(jì)算方法,這一步驟執(zhí)行任務(wù)并產(chǎn)生結(jié)果;如果隨后的任務(wù)要使用來自所執(zhí)行任務(wù)的結(jié)果,則把這些結(jié)果存入高速緩沖存儲器中;以及把來自所執(zhí)行任務(wù)的結(jié)果返還客戶。
3.一種在一處理器上執(zhí)行的方法,所述處理器在操作上耦合到一服務(wù)器集合,所述方法使與該處理器相連的客戶把一任務(wù)動態(tài)地分配給一服務(wù)器,其特征在于所述方法包括以下步驟選擇一服務(wù)器來處理該任務(wù);從參數(shù)和數(shù)據(jù)中形成一任務(wù)請求;把該任務(wù)請求發(fā)送到選中的服務(wù)器,這一步驟啟用能在選中服務(wù)器上執(zhí)行任務(wù)請求的通用計(jì)算技術(shù)并產(chǎn)生結(jié)果;以及接收從選中服務(wù)器返還的結(jié)果。
4.如權(quán)利要求3所述的方法,其特征在于所述處理器在操作上耦合到一計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)具有主存儲器件、次級存儲器件、顯示器件和輸入/輸出機(jī)構(gòu)。
5.如權(quán)利要求3所述的方法,其特征在于該任務(wù)是以與每一個(gè)服務(wù)器計(jì)算機(jī)兼容的編程語言和環(huán)境來開發(fā)的。
6.如權(quán)利要求3所述的方法,其特征在于所述服務(wù)器是從多個(gè)異構(gòu)計(jì)算機(jī)系統(tǒng)中選出的。
7.如權(quán)利要求5所述的方法,其特征在于所述環(huán)境包括遠(yuǎn)程過程調(diào)用子系統(tǒng)。
8.如權(quán)利要求7所述的方法,其特征在于所述遠(yuǎn)程過程調(diào)用子系統(tǒng)是遠(yuǎn)程方法啟用(RMI)系統(tǒng)。
9.如權(quán)利要求3所述的方法,其特征在于選擇服務(wù)器的準(zhǔn)則包括服務(wù)器計(jì)算機(jī)集合中的整個(gè)處理負(fù)荷分布。
10.如權(quán)利要求6所述的方法,其特征在于在預(yù)定的時(shí)間周期內(nèi),與諸服務(wù)器的平均負(fù)荷特性相比,選中的服務(wù)器具有最低的負(fù)荷特性。
11.如權(quán)利要求3所述的方法,其特征在于選擇服務(wù)器的準(zhǔn)則包括每一個(gè)服務(wù)器計(jì)算機(jī)的專門計(jì)算能力。
12.如權(quán)利要求11所述的方法,其特征在于專門計(jì)算能力包括描繪圖像。
13.如權(quán)利要求3所述的方法,其特征在于發(fā)送步驟還包括以下子步驟確定在選中的服務(wù)器上是否存在有關(guān)被請求任務(wù)的代碼;以及當(dāng)選中服務(wù)器上不存在所述代碼時(shí)把該代碼下載到選中服務(wù)器上。
14.如權(quán)利要求3所述的方法,其特征在于發(fā)送步驟還包括,把任務(wù)作為參數(shù)提供給通用計(jì)算方法。
15.如權(quán)利要求3所述的方法,其特征在于還包括向所述服務(wù)器指示應(yīng)把來自經(jīng)計(jì)算的任務(wù)的結(jié)果存入選中服務(wù)器上的結(jié)果高速緩沖存儲器中為隨后的任務(wù)使用。
16.如權(quán)利要求3所述的方法,其特征在于所述結(jié)果用于在客戶上進(jìn)行進(jìn)一步處理。
17.如權(quán)利要求3所述的方法,其特征在于結(jié)果是一對象。
18.一種在一處理器上執(zhí)行的方法,所述處理器在操作上耦合到一服務(wù)器集合,所述方法使與所述處理器相連的一服務(wù)器動態(tài)地接收和處理來自客戶計(jì)算機(jī)的任務(wù),其中所述任務(wù)是與每一個(gè)服務(wù)器計(jì)算機(jī)兼容的可執(zhí)行編程語言,其特征在于所述方法包括以下步驟從一個(gè)任務(wù)請求中檢索參數(shù)和數(shù)據(jù)而形成一任務(wù);在服務(wù)器上啟用能處理多個(gè)類型的任務(wù)的通用計(jì)算方法,這一步驟執(zhí)行所述任務(wù)并產(chǎn)生結(jié)果;把結(jié)果返還客戶。
19.如權(quán)利要求18所述的方法,其特征在于所述處理器在操作上耦合到一計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)具有主存儲器件、次級存儲器件、顯示器件和輸入/輸出機(jī)構(gòu)。
20.如權(quán)利要求18所述的方法,其特征在于該任務(wù)是以與每一個(gè)服務(wù)器計(jì)算機(jī)兼容的編程語言來開發(fā)的。
21.如權(quán)利要求18所述的方法,其特征在于該任務(wù)是使用Java編程語言和環(huán)境來開發(fā)的。
22.如權(quán)利要求21所述的方法,其特征在于所述環(huán)境包括遠(yuǎn)程過程調(diào)用子系統(tǒng)。
23.如權(quán)利要求22所述的方法,其特征在于所述遠(yuǎn)程過程調(diào)用子系統(tǒng)是遠(yuǎn)程方法啟用(RMI)系統(tǒng)。
24.如權(quán)利要求18所述的方法,其特征在于檢索步驟還包括以下子步驟確定在服務(wù)器上是否存在與任務(wù)有關(guān)的類型;以及當(dāng)服務(wù)器上不存在所述類型時(shí)把該類型從客戶所提供的參數(shù)所指定的位置下載到選中服務(wù)器上;以及根據(jù)客戶所提供的數(shù)據(jù)和參數(shù)來執(zhí)行任務(wù)。
25.如權(quán)利要求24所述的方法,其特征在于由遠(yuǎn)程過程調(diào)用(RPC)子系統(tǒng)來完成確定步驟和下載步驟。
26.如權(quán)利要求25所述的方法,其特征在于由遠(yuǎn)程過程調(diào)用子系統(tǒng)的遠(yuǎn)程方法啟用(RMI)類型來進(jìn)行確定步驟。
27.如權(quán)利要求18所述的方法,其特征在于還包括,如果在隨后的任務(wù)中要使用來自所述任務(wù)的所述結(jié)果時(shí)把所述結(jié)果存入高速緩沖存儲器中的子步驟。
全文摘要
在一客戶—服務(wù)器環(huán)境中,想要具有許多能處理廣泛的應(yīng)用程序的服務(wù)器,這些應(yīng)用程序諸如計(jì)算密集應(yīng)用程序或諸如描繪等圖形操作。在異構(gòu)客戶—服務(wù)器環(huán)境中,常規(guī)的系統(tǒng)把可執(zhí)行程序靜態(tài)地存儲在服務(wù)器上以便今后執(zhí)行。這要求應(yīng)用程序從具有不同目標(biāo)模塊的客戶機(jī)裝入服務(wù)器,需要大量存儲量和許多編程員的時(shí)間。本發(fā)明通過在一異構(gòu)客戶—服務(wù)器網(wǎng)絡(luò)中產(chǎn)生一同構(gòu)執(zhí)行環(huán)境解塊了這些問題。相應(yīng)地,本系統(tǒng)把代碼動態(tài)地下載到計(jì)算機(jī)服務(wù)器上,在計(jì)算機(jī)服務(wù)器上執(zhí)行該代碼并把結(jié)果返還調(diào)用客戶方法。此技術(shù)不需要下載多個(gè)代碼拷貝也不需要進(jìn)行編譯,因?yàn)榭稍谒胁煌南到y(tǒng)上執(zhí)行服務(wù)器代碼。依據(jù)本技術(shù)設(shè)計(jì)的系統(tǒng)也是有效的。一般,在客戶上就地編譯服務(wù)器代碼,并把該服務(wù)器代碼作為字節(jié)碼下載到服務(wù)器然后執(zhí)行。
文檔編號G06F9/50GK1292118SQ99803347
公開日2001年4月18日 申請日期1999年2月25日 優(yōu)先權(quán)日1998年2月26日
發(fā)明者K·C·R·C·阿諾德, J·H·瓦爾多, A·M·沃爾蕾斯, P·C·瓊斯 申請人:太陽微系統(tǒng)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
丹寨县| 乌恰县| 泊头市| 张家港市| 余干县| 古丈县| 诸暨市| 宝坻区| 井冈山市| 建始县| 吉首市| 淮南市| 阿巴嘎旗| 泽普县| 乌兰县| 叙永县| 渑池县| 朝阳区| 花垣县| 宁乡县| 靖州| 大丰市| 九龙城区| 娄底市| 孝感市| 昔阳县| 汉沽区| 娄烦县| 兴城市| 望江县| 洛浦县| 吉林省| 临汾市| 潞西市| 苍梧县| 泗洪县| 安图县| 攀枝花市| 额济纳旗| 霍林郭勒市| 林甸县|