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

執(zhí)行與分布式系統(tǒng)中的遠程過程調(diào)用相關(guān)的處理的可下載智能代理的制作方法

文檔序號:6418923閱讀:149來源:國知局
專利名稱:執(zhí)行與分布式系統(tǒng)中的遠程過程調(diào)用相關(guān)的處理的可下載智能代理的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種在分布式系統(tǒng)中在機器之間傳送對象的系統(tǒng)和方法,尤其涉及遠程對象表述的傳送,包括用于本地處理的代碼。
背景技術(shù)
集中進行點對點數(shù)據(jù)傳輸?shù)姆植际匠绦蚪?jīng)??梢杂行У夭捎糜糜谶h端訪問和文件傳送的專用協(xié)議進行處理。這些協(xié)議是特別用于一種程序,并且是不提供建立各種分布式程序(例如,分布式操作系統(tǒng)、電子郵件系統(tǒng)、計算機會議系統(tǒng)等)的基礎(chǔ)。
盡管傳統(tǒng)的傳送服務(wù)可以用作建立分布式程序的基礎(chǔ),但這些服務(wù)有許多組織上的問題,如,在不同的機器中采用不同的數(shù)據(jù)類型、缺少同步化設(shè)施,以及不具備簡單的編程規(guī)程(paradigm)。
分布式系統(tǒng)通常含有集中不同類型的機器,由通信網(wǎng)互聯(lián)在一起。每一機器有其自己的內(nèi)部數(shù)據(jù)類型、其自己的地址對準規(guī)則,以及其自己的操作系統(tǒng)。這種不同一性使得在建立分布式系統(tǒng)時出現(xiàn)一些問題。結(jié)果,程序開發(fā)人員必須在為這種異種機的分布式系統(tǒng)開發(fā)的程序中包括一種處理能力,使得能夠確保在不同的機器中對信息的處理和并且解釋的一致性。
然而,可以有一種簡化,這是因為注意到,大部分的程序在進程之間采用一個請求和應(yīng)答的交互作用,啟動器(即程序發(fā)起通信)受到阻塞直到應(yīng)答返回,并且因此在該時間里閑置。通過進程之間的過程調(diào)用機制,可以使其模型化。一種這樣的機制稱為遠程過程調(diào)用(RPC)。
RPC是一種在相同機器或不同機器上運行的兩個進程(即,程序、applet程序等)之間提供同步化通信的機構(gòu)。在一種簡單情況下,一個過程,如一用戶程序,向另一進程發(fā)送一條消息,如服務(wù)器程序。這時,無論是在發(fā)送消息的時候還是在接收消息的時候,進程是不必同步化的。用戶程序可以發(fā)送該消息,并且隨后開始新的活動,或者對于服務(wù)器程序環(huán)境來說,緩沖輸入的消息,直到服務(wù)器程序準備處理新的消息為止。
然而,RPC對同步化有限制,因為它嚴密地按照本地過程調(diào)用模型,這要求沿一個方向傳送參數(shù)、在服務(wù)器程序的被調(diào)用過程完成之前阻斷調(diào)用進程,并且隨后返回一個響應(yīng)。因此,RPC包含兩個消息的傳送,以及調(diào)用期間兩個進程的同步化。
RPC機構(gòu)通常是用本地過程調(diào)用無用信號在兩個處理部分中實現(xiàn)的,一個部分是在客戶機側(cè),而另一部分是在服務(wù)器側(cè)。這兩個部分將在下面參照

圖1來描述。
圖1是采用RPC機構(gòu)的調(diào)用信息流的圖。如圖1所示,客戶程序100發(fā)出一個調(diào)用(步驟102)。RPC機構(gòu)101隨后打包該調(diào)用,作為調(diào)用包的形式參數(shù)(步驟103),隨后RPC將其發(fā)送到服務(wù)器程序109(步驟104)。該調(diào)用包還含有識別首先發(fā)送該調(diào)用的用戶程序100的信息。在發(fā)送了該調(diào)用包(步驟104)以后,RPC機構(gòu)101進入等待狀態(tài),在此期間,等待來自服務(wù)器程序109的響應(yīng)。
用于服務(wù)器程序109的RPC機構(gòu)108(當服務(wù)器程序109是與客戶機程序100處于同一平臺上時,它可以是與RPC機構(gòu)101相同的RPC機構(gòu))接收該調(diào)用包(步驟110)、解包來自調(diào)用包的調(diào)用形參(步驟111)、用調(diào)用信息識別對調(diào)用進行尋址的服務(wù)器程序109,并將這些調(diào)用形參提供到服務(wù)器程序109。
服務(wù)器程序接收該調(diào)用(步驟112)、通過調(diào)用合適的過程對調(diào)用進行處理(步驟115),并向RPC機構(gòu)108返回一個響應(yīng)(應(yīng)答)(步驟116)。RPC機構(gòu)108接著將該響應(yīng)打包到一個響應(yīng)包內(nèi)(步驟114),并將其發(fā)送到客戶程序100(步驟113)。
接收響應(yīng)包(步驟107)啟動了RPC機構(gòu)101,使之退出等待狀態(tài),并解包來自響應(yīng)包的響應(yīng)(步驟106)。響應(yīng)于該調(diào)用(105),RPC接著將該響應(yīng)提供到客戶程序100。這是根據(jù)本地過程調(diào)用規(guī)程模型的典型RPC機構(gòu)的處理過程流。由于RPC機構(gòu)采用的是本地過程調(diào)用規(guī)程,調(diào)用時客戶程序100是阻斷的,一直到接收到一個響應(yīng)(應(yīng)答)為止。所以,客戶程序100在發(fā)送了調(diào)用以后是不再繼續(xù)其自身的處理的;相反,它等待來自服務(wù)器程序109的響應(yīng)。
JavaTM程序語言是一種面向?qū)ο蟮某绦蛘Z言,它通常是用字節(jié)碼指令集編譯成與平臺獨立的格式,而字節(jié)碼指令集是可以在任何一種支持Java虛擬機(JVM)的平臺上執(zhí)行的。這種語言可以參見James Gosling、Bill Joy和Guy Steel、Addison-Wesley,1996的“Java語言技術(shù)規(guī)范(The Java LanguageSpecification)”,在此引述供參考。JVM的描述見Tim Lindholm和Frank Yellin的“Java虛擬機技術(shù)規(guī)范(The Java Virtual Machine Specification)”,AddisonWeslsy,1996,在此引述供參考。Java和基于Java的商標是由Sun Microsystems公司在美國和其他國家注冊的商標。
由于JVM可以在任何一種平臺上實施,采用JVM執(zhí)行分布式程序顯著減小了為異種機分布式系統(tǒng)開發(fā)程序有關(guān)的困難。另外,JVM采用Java遠程方法調(diào)用系統(tǒng)(RMI),它使得能夠在系統(tǒng)的程序間進行通信。RMI的說明見下述文件,該文件在此引述供參考“遠程方法調(diào)用技術(shù)規(guī)范”,Sun Mricrosystems,Inc(1997),這可以通過統(tǒng)一資源定位器(URL)http://www.javasoft.com/products/jdk/1.1/docs/guide/rmi/spec/rmiTOC.doc.html得到。
圖2是面向?qū)ο蟮姆植际较到y(tǒng)200的對象流的圖,該面向?qū)ο蟮姆植际较到y(tǒng)200包括用于采用JVM的傳送和接收方法調(diào)用的機器201和202。在系統(tǒng)200中,機器201采用RMI 205,通過將對象轉(zhuǎn)換成字節(jié)流207對于對象203的調(diào)用作出響應(yīng),在字節(jié)流207中包括發(fā)送對象的類型的標識和組成該對象的數(shù)據(jù)。在機器201對對象203的調(diào)用作出響應(yīng)時,在系統(tǒng)200中相同或另一機器上運行的進程可以是連續(xù)進行的,而不必等待對其請求作出響應(yīng)。
機器202接收字節(jié)流207。機器202采用RMI 206自動將其轉(zhuǎn)換成相應(yīng)的對象204,對象204是對象203的復(fù)制,并且它使得該對象可以由在機器202上執(zhí)行的程序使用。機器202還可以通過首先將對象轉(zhuǎn)換成字節(jié)流而將對象發(fā)送到另一個機器并隨后將其發(fā)送到第三個機器,第三個機器自動將該字節(jié)流轉(zhuǎn)換成相應(yīng)的對象。
機器之間的通信有時包含如相同信息的重復(fù)調(diào)用。這些調(diào)用形成一種本地代理(local proxy),作為客戶地址空間內(nèi)遠程對象的代理(surrogate)而工作。這種代理通過向服務(wù)器對象提出網(wǎng)絡(luò)請求將服務(wù)于該調(diào)用。通過代理對同一服務(wù)器對象的重復(fù)請求會產(chǎn)生大量的網(wǎng)絡(luò)業(yè)務(wù),而增加了獲得信息的時間和費用。因此,需要一種在這種情況下減少網(wǎng)絡(luò)通信量的技術(shù)。
發(fā)明概述按照本發(fā)明的方法發(fā)送對特定對象的請求。接收對該請求的響應(yīng),該響應(yīng)包括用來構(gòu)成被請求的對象的表述代碼,該構(gòu)成用該表述產(chǎn)生一個對象(object),用來對該對象的調(diào)用進行處理,該對象對請求對象是本地的。
按照本發(fā)明的另一個方法在一機器處接收對特定對象的請求。發(fā)送對該請求的響應(yīng),該響應(yīng)包括用來構(gòu)成對象表述的第一代碼,并且包括進行處理的第二代碼的指示,使得該構(gòu)成用該表述產(chǎn)生一個對于請求對象是本地的對該對象進行調(diào)用處理的對象。
按照本發(fā)明的裝置發(fā)送對特定對象的請求。該裝置接收對請求的響應(yīng),該響應(yīng)包括用來構(gòu)成被請求對象的表述的代碼,該構(gòu)成用該表述產(chǎn)生一個對象(object),用來對該對象的調(diào)用進行處理,該對象對請求對象是本地的。
按照本發(fā)明的另一個裝置在一機器處接收對特定對象的請求。該裝置發(fā)送對請求的響應(yīng),該響應(yīng)包括用來構(gòu)成對象表述的第一代碼,并且包括進行處理的第二代碼的指示,使得該構(gòu)成用該表述產(chǎn)生一個對于請求對象是本地的對該對象進行調(diào)用處理的對象。
附圖簡述作為本說明書一部分的附圖與本說明書一起說明了本發(fā)明的優(yōu)點和原理。圖中,圖1是采用RPC機構(gòu)的調(diào)用信息流的圖;圖2是面向?qū)ο蟮姆植际较到y(tǒng)中對象傳送的圖;圖3是按照本發(fā)明實施時可以使用的典型分布式處理系統(tǒng)的圖;圖4是典型的分布式系統(tǒng)結(jié)構(gòu)的圖;圖5是圖4中所示分布式系統(tǒng)結(jié)構(gòu)中計算機的圖;圖6是下載智能代理時使用的分布式網(wǎng)絡(luò)的方框圖;圖7是圖6中所示分布式網(wǎng)絡(luò)中下載智能代理時的過程流程圖;以及圖8是改變智能代理所執(zhí)行的處理過程流程圖。
詳細描述概述分布式系統(tǒng)中的機器不接收僅對是一個替代符(surrogate)的對象提出網(wǎng)絡(luò)請求的代理(proxy),而是接收一智能代理。這樣的代理可以對是一個替代符的對象的調(diào)用作出響應(yīng),而不進行任何網(wǎng)絡(luò)調(diào)用,以提高程序的效率,或在進行網(wǎng)絡(luò)調(diào)用前或在完成網(wǎng)絡(luò)調(diào)用后進行處理,以增大程序的功能。術(shù)語“代理”通常是指代碼或其他的機構(gòu),用作機器地址空間中遠程對象的替代符。
系統(tǒng)轉(zhuǎn)發(fā)存根(stub)以及相關(guān)的智能代理可以采用各種各樣的RPC或RMI,將形參從一個處理過程傳送到另一個處理過程以及將一些值從一個處理過程返回到另一個處理過程,而這些處理過程可能是在不同的機器上的。術(shù)語“機器”在本文中用來指一種具體的機器或虛擬的機器。同一具體的機器中可以有多個虛擬的機器。RPC系統(tǒng)的例子包括分布式計算環(huán)境(DCE)RPC和微軟分布式共同對象模型(DCOM)RPC。存儲器存儲存根和相關(guān)的智能代理,并且該存儲器可以包括第二資源,如磁盤,或接收來自互聯(lián)網(wǎng)的對象。
分布式處理系統(tǒng)圖3繪出的是典型的分布式處理系統(tǒng)300,可以用來實施本發(fā)明。圖3中,分布式處理系統(tǒng)300包含三個獨立的并且是異種機平臺301、302和303,這些平臺連接在用網(wǎng)絡(luò)云319表示的網(wǎng)絡(luò)結(jié)構(gòu)中。網(wǎng)絡(luò)云319所代表的網(wǎng)絡(luò)結(jié)構(gòu)的組成和協(xié)議并不重要,只要它能夠進行平臺301、302和303之間的信息交換就行。另外,僅使用三個平臺僅為了進行描述起見,并不是對本發(fā)明結(jié)構(gòu)平臺數(shù)量的限制。再有,本發(fā)明的實施例對網(wǎng)絡(luò)的具體結(jié)構(gòu)沒有嚴格的限制。例如,也可以采用另一種按照本發(fā)明的網(wǎng)絡(luò)結(jié)構(gòu),在這種結(jié)構(gòu)中,僅采用一個平臺作為網(wǎng)絡(luò)控制器,所有其他的平臺均可以與該控制器相連。
在分布式處理系統(tǒng)300中,平臺301、302和303都分別包括一個處理器316、317和318,和存儲器304、305和306。存儲器304、305和306中分別包括應(yīng)用307、308和309,操作系統(tǒng)310、311和312以及RMI元件313、314和315。
應(yīng)用307、308和309可以是應(yīng)用或程序,它們是先前為用按照本發(fā)明實施例所提供的服務(wù)工作而寫入和修改的,或者是特別寫入以利用其優(yōu)點的。應(yīng)用307、308和309調(diào)用要按照本發(fā)明的實施例而執(zhí)行的操作。
操作系統(tǒng)310、311和312是典型的標準操作系統(tǒng),并且是分別與相應(yīng)的處理器316、317和318聯(lián)系在一起的。平臺301、302和303可以是異種的。例如,平臺301有一個由Sun Microsystems,Inc制造的UltraSparc_微處理器,作為處理器316,并采用Solaris_操作系統(tǒng)310。平臺302有一個由Silicon Graphics Corp公司制造的MIPS微處理器,作為處理器317,并采用Unix操作系統(tǒng)311。最后,平臺303有一個由Intel Corp公司制造的Pentium微處理器,并采用微軟視窗95操作系統(tǒng)312。按照本發(fā)明的實施例并非僅限于此,可以適合于各種平臺。
Sun,Sun Microsystems,Solaris,Java以及Sun Logo是Sun Microsystems,Inc在美國和其他國家注冊的商標。UltraSpare和所有SPARC商標是在取得許可證的情況下使用的,并且是SPARC International,Inc在美國和其他國家注冊的商標。帶有SPARC商標的產(chǎn)品是基于Sun Microsystems,Inc開發(fā)的結(jié)構(gòu)的。
存儲器304、305和306具有幾種功能,如用于相關(guān)平臺的通用存儲。另一個功能是存儲應(yīng)用307、308和309、RMI元件313、314和315和由各個處理器316、317和318執(zhí)行期間的操作系統(tǒng)310、311和312。另外,部分存儲器304、305和306可以構(gòu)成網(wǎng)絡(luò)319中所有平臺301、302和303的共享存儲器。注意,RMI元件313、314和315與JVM一起操作,圖中未示出是為了使圖簡化。
分布式系統(tǒng)結(jié)構(gòu)按照本發(fā)明的系統(tǒng)和方法還可以在特定的分布式系統(tǒng)400中工作,這將參照圖4和圖5來描述。該分布式系統(tǒng)400由各種元件組成,包括硬件和軟件,(1)使得系統(tǒng)用戶能夠在由許多裝置組成的網(wǎng)絡(luò)上共享服務(wù)和資源;(2)向程序員提供能夠進行更強的保密的分布式系統(tǒng)的開發(fā)的工具和編程模式;以及(3)簡化了管理分布式系統(tǒng)的任務(wù)。為了實現(xiàn)這一目標,分布式系統(tǒng)400采用Java編程環(huán)境,使得代碼和數(shù)據(jù)都能夠從一個裝置以無縫的方式移動到另一個裝置。因此,分布式系統(tǒng)400處在Java編程環(huán)境的頂層,并充分利用了該環(huán)境的特征,包括它所提供的保密性和它所提供的強打印。
在圖4和圖5所示的分布式系統(tǒng)400中,不同的計算機和裝置聯(lián)合成對用戶來說是一個單個的系統(tǒng)。由于看上去是一個單個的系統(tǒng),分布式系統(tǒng)400提供訪問的簡化,和可以由單個系統(tǒng)提供的共享的功效,而無需放棄個人計算機或網(wǎng)站的靈活性和個性化響應(yīng)。分布式系統(tǒng)400可以含有幾千個由用戶操作的裝置,而這些用戶在地理上是分散的,但都接受委托、管理和方針的約定。
在典型的分布式系統(tǒng)中,有各種由一個或多個裝置提供的服務(wù)邏輯分組,每一個邏輯分組都稱為是一個Djinn?!胺?wù)”指的是一種資源、數(shù)據(jù)或功能,它們可以由用戶、程序、裝置或另一種服務(wù)來訪問,并且可以被運算,進行有關(guān)的存儲、有關(guān)的通信,或涉及向另一用戶提供訪問。作為Djinn的一部分提供的服務(wù)例子包括裝置,如打印機、顯示器和磁盤;軟件,如程序?qū)嵱贸绦?;信息,如?shù)據(jù)庫和文件;以及系統(tǒng)的用戶。
用戶和裝置都可以加入有關(guān)Djinn。在加入Djinn時,用戶或裝置在Djinn中加入零或多個服務(wù),并且可以根據(jù)保密性限制,訪問它所含有的服務(wù)中的一種服務(wù)。所以,裝置和用戶聯(lián)合成有關(guān)Djinn,以共享對其服務(wù)的訪問。Djinn的服務(wù)從程序方面看來,就象是Java編程環(huán)境的對象,它可以包括其他的對象、以不同程序語言書寫的軟件成分,或硬件裝置。一種服務(wù)有一個接口,它定義了可以對該服務(wù)進行請求的操作,并且服務(wù)的類型決定了組成該服務(wù)的接口。
分布式系統(tǒng)400由計算機402、計算機404和裝置406組成,由網(wǎng)絡(luò)408互聯(lián)起來。裝置406可以是任何數(shù)量的裝置,如打印機、傳真機、存儲裝置、計算機或其他的裝置。網(wǎng)絡(luò)408可以是局域網(wǎng)、廣域網(wǎng)或互聯(lián)網(wǎng)。盡管圖中只繪出只有兩個計算機和一個裝置包含分布式系統(tǒng)400,但本領(lǐng)域中的技術(shù)人員將能夠理解,分布式系統(tǒng)可以包括其他的計算機或裝置。
圖5描繪的是更詳細的計算機402,示出了分布式系統(tǒng)400的幾個軟件成分。本領(lǐng)域中的技術(shù)人員將能夠理解,這里計算機404和裝置406的配置可以是相似的。計算機402包括存儲器502、輔助存儲裝置504、中央處理單元(CPU)506、輸入裝置508,以及一個顯示器510。存儲器502包括查詢服務(wù)512、發(fā)現(xiàn)服務(wù)器514和一個Java運行時系統(tǒng)516。Java運行時系統(tǒng)516包括JavaRMI系統(tǒng)518和JVM520。輔助存儲裝置504包括Java空間522。
如上所述,分布式系統(tǒng)400是基于Java程序環(huán)境的,因此使用的是Java運行時系統(tǒng)516。Java運行時系統(tǒng)516包括Java API庫,使得在Java運行時系統(tǒng)頂部的程序運行能夠以與平臺無關(guān)的方式訪問各種系統(tǒng)功能,包括主操作系統(tǒng)的視窗功能和網(wǎng)絡(luò)能力。由于在運行時系統(tǒng)所移植的所有操作系統(tǒng)上,Java API庫提供了一個單個的公共API,在Java運行時系統(tǒng)頂部運行的程序以獨立平臺方式運行,而不管是什么樣的操作系統(tǒng)或主平臺的硬件結(jié)構(gòu)。提供的Java運行時系統(tǒng)516作為Java軟件開發(fā)工具的一部分,該軟件開發(fā)工具可從Sun Microsystems,Inc(Mountain View,CA)得到。
JVM520便于平臺獨立。JVM520象是一個抽象計算機器,以字節(jié)碼的形式接收來自程序的指令,并通過將字節(jié)碼動態(tài)地轉(zhuǎn)換成用于執(zhí)行的形式如對象碼并執(zhí)行之來解釋這些字節(jié)碼。RMI518通過使對象能夠在一個計算機或裝置上執(zhí)行以調(diào)用另一臺計算機或裝置上的對象的方法,便于進行遠程方法調(diào)用。提供的RMI和JVM也作為Java軟件開發(fā)工具的一部分。
查詢服務(wù)512定義了用于特定Djinn的服務(wù)。即,可以有一個以上的Djinn,因此,分布式系統(tǒng)400中可以有一個以上的查詢服務(wù)。查詢服務(wù)512含有一個對象用于Djinn中的每一種服務(wù),并且每一對象含有各種便于對相應(yīng)的服務(wù)進行訪問的方法。查詢服務(wù)512的描述見美國專利申請“便于對查詢服務(wù)進行訪問的方法和系統(tǒng)”,該專利申請在此引述供參考。
發(fā)現(xiàn)服務(wù)器514檢測在稱為啟動和聯(lián)接(或發(fā)現(xiàn))期間,何時將新的裝置加入到分布式系統(tǒng)400中,以及何時這樣一個新的裝置被檢測到,發(fā)現(xiàn)服務(wù)器將查詢服務(wù)512的引用(reference)傳送到新裝置,從而新裝置可以向查詢服務(wù)登記它的服務(wù),并變成Djinn的一個成員。登記以后,新裝置變成Djinn的一個成員,并且因此可以訪問查詢訪問512中所含有的所有服務(wù)。啟動和聯(lián)接的過程見美國專利申請“提供可下載碼用于與分布式系統(tǒng)中的裝置進行通信的裝置和方法”,該專利申請在此引述供參考。
Java空間522是一個由分布式系統(tǒng)400中的程序使用的對象資源庫。程序采用Java空間522連續(xù)對對象進行存儲,并使它們能夠訪問分布式系統(tǒng)400中其他的裝置。Java空間見美國專利申請08/971,529“采用多形態(tài)入口和入口匹配的數(shù)據(jù)庫系統(tǒng)”,該申請已轉(zhuǎn)讓給共同的受讓人,其申請日是1997年11月17日,在此引述供參考。本領(lǐng)域中的技術(shù)人員將會理解,典型的分布式系統(tǒng)400可以包含許多查詢服務(wù)、發(fā)現(xiàn)服務(wù)器和Java空間。
分布式處理系統(tǒng)中的數(shù)據(jù)流圖6是連接機器601和606如在一個或多個計算機上執(zhí)行的計算機或虛擬計算機或參照圖3、4和5描述的機器的面向?qū)ο蟮木W(wǎng)絡(luò)600的方框圖。網(wǎng)絡(luò)600發(fā)送代理,某些代理可以是智能代理。智能代理包括執(zhí)行與某一調(diào)用相關(guān)的處理的代碼。例如,智能代理可以執(zhí)行對只讀數(shù)據(jù)用于以后引用的高速緩沖操作。當調(diào)用該數(shù)據(jù)時,智能代理可以在本地得到該數(shù)據(jù),并將其提供給用戶,而無需作另外的數(shù)據(jù)調(diào)用,并且這對于用戶來說可以是透明的。一例這樣的只讀數(shù)據(jù)是特定的安裝時間。例如,安裝時間里第一次進行調(diào)用時,智能代理在本地對該值進行高速緩沖,并且當以后進行調(diào)用時安裝時間時,智能代理在本地檢索該值。
另一例智能代理處理包含采用串行化對象,將數(shù)據(jù)傳送到存儲信息的數(shù)據(jù)庫。本例中,調(diào)用智能代理,它接收一個對象、將客戶機器上的對象串行化成一個字節(jié)數(shù)組,并將這一字節(jié)數(shù)組發(fā)送到一服務(wù)器。服務(wù)器僅存儲串行化的對象,以避免請求下載代碼,并且它向客戶機提供一個用于該對象的密鑰。當客戶機等待檢索數(shù)據(jù)時,智能代理將該密鑰發(fā)送到服務(wù)器,根據(jù)串行化對象進行接收,重構(gòu)該對象,并將它提供給用戶。
采用智能代理的另一個例子是對調(diào)試進行處理、調(diào)用記錄,以及監(jiān)視系統(tǒng)的性能。另一例包含采用智能代理進行本地數(shù)據(jù)驗證,見轉(zhuǎn)讓給共同受讓人并且申請日相同的美國專利申請“對分布式系統(tǒng)中的信息進行動態(tài)驗證的裝置和方法”,在此引述供參考。執(zhí)行與調(diào)用有關(guān)的處理還可以有其他對智能代理的使用。
網(wǎng)絡(luò)600包括含有RMI602和相關(guān)代碼603的客戶機601。服務(wù)器606包括RMI607和遠程對象608。運行時,RMI602向RMI607發(fā)送一個調(diào)用或請求609,請求特定的存根對象。RMI607返回一個響應(yīng)610,包括智能代理604中嵌入的請求存根605。響應(yīng)可以作為數(shù)據(jù)流被傳送。Java程序語言中使用的數(shù)據(jù)流包括輸入和輸出數(shù)據(jù)流,在本領(lǐng)域中是人們知道的,其說明在此引述供參考,標題是“Java指導(dǎo)互聯(lián)網(wǎng)的面向?qū)ο蟮木幊獭保?pp 325-53,作者是Mary Campione和KathyWalrath,Addison-Wesley,1956)。
響應(yīng)可以包括信息,從而客戶機601可以重新構(gòu)造智能代理604中的存根對象。當一組對象類型被限定,并且在客戶機601和606上是相同的時候,接收機通常要求對象的狀態(tài)以及其類型的描述,這是因為對象的代碼已經(jīng)出現(xiàn)在所有的網(wǎng)絡(luò)機器上了。另外,機器606采用RMI607,以提供更大的靈活性,使得代碼能夠在必要時能夠與信息或?qū)ο蟮臓顟B(tài)和類型一起移動。另外,發(fā)送機可以在對象中包括一個所發(fā)送的對象的類型的標識,構(gòu)成該對象的狀態(tài)的數(shù)據(jù)以及以與對象相關(guān)的代碼的URL形式的可進入網(wǎng)絡(luò)的位置。URL在本領(lǐng)域中是人們知道的,其說明在此引述供參考,見Mary Campione和Kathy Walrath的“Java指導(dǎo)用于互聯(lián)網(wǎng)的面向?qū)ο蟮某绦颉?Addison-Weslsy,1996,第494-507頁)。
當客戶機601接收響應(yīng)610時,它識別傳送的對象的類型。機器601含有其自己的RMI602和代碼603用于對對象的處理,并且它可以用對象類型、狀態(tài)信息和對象的代碼產(chǎn)生存根對象605。如果用于該對象的代碼不在機器601上或不能在機器上提供并且存根對象不包含該代碼,則RMI602可以采用來自對象的URL,來確定代碼,并將該代碼的復(fù)制形式傳送到客戶機601。因為代碼是字節(jié)碼并且因此是可移植的,客戶機601可以將該代碼裝載到RMI602內(nèi),重構(gòu)對象。因此,客戶機601可以重構(gòu)合適類型的對象,即使這種對象以前并未出現(xiàn)在機器上。
當產(chǎn)生存根對象605時,RMI602不必知道該存根自己是一個智能代理604。智能代理604可以在響應(yīng)610前后,在客戶機601處進行處理,并且可以提供所有的處理,而不求助于代理所代表的對象的調(diào)用609。所以,智能代理604可以在客戶機601進行調(diào)用或請求611以調(diào)用智能代理604時在本地進行所有的處理。這些代理可以用相同的方法進行下載,見美國專利申請08/950,756,其申請日是1997年10月15日,標題是“分布式系統(tǒng)中對象的延遲重構(gòu)和遠程裝載”,在此引述供參考。
智能代理的傳送圖7是過程700的流程圖,用來在圖6所示的分布式網(wǎng)絡(luò)中進行下載和使用智能代理??蛻魴C發(fā)送一調(diào)用和對特定對象的請求(步驟701),而服務(wù)器接收調(diào)用(步驟702)。因此,服務(wù)器返回具有嵌入的存根的智能代理(步驟703),而該代理用作被請求的對象的表述。在接收到智能代理以后,客戶機對其調(diào)用一種方法(步驟704)。按照智能代理內(nèi)的代碼,含有智能代理的客戶機判斷是否需要進行處理(步驟705)。如果需要,則客戶機用智能代理在本地進行處理(步驟706)。
隨后,客戶機判斷對智能代理調(diào)用的方法是否可以在本地被服務(wù)(步驟707)。如果是,則客戶機對調(diào)用進行本地處理(步驟711)。如果不是,客戶機調(diào)用遠程對象(步驟708)。執(zhí)行遠程處理(步驟709),并且將遠程處理的結(jié)果返回到客戶機(步驟710)。
客戶機按照智能代理中的代碼判斷是否需要作為調(diào)用結(jié)果的后處理(步驟712)。如果是,則用智能代理中的代碼進行后處理(步驟713)。隨后,智能代理根據(jù)步驟704中對智能代理的調(diào)用,返回方法調(diào)用結(jié)果(步驟714)。
圖8是改變智能代理所執(zhí)行的處理的處理進程800的流程圖。當調(diào)用處理(步驟801)時,客戶機判斷是否需要更新處理(步驟802)。這些信息可以包含在智能代理自身內(nèi),使得可以判斷何時或在什么特定的情況下需要被更新的處理碼。如果需要進行更新處理,則下載用于該處理的代碼,并在客戶機處理更新智能代理,進行處理(步驟803)。隨后,在客戶機處,智能代理按照更新碼進行處理(步驟804)。
執(zhí)行如圖7和8所示步驟的機器可以包括一個執(zhí)行如圖3、4、5和6所示功能的計算機處理器。它們可以包括模塊或程序,這些模塊和程序使處理器執(zhí)行上述功能。它們還包括存儲器中所存儲的計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括計算機可讀介質(zhì)或具有嵌入在其中的計算機可讀碼的媒體,使得機器能夠執(zhí)行上述功能。計算機可讀介質(zhì)可以包括嵌入在載波中并代表指令序列的計算機數(shù)據(jù)信號,指令序列在由計算機執(zhí)行時,使處理器能夠通過執(zhí)行本說明書中描述的方法嚴密地對處于絕對地址處的外圍設(shè)備進行尋址。該介質(zhì)還可以包括一種數(shù)據(jù)結(jié)構(gòu),用來執(zhí)行本說明書中描述的方法。
盡管上文中參照執(zhí)行JVM技術(shù)規(guī)范的Java程序語言的計算機系統(tǒng)描述了按照本發(fā)明的系統(tǒng)實施例,但本發(fā)明同樣可以適用于處理由不同程序語言得到的代碼的其他計算機系統(tǒng)。具體地說,本發(fā)明可以用面向?qū)ο蟮暮筒幻嫦驅(qū)ο蟮某绦蛳到y(tǒng)來實施。另外,盡管所描述的按照本發(fā)明的實施例是在Java程序環(huán)境中工作的,但本領(lǐng)域中的技術(shù)人員將會理解,本發(fā)明也可以適合于其他的程序環(huán)境。
盡管本發(fā)明的描述是針對典型實施例的,但本領(lǐng)域中的技術(shù)人員應(yīng)當理解,本申請也可以有各種變更形式。例如,在不偏離本發(fā)明的范圍的情況下,可以采用不同的標記或定義用于智能代理。本發(fā)明的范圍僅由權(quán)利要求書所限定。
權(quán)利要求
1.一種接收由多個機器組成的分布式系統(tǒng)中的對象的方法,其特征在于,它包含發(fā)送對特定對象的請求;以及接收對所述請求的響應(yīng),所述響應(yīng)包括用來構(gòu)造所述請求對象的表述的代碼,所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對于請求對象是本地的所述特定對象的調(diào)用。
2.如權(quán)利要求1所述的方法,其特征在于,它還包括采用所述代碼來構(gòu)造所述表述。
3.如權(quán)利要求2所述的方法,其特征在于,所述采用包括下載代碼以更新所述處理。
4.一種發(fā)送由多個機器組成的分布式系統(tǒng)中的對象的方法,其特征在于,它包含在一機器處接收對特定對象的請求;以及發(fā)送對所述請求的響應(yīng),所述響應(yīng)包括用來構(gòu)造所述對象的表述的第一代碼,并且包括用于處理的第二代碼的指示(indication),從而所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
5.一種接收由多個機器組成的分布式系統(tǒng)中的對象的裝置,其特征在于,它包含配置用以發(fā)送對特定對象的請求的模塊;以及配置用以接收對所述請求的響應(yīng)的模塊,所述響應(yīng)包括用來構(gòu)造所述請求的對象的表述的代碼,所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
6.如權(quán)利要求5所述的裝置,其特征在于,它還包括配置用以采用所述代碼來構(gòu)造所述表述的模塊。
7.如權(quán)利要求6所述的裝置,其特征在于,采用模塊包括配置用以下載代碼而更新所述處理的模塊。
8.一種發(fā)送由多個機器組成的分布式系統(tǒng)中的對象的裝置,其特征在于,它包含在一機器處接收對特定對象的請求的模塊;以及配置用以發(fā)送對所述請求的響應(yīng)的模塊,所述響應(yīng)包括用以構(gòu)造所述對象的表述的第一代碼,并且包括用于處理的第二代碼的指示,從而所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
9.一種發(fā)送由多個機器組成的分布式系統(tǒng)中的對象的系統(tǒng),其特征在于,它包含第一機器;第二機器;將所述第一機器與所述第二機器相連的網(wǎng)絡(luò);以及接收對象的裝置,所述裝置包括配置用以發(fā)送對特定對象的請求的模塊;以及配置接收對所述請求的響應(yīng)的模塊,所述響應(yīng)包括用來構(gòu)造所述請求的對象的表述的代碼,所述構(gòu)造用所述表述產(chǎn)生一個對象,來處理對本地于請求對象的所述特定對象的調(diào)用。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,它還包括配置用以采用所述代碼來構(gòu)造所述表述的模塊。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述使用模塊包括配置用以下載代碼以更新所述處理的模塊。
12.一種發(fā)送由多個機器組成的分布式系統(tǒng)中的對象的系統(tǒng),其特征在于,它包含第一機器;第二機器;將所述第一機器與所述第二機器相連的網(wǎng)絡(luò);以及發(fā)送對象的裝置,所述裝置包括配置用以接收對特定對象的請求的模塊;以及配置發(fā)送對所述請求的響應(yīng)的模塊,所述響應(yīng)包括用來構(gòu)造所述對象的表述的第一代碼,并且包括一個用于處理的第二代碼的指示,從而所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
13.一種計算機程序產(chǎn)品,它包含計算機可讀介質(zhì),它含有控制計算機系統(tǒng)執(zhí)行一種方法的指令,所述方法包括發(fā)送對一特定對象的請求;以及接收對所述請求的響應(yīng),所述響應(yīng)包括用來構(gòu)造所述請求的對象的表述的代碼,所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
14.如權(quán)利要求13所述的計算機程序產(chǎn)品,其特征在于,它還包括使用所述代碼來構(gòu)造所述表述。
15.如權(quán)利要求14所述的計算機程序產(chǎn)品,其特征在于,所述使用包括下載代碼,以更新所述處理。
16.一種計算機程序產(chǎn)品,其特征在于,它包含計算機可讀介質(zhì),它含有控制計算機系統(tǒng)執(zhí)行一種方法的指令,所述方法包括在一機器處接收對一特定對象的請求;以及發(fā)送對所述請求的響應(yīng),所述響應(yīng)包括用來構(gòu)造所述對象的表述的第一代碼,并包括用于處理的第二代碼的指示,從而所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
17.一種制造產(chǎn)品,它指定計算機可讀存儲介質(zhì)中存儲的表述,并能夠在分布式系統(tǒng)的機器之間進行電子傳輸,其特征在于,所述制造產(chǎn)品包含根據(jù)一請求,從第一機器傳送到第二機器的對象,所述對象包括用來構(gòu)造所述請求的對象的表述的代碼的指示,所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
18.一種接收由多個機器組成的分布式系統(tǒng)中的對象的裝置,其特征在于,它包含發(fā)送對特定對象的請求的裝置;以及接收對所述請求的響應(yīng)的裝置,所述請求包括用來構(gòu)造所述請求的對象的表述的代碼,所述構(gòu)造用所述表述產(chǎn)生一個對象,用來處理對本地于請求對象的所述特定對象的調(diào)用。
全文摘要
采用智能代理,用作分布式系統(tǒng)中存根周圍的卷繞符(wrapper)。調(diào)用方不是接收存根作為遠程過程調(diào)用的結(jié)果,而是接收包括作為嵌入對象的存根的智能代理。智能代理執(zhí)行與遠程調(diào)用相關(guān)的預(yù)定處理,該處理可能出現(xiàn)在對調(diào)用的響應(yīng)之前、之間或之后。
文檔編號G06F15/16GK1298508SQ99805383
公開日2001年6月6日 申請日期1999年2月16日 優(yōu)先權(quán)日1998年2月26日
發(fā)明者K·C·R·C·阿諾德, J·H·瓦爾多, R·謝夫勒, A·M·沃爾蕾斯 申請人:太陽微系統(tǒng)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
剑河县| 肇庆市| 林甸县| 南和县| 潜江市| 罗定市| 绥宁县| 岳普湖县| 大名县| 英山县| 田阳县| 临高县| 凤阳县| 吉木乃县| 佳木斯市| 新疆| 望江县| 化隆| 南靖县| 阜南县| 东兰县| 庐江县| 常熟市| 锡林浩特市| 田林县| 临安市| 翼城县| 东阳市| 福泉市| 永年县| 麦盖提县| 宾川县| 剑川县| 濉溪县| 耒阳市| 中方县| 西峡县| 庆元县| 莲花县| 万州区| 当涂县|