新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > Jini與藍(lán)牙技術(shù)的結(jié)合應(yīng)用

Jini與藍(lán)牙技術(shù)的結(jié)合應(yīng)用

作者:戴果 熊偉 時(shí)間:2008-09-12 來(lái)源:電子技術(shù)應(yīng)用 收藏

摘 要:分析了技術(shù)的基本結(jié)構(gòu)及工作原理,對(duì)這兩種技術(shù)進(jìn)行了比較,并提出將兩者結(jié)合應(yīng)用的實(shí)現(xiàn)方案,最后給出了一個(gè)應(yīng)用實(shí)例。

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

關(guān)鍵詞: 技術(shù)

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

1 技術(shù)

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

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

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

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

 

2 協(xié)議

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

  在藍(lán)牙的拓?fù)渲?一個(gè)主設(shè)備可以帶多個(gè)從設(shè)備,并且維持7條鏈接。一般來(lái)說(shuō),在任何時(shí)刻,主設(shè)備會(huì)與一個(gè)從設(shè)備維持點(diǎn)對(duì)點(diǎn)通信??梢越煞N通信:一種以異步方式傳輸數(shù)據(jù),另一種以同步方式傳輸聲音。通信類(lèi)型由主設(shè)備決定,并負(fù)責(zé)建立特殊應(yīng)用所需的鏈接,直至應(yīng)用將其終止。請(qǐng)注意:主從關(guān)系不能互換,互換技術(shù)用于GSM的蜂窩式手機(jī)中,藍(lán)牙不支持這種技術(shù)。同時(shí),藍(lán)牙只能支持短距離通信,最遠(yuǎn)10m。現(xiàn)在加強(qiáng)性標(biāo)準(zhǔn)可以將距離提高到100m,要求便攜式設(shè)備的電池壽命更長(zhǎng)。藍(lán)牙技術(shù)不會(huì)替換IEEE 802.11中所提出的無(wú)線LAN的功能。相比較而言,藍(lán)牙只能在744Mbps的數(shù)據(jù)率上操作。當(dāng)然,IEEE 802.11 LAN也更加昂貴。

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

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

3 Jini與藍(lán)牙技術(shù)的結(jié)合應(yīng)用方案

3.1 Jini與藍(lán)牙技術(shù)的比較

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

 


3.2 應(yīng)用方案

  Jini的注冊(cè)和注銷(xiāo)服務(wù)與藍(lán)牙設(shè)備在網(wǎng)絡(luò)中的加入和退出非常類(lèi)似。Jini控制網(wǎng)絡(luò)服務(wù)的租借,始終使查找服務(wù)保持最新?tīng)顟B(tài)。在下一節(jié)中將詳細(xì)描述應(yīng)用實(shí)例,本節(jié)進(jìn)行方案設(shè)計(jì)。

  通常有三種形式來(lái)實(shí)現(xiàn)其Jini網(wǎng)絡(luò)功能:基于完整虛機(jī)的設(shè)備實(shí)現(xiàn),基于虛機(jī)的設(shè)備實(shí)現(xiàn)和基于共享虛機(jī)的設(shè)備實(shí)現(xiàn)。

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

 

4 應(yīng)用實(shí)例

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

  對(duì)應(yīng)用結(jié)合附圖作如下詳細(xì)說(shuō)明:

  (1)點(diǎn)歌器發(fā)布一個(gè)服務(wù)自己擁有的代理對(duì)象。例如,能夠按先進(jìn)先出順序播放音樂(lè)文件。

  (2)客戶(hù)端程序——通用遠(yuǎn)程控制,詢(xún)問(wèn)查找服務(wù)網(wǎng)絡(luò)能提供什么服務(wù)。

  (3)查找服務(wù)通過(guò)與請(qǐng)求相匹配的代理對(duì)象副本答復(fù)客戶(hù)端的詢(xún)問(wèn)。

  (4)客戶(hù)端所有的請(qǐng)求都被送到同樣的服務(wù)器(點(diǎn)歌服務(wù)器)。請(qǐng)求通過(guò)Jini網(wǎng)絡(luò)5到達(dá)點(diǎn)歌服務(wù)器,服務(wù)器通過(guò)各自的鏈接(4)更新與之相連的代理對(duì)象。同時(shí)點(diǎn)歌器的更新以一致的形式顯示出來(lái)。

  設(shè)計(jì)主要分為三部分:遠(yuǎn)程控制接口設(shè)計(jì)、客戶(hù)端設(shè)計(jì)、服務(wù)器設(shè)計(jì)。

4.1 遠(yuǎn)程控制接口產(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 ( ):通用遠(yuǎn)程控制需要知道服務(wù)的名稱(chēng)以便能在圖形界面上顯示服務(wù)的正確名稱(chēng)。

  getDisplay( ):通用遠(yuǎn)程控制需要一個(gè)圖形界面來(lái)控制已經(jīng)發(fā)現(xiàn)的不同服務(wù)。

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

4.2 客戶(hù)機(jī)設(shè)計(jì)

  客戶(hù)機(jī)應(yīng)該僅需作有限的操作,而讓服務(wù)器作大部分的工作。因?yàn)槭褂煤苌儋Y源的客戶(hù)機(jī)在慢速處理器和小存儲(chǔ)器的設(shè)備上運(yùn)行只適合象PDA一類(lèi)手持設(shè)備或蜂窩電話,因此在這里客戶(hù)機(jī)必需支持一些操作。它們是:

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

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

  (3)租借任意一段時(shí)間(非無(wú)限長(zhǎng))服務(wù)器資源的能力。這由客戶(hù)機(jī)的租借管理器完成。

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

客戶(hù)機(jī)接口應(yīng)該能顯示網(wǎng)絡(luò)提供的不同服務(wù)。當(dāng)前播放列表中的歌曲隊(duì)列應(yīng)在顯示器上自動(dòng)更新。

4.3 服務(wù)器設(shè)計(jì)

  因?yàn)榭蛻?hù)機(jī)功能不強(qiáng),一些附加的功能就必需在服務(wù)器上添加。因此服務(wù)器至少必需支持以下操作:

  (1)提供一個(gè)服務(wù)。如代理對(duì)象。

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

  (3)寫(xiě)服務(wù)身份(對(duì)每一個(gè)代理獨(dú)一無(wú)二)對(duì)象到文件。

  (4)更新租借。

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

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

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

參考文獻(xiàn)

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 金純,許光辰.藍(lán)牙技術(shù).北京:電子工業(yè)出版社, 2001

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


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉