跳轉到內容

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

來自 Wikibooks,開放世界中的開放書籍

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 的強引用(如果要進行取消匯出)以及對 Remote 物件的強引用(如果稍後要被其他遠端客戶端重用)。

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

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


Jini 和網路計算

華夏公益教科書