Jini與藍牙技術是兩種互補性很強的技術。藍牙技術主要實現鄰近的電子設備無線連接,是硬件設備的無線互連協議;Jini則是實現分布式軟件服務(包括無線設備)的軟件技術。藍牙技術是對固定的一組協議間互操作的靜態(tài)說明;而Jini的“移動代碼”代理服務對象可以動態(tài)地互操作。兩者在ISO/OSI的體系結構中的位置如圖2的慰。Jini主要位于表示層和會話層,而藍牙的協議棧貫空了整個體系結構。Jini的發(fā)現協議和分布式安全模型加強了藍牙技術的發(fā)展進程和完全管理模塊。
3.2 應用方案
Jini的注冊和注銷服務與藍牙設備在網絡中的加入和退出非常類似。Jini控制網絡服務的租借,始終使查找服務保持最新狀態(tài)。在下一節(jié)中將詳細描述應用實例,本節(jié)進行方案設計。
通常有三種形式來實現其Jini網絡功能:基于完整虛機的設備實現,基于嵌入式虛機的設備實現和基于共享虛機的設備實現。
基于完整虛機設備實現中的設備指一般的通用設備,具有網絡連接、較強的計算存儲功能,能夠運行完整的Java虛機環(huán)境。在這種設備上能夠實現Jini系統(tǒng)的所有功能,如各種協議功能、RMI、租借更新功能、動態(tài)代碼移動功能、分布式安全機制等。Jini是位于操作系統(tǒng)和虛擬機之上的功能層,多個設備隨機聯網形成一分布式資源共享系統(tǒng),網絡傳輸協議一般由操作系統(tǒng)分別采用TCP/IP協議有線方式和基于藍牙協議的無線連接方式兩種。本設計方案就是基于協議的無線連接方式實現。圖3描述了一種應用方案。服務客戶、設備和網絡代理通過藍牙網絡進行連接,同時也支持TCP/IP協議。網絡中包含可以訪問的設備數據庫、查找服務。藍牙網絡通過SDP協議負責設備加入網絡,使設備能夠查詢、發(fā)現最鄰近的設備,并對這些設備進行訪問,從而實現遠程控制。遠程控制實現藍牙網絡與Jini的查找服務對話、詢問網絡可用設備的功能。查找服務保持網絡中運行的所有設備的動態(tài)列表,如:PDA、電話和CD播放機等。當服務客戶(遠程控制)請求時,所有這些設備將相關的驅動程序發(fā)送到服務客戶。當設備不再用時,通過租借終止對網絡發(fā)出警告,這是Jini的功能,主要用Java的RMI來實現。這種通信和保持服務更新的方式使Jini與藍牙網絡進行了很好的結合。
4 應用實例
基于Jini與藍牙開發(fā)了一個無線網絡點歌器JBMP3。它具有以下功能:播放客戶選取歌典、客戶端圖形界面、個性化定制客戶播放列表。系統(tǒng)結構如圖4所示。它由一個能播放音樂文件(mp3文件)的服務端程序、若干能控制服務程序的客戶端程序(遠程控制)和一個能支持Jini服務的查找服務組成。運行的網絡是TCP/IP網絡。
對應用結合附圖作如下詳細說明:
(1)點歌器發(fā)布一個服務自己擁有的代理對象。例如,能夠按先進先出順序播放音樂文件。
(2)客戶端程序——通用遠程控制,詢問查找服務網絡能提供什么服務。
(3)查找服務通過與請求相匹配的代理對象副本答復客戶端的詢問。
(4)客戶端所有的請求都被送到同樣的服務器(點歌服務器)。請求通過Jini網絡5到達點歌服務器,服務器通過各自的鏈接
(5)更新與之相連的代理對象。同時點歌器的更新以一致的形式顯示出來。
設計主要分為三部分:遠程控制接口設計、客戶端設計、服務器設計。
4.1 遠程控制接口產生的代碼
import net.jini.core .lease.*;
public interface RemoteControl {
public String getName ();
public java.awt .Component.getDisplay();
public Lease lease (long time)
throws
java.rmi.RemoteException,
LeaseDeniedException,
UnknownLeaseException;
}
getName():通用遠程控制需要知道服務的名稱以便能在圖形界面上顯示服務的正確名稱。
getDisplay():通用遠程控制需要一個圖形界面來控制已經發(fā)現的不同服務。
lease(long time):通用遠程控制需要知道在多長的時間內被允許使用某一服務(租借時間)。
4.2 客戶機設計
客戶機該僅需作有限的操作,而讓服務器作大部分的工作。因為使用很少資源的客戶機在慢速處理器和小存儲器的設備上運行只適合象PDA一類手持設備或蜂窩電話,因此在這里客戶機必需支持一些操作。它們是:
(1)發(fā)現已經在網絡上注冊的服務的能力。例如,詢問查找服務器可用的服務。
(2)當一個服務在網絡上可行時被告知的能力。例如,發(fā)出需求后從查找服務接收代理對象。
(3)租借任意一段時間(非無限長)服務器資源的能力。這由客戶機的租借管理器完成。
(4)接收代理對象,而后經接口向客戶機顯示的能力。本文是在通用遠程控制中的Java面板上實現的。
客戶機接口應該能顯示網絡提供的不同服務。當前播放列表中的歌曲隊列應在顯示器上自動更新。
4.3 服務器設計
因為客戶機功能不強,一些附加的功能就必需在服務器上添加。因此服務器至少必需支持以下操作:
(1)提供一個服務。如代理對象。
(2)發(fā)現查找服務和在網絡上公布代理對象。
(3)寫服務身份(對每一個代理獨一無二)對象到文件。
(4)更新租借。
(5)斷開租借已經到期的客戶機聯接。
上機幾點是應用的核心。這幾點組成了用于構建Jini應用的基本通信特征。服務器應該加載目錄和發(fā)現所有的mp3文件。服務器是物理點歌器,它應具有某種硬件用來播放mp3音頻文件。
Jini和藍牙技術的結合應用在通信環(huán)境中有以下優(yōu)點:首先,不需要網絡連接線;其次,不需要安裝設備驅動程序,再次,一個設備遠程控制另一個設備。這些特點使得網絡更容易連接和管理。雖然藍牙技術開和生產的代價較高,Jini是SUN公司的免費產品,很容易掌握應用編程接口,并可進行分布式計算。隨著藍牙技術和Jini技術規(guī)范的布、不斷推廣與相互結合,生活中各種電路的互連將變得愈來愈方便,Jini的即插即用功能和藍牙的無線連網使得設備的增減變得非常簡單,使網絡的建設可以分階段逐步完善而不必一次到位,滿足了一般用戶的需求。Jini技術和藍牙的結合,必將進一步推動信息無線網絡的快速發(fā)展,成為信息網絡又一重要應用領域,將極大地改變人們的生活方式,促進普適計算時代的到來。
評論