新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > Jini與藍牙技術的結合應用

Jini與藍牙技術的結合應用

作者:戴果 熊偉 時間:2008-09-12 來源:電子技術應用 收藏

摘 要:分析了技術的基本結構及工作原理,對這兩種技術進行了比較,并提出將兩者結合應用的實現(xiàn)方案,最后給出了一個應用實例。

本文引用地址:http://butianyuan.cn/article/88002.htm

關鍵詞: 技術

   隨著系統(tǒng)在各種電子設備中的廣泛應用,計算機技術的發(fā)展將進入一個(Pervasive Computing)階段。隨之而來的各種電子設備聯(lián)網(wǎng)成為必然趨勢。與人類生活息息相關的各種家電設備能夠聯(lián)成網(wǎng)絡并接入互聯(lián)網(wǎng),人們可以在任何時間、任何地點統(tǒng)一控制各種家電協(xié)同工作,將極大地改變和影響人們的生活。本文探討了這種機制的實現(xiàn)。

1 技術

  Jini技術是基于Java語言的新型分布式對等計算結構,是一種動態(tài)的自動化機制,它可以使各種數(shù)字設備無需配置、安裝或人工干預,在一個臨時的設備集合(聯(lián)邦,federation)中共同工作。聯(lián)邦中的任何設備無論大小都可以自行管理,組成一個服務網(wǎng)絡,聯(lián)邦中的每一成員都可以共享資源和服務。Jini結構提供一套機制使得電子設備和應用程序能夠隨時加入或退出聯(lián)邦。

  Jini由三部分組成:基礎結構(Infrastructure)、編程模型和服務。這三部分雖有區(qū)別但又密不可分,基礎結構支持并利用編程模型;服務內(nèi)嵌于基礎結構之中,服務對象包含并利用編程模型的接口進行服務之間的通信?;A結構解決設備和軟件如何與網(wǎng)絡連接并進行注冊等基本問題。它由構成分布式聯(lián)邦的組件組成,其最小內(nèi)核為分布式安全系統(tǒng)、發(fā)現(xiàn)與加入?yún)f(xié)議(discovery and join)、服務協(xié)議和查找服務(lookup service)。分布式安全模型及其實現(xiàn)定義了軟件實體的認證方式及操作權限;發(fā)現(xiàn)與加入?yún)f(xié)議定義了服務加入Jini系統(tǒng)的方法;查找服務則是供服務注冊登記的場所,這里提供了可以使用的服務對象集合。編程模型也是分布式的,包括租借(leasing)、分布式的事務處理和事件處理三種重要接口。租借接口定義了基于時間的資源分配和釋放方法;事務接口引入了一種面向?qū)ο蟮膮f(xié)議,使用表決和提交兩個階段來統(tǒng)一對象之間的相關行為,使得一個事件序列或全部完成或全都不發(fā)生。事件和通知接口將JavaBean組建所使用的事件模型擴展為分布式事件模型,支持Jini服務基于事件的通信。服務是Jini體系的核心,基礎結構和編程模型共同支持服務的提交注冊及服務的發(fā)現(xiàn),服務使用基礎結構完成服務之間的相互調(diào)用、相互發(fā)現(xiàn)并向其他服務發(fā)布本服務的出現(xiàn)。服務在Jini環(huán)境中以對象的形式出現(xiàn),它通過接口來定義其提供的可供其他服務使用的操作和特性。

  Jini使用發(fā)現(xiàn)協(xié)議(discovery)搜索查找服務(lookup service),獲得相應查找服務的代理接口,然后使用加入?yún)f(xié)議(join)將自己注冊到查找服務中,這時該服務可以為其他服務所使用。想要使用其它服務的設備或應用程序,首先與其相鄰的查找服務進行連接。這時可以看到本聯(lián)邦內(nèi)所有可用的服務,使用查找協(xié)議(lookup)將所感興趣的服務的代理接口下載到本地之后就可以與服務提供者進行直接交互通信。同樣當一個查找服務啟動時,它也使用發(fā)現(xiàn)協(xié)議向服務廣播自己的出現(xiàn),以便服務進行注冊登記。

  圖1對以上過程進行了形象描述:用發(fā)現(xiàn)協(xié)議搜索到查找服務,若已預置某個查找服務的URL則可直接進行通信;將服務代理對象注冊到查找服務;服務客戶將服務對象從查找服務處下載到本地;利用服務對象與服務提供者直接通信,使用該項服務。

 

2 協(xié)議

  藍牙是一種低成本的技術,可以在依賴電池操作的目標機上實現(xiàn)低功耗、短距離的固定通信。這些目標機包括:PDA、無線電話、便攜電腦和無線耳機等。

  在藍牙的拓撲中,一個主設備可以帶多個從設備,并且維持7條鏈接。一般來說,在任何時刻,主設備會與一個從設備維持點對點通信。可以建立兩種通信:一種以異步方式傳輸數(shù)據(jù),另一種以同步方式傳輸聲音。通信類型由主設備決定,并負責建立特殊應用所需的鏈接,直至應用將其終止。請注意:主從關系不能互換,互換技術用于GSM的蜂窩式手機中,藍牙不支持這種技術。同時,藍牙只能支持短距離通信,最遠10m?,F(xiàn)在加強性標準可以將距離提高到100m,要求便攜式設備的電池壽命更長。藍牙技術不會替換IEEE 802.11中所提出的無線LAN的功能。相比較而言,藍牙只能在744Mbps的數(shù)據(jù)率上操作。當然,IEEE 802.11 LAN也更加昂貴。

  藍牙可以支持無線主機控制器(負責空中鏈路管理、調(diào)制解調(diào)器、聲音編碼/解碼)與另外一臺帶有協(xié)議棧和應用軟件的主機之間的通信。如果應用軟件想要控制無線主機控制器,那么就需要鏈路管理代理(link management proxy)模塊,它可以提供應用程序接口。這一模塊在藍牙標準中沒有說明,但是如果希望通過主機控制接口進行通信,協(xié)議棧中應包括這一模塊。棧接口提供的主要功能就是初始化發(fā)現(xiàn)進程和連接進程。發(fā)現(xiàn)進程將管理信息發(fā)送到10m范圍內(nèi)的所有藍牙設備,以便獲取可用的藍牙設備列表;連接進程可以與一個或多個可用的藍牙設備建立連接。所有的應用程序都必須使用這些進程,它們是GAP(General Access Protocol)的一部分,在任何應用使用鏈路前,必須將GAP與藍牙設備相連。

  鏈路安全將利用鑒別進程,在實現(xiàn)子網(wǎng)時,用來確認某設備是否可以與另一設備互連。鑒別操作由無線主機控制器完成,鑒別命令由安全管理模塊發(fā)出。該模塊會訪問以前完成的操作進程,可以與藍牙設備進行數(shù)據(jù)庫信息的連接,這些記錄存在設備數(shù)據(jù)庫中,由安全數(shù)據(jù)庫來維護主藍牙設備所提供的與三種安全級別有關的服務紀錄。建立兩個設備之間的連接時,安全管理模塊會做出反應,查詢兩個設備的數(shù)據(jù)庫,請求無線控制器開始鑒別進程或忽略鑒別進程。數(shù)據(jù)鏈路層加密也是同樣的道理。??刂破魇橇硗庖粋€包含在棧軟件中的模塊,可以提供接口調(diào)用棧軟件,從而繼續(xù)處理由主機或其他藍牙設備通過無線主機控制器發(fā)來的排序或緩沖數(shù)據(jù)。更為重要的是,棧管理模塊管理所有的內(nèi)部棧時鐘,因而使用該棧十分輕松,而且非常容易移植到其他的操作系統(tǒng)上。其余模塊按照應用要求分類,在運行藍牙協(xié)議時,這也是實際藍牙連接的情況。

3 Jini與藍牙技術的結合應用方案

3.1 Jini與藍牙技術的比較

  Jini與藍牙技術是兩種互補性很強的技術。藍牙技術主要實現(xiàn)鄰近的電子設備無線連接,是硬件設備的無線互連協(xié)議;Jini則是實現(xiàn)分布式軟件服務(包括無線設備)的軟件技術。藍牙技術是對固定的一組協(xié)議間互操作的靜態(tài)說明;而Jini的“移動代碼”代理服務對象可以動態(tài)地互操作。兩者在ISO/OSI的體系結構中的位置如圖2所示。Jini主要位于表示層和會話層,而藍牙的協(xié)議棧貫穿了整個體系結構。Jini的發(fā)現(xiàn)協(xié)議和分布式安全模型加強了藍牙技術的發(fā)現(xiàn)進程和安全管理模塊。

 


3.2 應用方案

  Jini的注冊和注銷服務與藍牙設備在網(wǎng)絡中的加入和退出非常類似。Jini控制網(wǎng)絡服務的租借,始終使查找服務保持最新狀態(tài)。在下一節(jié)中將詳細描述應用實例,本節(jié)進行方案設計。

  通常有三種形式來實現(xiàn)其Jini網(wǎng)絡功能:基于完整虛機的設備實現(xiàn),基于虛機的設備實現(xiàn)和基于共享虛機的設備實現(xiàn)。

  基于完整虛機設備實現(xiàn)中的設備指一般的通用設備,具有網(wǎng)絡連接、較強的計算存儲功能,能夠運行完整的 Java虛機環(huán)境。在這種設備上能夠?qū)崿F(xiàn)Jini系統(tǒng)的所有功能,如各種協(xié)議功能、RMI、租借更新功能、動態(tài)代碼移動功能、分布式安全機制等。Jini是位于操作系統(tǒng)和虛擬機之上的功能層,多個設備隨機聯(lián)網(wǎng)形成一分布式資源共享系統(tǒng),網(wǎng)絡傳輸協(xié)議一般由操作系統(tǒng)分別采用TCP/IP協(xié)議有線方式和基于藍牙協(xié)議的無線連接方式兩種。本設計方案就是基于藍牙協(xié)議的無線連接方式實現(xiàn)。圖3描述了一種應用方案。服務客戶、設備和網(wǎng)絡代理通過藍牙網(wǎng)絡進行連接,同時也支持TCP/IP協(xié)議。網(wǎng)絡中包含可以訪問的設備數(shù)據(jù)庫、查找服務。藍牙網(wǎng)絡通過SDP協(xié)議負責設備加入網(wǎng)絡,使設備能夠查詢、發(fā)現(xiàn)最鄰近的設備,并對這些設備進行訪問,從而實現(xiàn)遠程控制。遠程控制實現(xiàn)藍牙網(wǎng)絡與Jini的查找服務對話、詢問網(wǎng)絡可用設備的功能。查找服務保持網(wǎng)絡中運行的所有設備的動態(tài)列表,如:PDA、電話和CD播放機等。當服務客戶(遠程控制)請求時,所有這些設備將相關的驅(qū)動程序發(fā)送到服務客戶。當設備不再用時,通過租借終止對網(wǎng)絡發(fā)出警告,這是Jini的功能,主要用Java的RMI來實現(xiàn)。這種通信和保持服務更新的方式使Jini與藍牙網(wǎng)絡進行了很好的結合。

 

4 應用實例

  基于Jini與藍牙開發(fā)了一個無線網(wǎng)絡點歌器JBMP3。它具有以下功能:播放客戶選取的歌曲、客戶端圖形界面、個性化定制客戶端播放列表。系統(tǒng)結構如圖4所示。它由一個能播放音樂文件(mp3文件)的服務端程序、若干能控制服務程序的客戶端程序(遠程控制)和一個能支持Jini服務的查找服務組成。運行的網(wǎng)絡是TCP/IP網(wǎng)絡。

  對應用結合附圖作如下詳細說明:

  (1)點歌器發(fā)布一個服務自己擁有的代理對象。例如,能夠按先進先出順序播放音樂文件。

  (2)客戶端程序——通用遠程控制,詢問查找服務網(wǎng)絡能提供什么服務。

  (3)查找服務通過與請求相匹配的代理對象副本答復客戶端的詢問。

  (4)客戶端所有的請求都被送到同樣的服務器(點歌服務器)。請求通過Jini網(wǎng)絡5到達點歌服務器,服務器通過各自的鏈接(4)更新與之相連的代理對象。同時點歌器的更新以一致的形式顯示出來。

  設計主要分為三部分:遠程控制接口設計、客戶端設計、服務器設計。

4.1 遠程控制接口產(chǎn)生的代碼

  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( ):通用遠程控制需要一個圖形界面來控制已經(jīng)發(fā)現(xiàn)的不同服務。

  lease (long time):通用遠程控制需要知道在多長的時間內(nèi)被允許使用某一服務(租借時間)。

4.2 客戶機設計

  客戶機應該僅需作有限的操作,而讓服務器作大部分的工作。因為使用很少資源的客戶機在慢速處理器和小存儲器的設備上運行只適合象PDA一類手持設備或蜂窩電話,因此在這里客戶機必需支持一些操作。它們是:

  (1)發(fā)現(xiàn)已經(jīng)在網(wǎng)絡上注冊的服務的能力。例如,詢問查找服務可用的服務。

  (2)當一個服務在網(wǎng)絡上可行時被告知的能力。例如,發(fā)出需求后從查找服務接收代理對象。

  (3)租借任意一段時間(非無限長)服務器資源的能力。這由客戶機的租借管理器完成。

  (4)接收代理對象,而后經(jīng)接口向客戶機顯示的能力。本文是在通用遠程控制中的Java面板上實現(xiàn)的。

客戶機接口應該能顯示網(wǎng)絡提供的不同服務。當前播放列表中的歌曲隊列應在顯示器上自動更新。

4.3 服務器設計

  因為客戶機功能不強,一些附加的功能就必需在服務器上添加。因此服務器至少必需支持以下操作:

  (1)提供一個服務。如代理對象。

  (2)發(fā)現(xiàn)查找服務和在網(wǎng)絡上公布代理對象。

  (3)寫服務身份(對每一個代理獨一無二)對象到文件。

  (4)更新租借。

  (5)斷開租借已經(jīng)到期的客戶機聯(lián)接。

  上面幾點是應用的核心。這幾點組成了用于構建Jini應用的基本通信特征。服務器應該能加載目錄和發(fā)現(xiàn)所有的mp3文件。服務器是物理點歌器,它應具有某種硬件用來播放mp3音頻文件。

  Jini和藍牙技術的結合應用在通信環(huán)境中有以下優(yōu)點:首先,不需要網(wǎng)絡連接線;其次,不需要安裝設備驅(qū)動程序;再次,一個設備遠程控制另一個設備。這些特點使得網(wǎng)絡更容易連接和管理。雖然藍牙技術開發(fā)和生產(chǎn)的代價較高,Jini是SUN公司的免費產(chǎn)品,很容易掌握應用編程接口,并可進行分布式計算。隨著藍牙技術和Jini技術規(guī)范的發(fā)布、不斷推廣與相互結合,生活中各種電器的互連將變得愈來愈方便,Jini的即插即用功能和藍牙的無線連網(wǎng)使得設備的增減變得非常簡單,使網(wǎng)絡的建設可以分階段逐步完善而不必一次到位,滿足了一般用戶的需求。Jini技術和藍牙的結合,必將進一步推動信息無線網(wǎng)絡的快速發(fā)展,成為信息網(wǎng)絡又一重要應用領域,將極大地改變?nèi)藗兊纳罘绞?促進普適計算時代的到來。

參考文獻

1 Maury Wright. Home-automation Networks mature while the  PC industry chases a new home LAN, EDN June 4,1998

2 The JINI architecture specification. SUN Micr.osystems,1999

3 The JINI device architecture specification.SUN microsystems, 1999

4 金純,許光辰.藍牙技術.北京:電子工業(yè)出版社, 2001

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉