亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rmi

?? 一個rmi例子程序
??
字號:
遠程對象激活 
---------------------------------------------------------------------- 
---------- 

第 7 章 

主題: 
概述 
激活協(xié)議 
“可激活”遠程對象的實現(xiàn)模型 
激活接口 

.1 概述 
分布式對象系統(tǒng)被設(shè)計為支持長期存在的持久對象。假設(shè)這些系統(tǒng)將由成千(也 
許成萬)個這樣的對象組成,則對象的實現(xiàn)在無限期的時間段內(nèi)被激活并保持活 
動狀態(tài)是不合理的。這將占用寶貴的系統(tǒng)資源。另外,客戶機需要保存對對象的 
持久引用的能力,這樣在一個系統(tǒng)崩潰后可以重新建立對象之間的通訊,因為通 
常對一個分布對象的引用只有當對象處于活動狀態(tài)時才有效。 

對象激活是一種用來提供對對象持久引用和管理對象實現(xiàn)的執(zhí)行的機制。在 RMI 
中,激活允許對象根據(jù)需要開始執(zhí)行。當訪問(通過方法調(diào)用)“可激活”遠程 
對象時,如果該遠程對象當前尚未執(zhí)行,則系統(tǒng)將在適當?shù)?Java 虛擬機中開始 
該對象的執(zhí)行。 

7.1.1 術(shù)語 
活動 (active) 對象是在某些系統(tǒng)的 Java 虛擬機中被實例化并被導出的遠程對 
象。非活動對象在虛擬機中尚未被實例化(或?qū)С觯茏兂苫顒訝顟B(tài)的遠程 
對象。激活就是將非活動對象轉(zhuǎn)化為活動對象的過程。激活要求對象與一臺虛擬 
機相關(guān)聯(lián),而這將可能需要將該對象的類加載到虛擬機中,同時該對象也恢復其 
持久狀態(tài)(如果有)。 

在 RMI 系統(tǒng)中,我們使用了惰性激活。惰性激活就是將一個對象的激活延遲到客 
戶機第一次使用該對象時(即第一次方法調(diào)用時)。 

7.1.2 惰性激活 
遠程對象的惰性激活是用不完善遠程引用(有時稱為不完善塊)實現(xiàn)的。對遠程 
對象的不完善遠程引用在第一次調(diào)用對象的方法時,“完善”為活動對象的引用 
。每個不完善引用均保持一個持久句柄(激活標識符)和對目標遠程對象的瞬態(tài) 
遠程引用。遠程對象的激活標識符包含足夠的信息來使第三方激活該對象。瞬態(tài) 
引用是對可用來聯(lián)系執(zhí)行對象的主動遠程對象的“活動”引用。 

在不完善引用中,如果對遠程對象的活引用為空,則不認為目標對象是主動的。 
在方法調(diào)用中,不完善引用(對該對象)將加入激活協(xié)議以獲得“活”引用,該 
引用是對新激活的對象的遠程引用(例如單路傳送 (unicast) 的遠程引用)。一 
旦不完善引用得到活引用,則不完善引用將把方法調(diào)用傳給底層的遠程引用,而 
該遠程引用又將方法調(diào)用傳給遠程對象。 

具體的說,遠程對象的 stub 包含一個“不完善”遠程引用類型,該類型既包括: 

遠程對象的激活標識符,又包括 
“活”引用(可能為空),其中包含遠程對象的“活動”遠程引用類型(例如, 
帶有單路傳送語義的遠程引用類型)。 

---------------------------------------------------------------------- 
---------- 

注意 - RMI 系統(tǒng)對遠程調(diào)用保留“至多一次”語義。換句話說,對可激活或單路 
傳送遠程對象的調(diào)用將至多發(fā)送一次。因此,如果對遠程對象的調(diào)用失敗(由拋 
出的 RemoteException 異常表示),則客戶機將得到如下保證:遠程方法的執(zhí)行 
不會超過一次,甚至根本就不執(zhí)行。 

7.2 激活協(xié)議 
在遠程方法調(diào)用期間,如果目標對象的“活”(live) 引用是未知的,則不完善引 
用將使用激活協(xié)議。激活協(xié)議包括下列幾個實體:不完善引用、激活器、Java 虛 
擬機中的激活組和被激活的遠程對象。 

激活器(通常每個主機有一個)是一個實體,負責激活,它是: 

將激活標識符映射到激活對象所需信息(對象的類、位置 -- URL 路徑 -- 從該 
處可加載類、對象可能需要用于自舉 (bootstrap) 的特定數(shù)據(jù)等)的信息數(shù)據(jù)庫,及 
Java 虛擬機的管理器,它啟動虛擬機(必要時)并將對象激活請求(和必要的信 
息一起)傳送到遠程虛擬機中正確的激活組。 
注意:激活器始終將激活標識符到活動對象的當前映射保存在緩存中,這樣就無 
需為每個激活請求而查詢該組。 

激活組(每個 Java 虛擬機中一個)是這樣的實體,它接收對激活 Java 虛擬機 
中對象的請求并將激活的對象返給激活器。 

激活協(xié)議如下所示。不完善引用使用一個激活標識符并調(diào)用激活器(內(nèi)部 RMI 接 
口)來激活與該標識符關(guān)聯(lián)的對象。激活器查找對象的激活描述符(先前已注冊 
)。對象的描述符包括: 

對象的組標識符(指定對象激活時所處的虛擬機), 
對象的類名, 
URL 路徑,從該處加載對象的類代碼, 
特定于對象的已編組的初始化數(shù)據(jù)(例如,初始化數(shù)據(jù)可能是包含對象持久狀態(tài) 
的文件的名稱)。 
如果應(yīng)容納該對象的激活組存在,則激活器將激活請求傳送到該組。如果激活組 
不存在,則激活器將啟動虛擬機以執(zhí)行激活組,然后將激活請求傳送到該組。 

激活組將加載對象的類并用特定的構(gòu)造函數(shù)來實例化該對象。此構(gòu)造函數(shù)帶多個 
參數(shù),包括先前注冊的激活描述符。 

對象完成激活時,激活組將把已編組對象引用傳回激活器,然后該激活器記錄激 
活標識符和激活引用對,并將活動(活)引用返給不完善引用。隨后,不完善引 
用(在 stub 內(nèi))通過活動引用將方法調(diào)用直接傳給遠程對象。 


---------------------------------------------------------------------- 
---------- 
注意 - 在 JDK 中,RMI 提供激活系統(tǒng)接口的實現(xiàn)。要使用激活,必須首先運行 
激活系統(tǒng)守護進程 (daemon) rmid。 

7.3 “可激活”遠程對象的實現(xiàn)模型 
為了使可通過激活標識符訪問的遠程對象不受時間影響,開發(fā)人員必須做到: 

為該遠程對象注冊一個激活描述符 
在對象的類中包含一個專用構(gòu)造函數(shù),當 RMI 系統(tǒng)激活可激活對象時將調(diào)用它。 

可用以下幾種方法來注冊激活描述符 (ActivationDesc): 

調(diào)用類 Activatable 的靜態(tài) register 方法 
用 Activatable 類的第一個或第二個構(gòu)造函數(shù)創(chuàng)建“可激活”對象 
顯式地導出“可激活”對象。該過程可用 Activatable 的第一個或第二個 expo 
rtObject 方法實現(xiàn),其參數(shù)為 ActivationDesc、Remote 對象的實現(xiàn)和端口號。 

對于特定對象,只可用上述三種方法之一來注冊激活對象。有關(guān)如何實現(xiàn)可激活 
對象的示例,請參閱后面的“構(gòu)造可激活遠程對象”。 

7.3.1 ActivationDesc 類 
ActivationDesc 含有激活對象所需的信息。它包含對象的激活組標識符、對象的 
類名、加載對象代碼的 codebase 路徑(或 URL)及 MarshalledObject(可包含 
每次激活期間所用的對象特定初始化數(shù)據(jù))。 

激活過程中將查詢在激活系統(tǒng)中注冊的描述符以獲取有關(guān)的信息,從而用于重新 
創(chuàng)建或激活對象。對象的描述符中的 MarshalledObject 將作為第二個參數(shù)傳給 
遠程對象的構(gòu)造函數(shù),以供激活過程使用。 

package java.rmi.activation; 

public final class ActivationDesc implements java.io.Serializable 
{ 
public ActivationDesc(String className, String codebase, 
java.rmi.MarshalledObject data) 
throws ActivationException; 
public ActivationDesc(String className, String codebase, 
java.rmi.MarshalledObject data, 
boolean restart) 
throws ActivationException; 
public ActivationDesc(ActivationGroupID groupID, 
String className, 
String codebase, 
java.rmi.MarshalledObject data, 
boolean restart); 
public ActivationDesc(ActivationGroupID groupID, 
String className, 
String codebase, 
java.rmi.MarshalledObject data); 
public ActivationGroupID getGroupID(); 
public String getClassName(); 
public String getLocation(); 
public java.rmi.MarshalledObject getData() 
public boolean getRestartMode(); 
} 

ActivationDesc 的第一個構(gòu)造函數(shù)構(gòu)造一個對象的對象描述符,這個對象的類是 
className(可從 codebase 路徑加載),它的初始化信息(已編組形式)為 d 
ata。如果使用這種形式的構(gòu)造函數(shù),則對象的組標識符缺省為該虛擬機 Activa 
tionGroup 的當前標識符。具有相同 ActivationGroupID 的所有對象都將在同一 
虛擬機中被激活。如果當前組是非活動的或無法創(chuàng)建缺省組,則將拋出 Activat 
ionException。如果 groupID 為 null,則將拋出 IllegalArgumentException。 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产精品国产精品毛片| www.亚洲色图.com| 国产精品美女久久久久久久久久久| 久久你懂得1024| 欧洲av一区二区嗯嗯嗯啊| 国产一区 二区| 天天免费综合色| 亚洲天堂a在线| 国产日韩视频一区二区三区| 欧美性生交片4| 94-欧美-setu| 岛国一区二区在线观看| 激情六月婷婷久久| 日韩国产欧美在线观看| 亚洲免费观看高清完整版在线观看熊 | 亚洲黄色小视频| 久久久www免费人成精品| 这里只有精品免费| 欧美四级电影网| 91免费视频观看| 成人免费视频网站在线观看| 精品一区二区三区在线播放| 日韩黄色小视频| 亚洲一区二区欧美日韩| 亚洲另类在线一区| 中文字幕一区在线| 国产日韩欧美不卡| 精品99999| 精品国产乱子伦一区| 7777精品伊人久久久大香线蕉经典版下载| 免费成人在线播放| 首页亚洲欧美制服丝腿| 一区二区三区欧美日| 亚洲视频在线一区观看| **欧美大码日韩| 国产精品电影院| 综合激情成人伊人| 亚洲欧美另类久久久精品2019| 欧美男同性恋视频网站| 欧美日韩在线免费视频| 欧美午夜精品久久久| 在线影院国内精品| 色就色 综合激情| 欧美午夜精品理论片a级按摩| 韩国精品在线观看| 国产精品18久久久| 成人免费视频网站在线观看| 成人av电影免费观看| 99久久久国产精品免费蜜臀| 91亚洲午夜精品久久久久久| 色偷偷88欧美精品久久久| 99视频热这里只有精品免费| 91视频你懂的| 欧美日韩视频一区二区| 欧美一区在线视频| 久久婷婷综合激情| 国产精品久99| 一级精品视频在线观看宜春院| 日本一区二区视频在线| 国产精品蜜臀在线观看| 亚洲欧美日韩国产手机在线| 亚洲高清免费观看高清完整版在线观看| 国产欧美日韩卡一| 亚洲视频电影在线| 亚洲bt欧美bt精品| 久久99精品国产.久久久久久 | 久久影院午夜片一区| 久久精品水蜜桃av综合天堂| 亚洲国产成人午夜在线一区| 亚洲人成在线播放网站岛国| 视频在线在亚洲| 国产一区二区三区四区五区美女 | 亚洲精品ww久久久久久p站| 亚洲地区一二三色| 黄页网站大全一区二区| 成人av免费网站| 在线成人免费视频| 久久久不卡影院| 亚洲精品中文在线| 久久99国产精品免费| 日韩你懂的电影在线观看| 久久久久久久久一| 一区二区三区不卡视频| 国产在线不卡一区| 欧美日韩亚洲另类| 欧美激情在线看| 日韩激情视频在线观看| 成人免费看视频| 欧美日韩国产一二三| 国产精品丝袜黑色高跟| 日韩av电影天堂| 97国产一区二区| 26uuu亚洲综合色| 亚洲一区二区在线视频| 国产激情偷乱视频一区二区三区| 国产在线精品一区二区夜色| 91香蕉视频在线| 精品国产一区a| 亚洲成人中文在线| 97se亚洲国产综合自在线观| 精品美女一区二区| 午夜精品免费在线| 91免费视频观看| 欧美国产一区二区在线观看| 五月天激情综合| 91丨九色丨国产丨porny| 久久只精品国产| 免费看欧美女人艹b| 在线观看免费一区| 中文字幕一区视频| 国产成人福利片| 精品剧情在线观看| 日韩在线一二三区| 精品视频色一区| 亚洲精品自拍动漫在线| 99久久夜色精品国产网站| 久久婷婷国产综合国色天香| 免费看日韩精品| 91麻豆精品国产91久久久 | 亚洲精品一二三四区| 成人免费高清在线| 久久久www成人免费毛片麻豆| 国产精品国产精品国产专区不片 | 国产片一区二区三区| 免费看日韩a级影片| 欧美日韩精品三区| 亚洲国产精品人人做人人爽| 成人av集中营| 国产精品嫩草影院av蜜臀| 国产成人aaa| 日本一区二区三级电影在线观看| 亚洲精品福利视频网站| 一本到一区二区三区| 国产精品你懂的在线欣赏| 不卡电影免费在线播放一区| 欧美国产欧美亚州国产日韩mv天天看完整| 一区二区三区在线观看欧美| 99精品视频在线观看免费| 日韩码欧中文字| 91麻豆文化传媒在线观看| 亚洲日本va午夜在线电影| 99久久精品免费看国产| 亚洲免费av观看| 欧美影院一区二区三区| 午夜激情久久久| 欧美一级在线免费| 激情五月婷婷综合| 久久丝袜美腿综合| jlzzjlzz亚洲日本少妇| 中文字幕亚洲综合久久菠萝蜜| 蜜臀av性久久久久蜜臀aⅴ流畅| 成人网在线免费视频| 国产精品高清亚洲| 99v久久综合狠狠综合久久| 一区二区三区四区不卡视频| 91成人国产精品| 日韩成人午夜电影| 久久天堂av综合合色蜜桃网| 波多野结衣精品在线| 一区二区三区四区乱视频| 欧美久久久久中文字幕| 精品一区二区在线看| 国产精品久久久久婷婷| 欧美体内she精高潮| 捆绑变态av一区二区三区| 欧美韩国一区二区| 欧美亚洲尤物久久| 激情六月婷婷综合| 亚洲欧美在线高清| 欧美一区二区视频免费观看| 国产成人午夜精品5599| 亚洲影院理伦片| 精品国产一二三区| 91香蕉国产在线观看软件| 蜜桃av一区二区三区电影| 国产精品精品国产色婷婷| 3751色影院一区二区三区| 成人小视频免费在线观看| 亚洲成人av中文| 欧美高清在线视频| 884aa四虎影成人精品一区| 成人午夜电影久久影院| 日韩经典一区二区| 亚洲天堂免费看| 精品噜噜噜噜久久久久久久久试看| 日本少妇一区二区| 中文字幕在线观看一区二区| 日韩亚洲欧美高清| 91丨九色丨国产丨porny| 精品一二三四在线| 亚洲一二三区在线观看| 国产亚洲成年网址在线观看| 欧美日韩三级一区二区| 成人av资源站| 黄色资源网久久资源365| 亚洲国产精品久久一线不卡| 中文字幕乱码一区二区免费| 欧美刺激午夜性久久久久久久| 美女视频网站黄色亚洲| 一区二区三区在线免费视频|