跳轉到內容

Jini 和網路計算/使用 Jini 匯出器

來自華夏公益教科書,開放的書籍,開放的世界
(從 Jini 和網路計算:使用 Jini 匯出器 重定向)

net.jini.export 包在 Jini 2.0 及更高版本中提供了一個強大功能。該包的基礎是 net.jini.export.Exporter 介面。該介面的例項提供了匯出和取消匯出單個用於遠端訪問的物件的能力。

方法簽名Javadoc 摘要
public java.rmi.Remote export( java.rmi.Remote impl ); 匯出指定的遠端物件並返回一個代理,該代理可用於在匯出的遠端物件上呼叫遠端方法。
public boolean unexport(boolean force);
Unexports the remote object that was exported by this Exporter
such that it will no longer receive remote method invocations 
that were made possible as a result of exporting it with this Exporter.

通常,使用 net.jini.config.Configuration 實現(在服務啟動時建立)來獲取 Exporter 的例項。有關如何獲取 Configuration 例項的更多資訊,請參閱有關 使用配置檔案 的部分。

使用 Exporter 有很多種場景。你的具體情況將在很大程度上決定單個匯出的物件是否可以被所有外部引用使用,或者你是否需要對同一個物件進行多次匯出。如上所述,每次匯出都需要一個單獨的 Exporter,並且對於任何匯出的 Remote 物件,你需要保留對 Exporter 的強引用(如果要取消匯出)以及對遠端物件的強引用(如果它將在以後被其他遠端客戶端重用)。

分散式垃圾收集 (DGC) 使你能夠匯出對本地物件的遠端引用,將引用傳送回遠端客戶端,然後在遠端客戶端完成對遠端物件的訪問或由於網路分割槽或其他故障導致它無法更新其租約(從而無法維護對該物件的引用)時,取消匯出遠端物件並回收它。

某些型別的應用程式對所有客戶端使用單個遠端物件。其他型別的應用程式實際上會為每個遠端客戶端匯出一個用於遠端使用的單個物件引用。在前一種情況下,不需要 DGC,並且可能會導致問題,因為它試圖管理租約。在後一種情況下,需要使用 DGC 或其他基於租約的生命週期管理型別。


Jini 和網路計算

華夏公益教科書