跳轉至內容

JavaSpaces

0% developed
來自華夏公益教科書

導航 併發程式設計 主題:v  d  e )


在 J2EE 之後,Sun 對網路計算的下一步發展有了願景:在網路環境中,將會有許多獨立的服務和消費者。這就是 JavaSpaces。JavaSpaces 將允許這些服務/消費者以穩健的方式動態互動。它可以被視為一個物件儲存庫,為 Java 物件提供分散式持久物件交換機制(持久化可以位於記憶體或磁碟中)。它可以用來儲存系統狀態並實現分散式演算法。在 JavaSpace 中,所有通訊夥伴(對等體)透過共享狀態進行通訊。它是 元組空間 思想的實現。

當有人想要實現可擴充套件性和可用性,同時降低整個系統的複雜性時,就會使用 JavaSpaces。

程序執行簡單的操作來將新物件寫入 JavaSpace、從 JavaSpace 中獲取物件或從 JavaSpace 中讀取(複製)物件。

在傳統的應用程式中,物件在呈現給終端使用者之前是從資料庫中組裝的。在 JavaSpace 應用程式中,我們保留了現成的“終端使用者”物件,並將它們儲存在 JavaSpace 中。在 JavaSpace 應用程式中,服務彼此解耦;它們透過它們寫入 JavaSpace 以及從 JavaSpace 讀取/獲取的物件進行通訊。服務使用模板物件來搜尋它們想要從空間中獲取或讀取的物件。

JavaSpaces 技術是 Java Jini 技術的一部分。JINI 的基本功能是

  • 無需使用者干預即可將服務上線或下線。(與 EJB 形成對比,在 EJB 中,客戶端程式必須知道 EJB 部署的伺服器和埠號。在 JINI 中,客戶端應該找到,在網路中發現服務。)
  • 自愈透過在服務(服務消費者)來來去去時進行適應。服務需要定期續租來表明它們仍然可用。
  • JINI 服務的消費者不需要事先了解服務的實現。實現是動態下載並執行在消費者 JVM 上,無需配置和使用者干預。例如,終端使用者可能會看到略微不同的使用者介面,具體取決於當時使用的是哪項服務。這些使用者介面程式碼的實現將由正在使用的服務提供。
事實上,實現執行在消費者/客戶端的 JVM 上,可以透過消除遠端呼叫的需要來提高效能。

一個最小的 JINI 網路環境包括

  • 一個或多個 服務
  • 一個查詢服務,儲存已註冊服務的列表
  • 一個或多個 消費者

JINI 查詢服務

[編輯 | 編輯原始碼]

查詢服務在 :Jini 查詢服務規範 (reggie) 中有描述。此服務介面定義了可以在查詢服務上執行的所有操作。客戶端透過向實現特定介面的查詢伺服器傳送請求來查詢服務。客戶端向查詢伺服器請求所有實現特定服務介面的服務。查詢服務返回所有已註冊服務的服務物件,這些服務實現了給定的介面。客戶端可以呼叫該物件上的方法,以直接與伺服器互動。

查詢發現

[編輯 | 編輯原始碼]

Jini 發現和加入規範描述了客戶端如何找到 jini 查詢服務。有一個協議可以做到這一點,jini 帶有一組實現該協議的 API。Jini 發現實用程式規範定義了一組用於處理該協議的實用程式類。

當服務向查詢服務註冊時,它會從查詢服務獲得租約,如Jini 分散式租賃規範中所述。

條目和模板

[編輯 | 編輯原始碼]
Clipboard

待辦事項
完成本節。


分散式事件

[編輯 | 編輯原始碼]
Clipboard

待辦事項
完成本節。



Clipboard

待辦事項
新增一些類似於變數中的練習。


華夏公益教科書