隨著嵌入式系統(tǒng)在各種電子設(shè)備中的廣泛應(yīng)用,,計算機技術(shù)的發(fā)展將進入一個普適計算(Pervasive Computing)階段,。
隨之而來的各種電子設(shè)備聯(lián)網(wǎng)成為必然趨勢。與人類生活息息相關(guān)的各種家電設(shè)備能夠聯(lián)成網(wǎng)絡(luò)并接入互聯(lián)網(wǎng),,人們可以在任何時間,、任何地點統(tǒng)一控制各種家電協(xié)同工作,將極大地改變和影響人們的生活,。本文探討了這種普適計算機制的實現(xiàn),。
1、 JINI" title="JINI">JINI技術(shù)
JINI技術(shù)是基于Java語言的新型分布式對等計算結(jié)構(gòu),,是一種動態(tài)的自動化機制,,它可以使各種數(shù)字設(shè)備無需配置,、安裝或人工干預(yù),在一個臨時的設(shè)備集合(聯(lián)邦,,federation)中共同工作,。聯(lián)邦中的任何設(shè)備無法大小都可以自行管理,組成一個服務(wù)網(wǎng)絡(luò),,聯(lián)邦中的每一成員都可以共享資源和服務(wù),。JINI結(jié)構(gòu)提供一套機制使得電子設(shè)備和應(yīng)用程序能夠隨時加入或退出聯(lián)邦。
JINI由三部分組成:基礎(chǔ)結(jié)構(gòu)(Infrastructure),、編程模型和服務(wù),。這三部分雖有區(qū)別但又密不可分,基礎(chǔ)結(jié)構(gòu)支持并利用編程模型,;服務(wù)內(nèi)嵌入基礎(chǔ)結(jié)構(gòu)之中,,服務(wù)對象包含并利用編程模型的接口進行服務(wù)之間的通信?;A(chǔ)結(jié)構(gòu)解決設(shè)備和軟件如何與網(wǎng)絡(luò)連接并進行注冊等基本問題,。它由構(gòu)成分布式聯(lián)邦的組件組成,其最小內(nèi)核為分布式安全系統(tǒng),、發(fā)現(xiàn)與加入?yún)f(xié)議(discovery and join),、服務(wù)協(xié)議和查找服務(wù)(lookup service)。
分布式安全模型及其實現(xiàn)定義了軟件實體的認證方式及操作權(quán)限,;發(fā)現(xiàn)與加入?yún)f(xié)議定義了服務(wù)加入JINI系統(tǒng)的方法,;查找服務(wù)則是供服務(wù)注冊登記的場所,這里提供了可以使用的服務(wù)對象集合,。編程模型也是分布式的,,包括租借(leasing)、分布式的事務(wù)處理和事件處理三種重要接口,。
租借接口定義了基于時間的資源分配和釋放方法,;事務(wù)接口引入了一種面向?qū)ο蟮膮f(xié)議,使用表決和提交兩個階段來統(tǒng)一對象之間的相關(guān)行為,,使得一個事件序列或全部完成或全都不發(fā)生,。事件和通知接口將JavaBean組建所使用的事件模型擴展為分布式事件模型,支持JINI服務(wù)基于事件的通信,。,,服務(wù)是JINI體系的核心,基礎(chǔ)結(jié)構(gòu)和編程模型共同支持服務(wù)的提交注冊及服務(wù)的發(fā)展,,服務(wù)使用基礎(chǔ)結(jié)構(gòu)完成服務(wù)之間的相互調(diào)用、相互發(fā)現(xiàn)并向其他服務(wù)發(fā)布本服務(wù)的出現(xiàn),。服務(wù)在JINI環(huán)境中以對象的形式出現(xiàn),,它通過接口來定義其提供的可供其他服務(wù)使用的操作和特性,。
JINI使用發(fā)現(xiàn)協(xié)議(discovery)搜索查找服務(wù)(lookup service),獲得相應(yīng)查找服務(wù)的代理接口,,然后使用加入?yún)f(xié)議(join)將自己注冊到查找服務(wù)中,,這時該服務(wù)可以為其他服務(wù)所使用。想要使用其它服務(wù)的設(shè)備或應(yīng)用程序,,首先與其相鄰的查找服務(wù)進行連接,。這時可以看到本聯(lián)邦內(nèi)所有可用的服務(wù),使用查找協(xié)議(lookup)將所感興趣的服務(wù)代理接口下載到本地之后就可以與服務(wù)提供者進行直接交互通信,。同樣當(dāng)一個查找服務(wù)啟動時,,它也使用發(fā)現(xiàn)協(xié)議向服務(wù)廣播自己出現(xiàn),以便服務(wù)進行注冊登記,。
圖1對以上過程進行了形象描述:用發(fā)現(xiàn)協(xié)議搜索到查找服務(wù),,若已預(yù)置某個查找服務(wù)的URL則可直接進行通信;將服務(wù)代理對象注冊到查找服務(wù),;服務(wù)客戶將服務(wù)對象從查找服務(wù)處下載到本地,;利用服務(wù)對象與服務(wù)提供直接通信,使用該項服務(wù),。
2 ,、藍牙協(xié)議
藍牙是一種低成本的技術(shù),可以在依賴電池操作的目標機上實現(xiàn)低功耗,、短距離的固定通信,。這些目標機包括:PDA、無線電話,、便攜電腦和無線耳機等,。
在藍牙的拓撲中,一個設(shè)備可以帶多個從設(shè)備并且維持7條鏈接,。一般來說,,在任何時刻,主設(shè)備會與一個從設(shè)備維持點對點通信,??梢越煞N通信:一種以異步方式傳輸數(shù)據(jù),另一種以同步方式傳輸聲音,。通信類型由主設(shè)備決定,。并負責(zé)建立特殊應(yīng)用所需的鏈接,直至應(yīng)用將其終止,。
請注意:主從關(guān)系不能互換,,互換技術(shù)用于GSM的蜂窩式手機中,藍牙不支持這種技術(shù),。同時,,藍牙只能支持短距離通信,,最遠10m。現(xiàn)在加強性標準可以將距離提高到100m,,要求便攜式設(shè)備的電池壽命更長,。藍牙技術(shù)" title="藍牙技術(shù)">藍牙技術(shù)不會替換IEEE 802.11中所提出的無線LAN的功能。相比較而言,,藍牙只能在744Mbps的數(shù)據(jù)率上操作,。當(dāng)然,IEEE 802.11 LAN也更加昂貴,。
藍牙可以支持無線主機控制器(負責(zé)空中鏈路管理,、調(diào)制解調(diào)器、聲音編碼/解碼)與另外一臺帶有協(xié)議棧和應(yīng)用軟件的主機之間的通信,。如果應(yīng)用軟件想要控制無線主機控制器,,那么就需要鏈路管理代理(link management proxy)模塊,它可以提供應(yīng)用程序接口,。這一模塊在藍牙標準中沒有說明,,但是如果希望通過主機控制接口進行通信,協(xié)議棧中應(yīng)包括這一模塊,。棧接口提供的主要功能就是初始化發(fā)現(xiàn)進程和連接進程,。發(fā)現(xiàn)進程將管理信息發(fā)送到10m范圍內(nèi)的所有藍牙設(shè)備,以便獲取可用的藍牙設(shè)備列表,;連接進程可以與一個或多個可用的藍牙設(shè)備建立連接,。所有的應(yīng)用程序都必須使用這個進程,它們是GAP(General Access Protocol)的一部分,,在任何應(yīng)用使用鏈路前,,必須將GAP與藍牙設(shè)備相連。
鏈路安全將利用鑒別進程,,在實現(xiàn)子網(wǎng)時,,用來確認某設(shè)備是否可以與另一設(shè)備互連。鑒別操作由無線主機控制器完成,,鑒別命令由安全管理模塊發(fā)出,。該模塊會訪問以前完成的操作進程,可以與藍牙設(shè)備進行數(shù)據(jù)庫信息的連接,,這些記錄存在設(shè)備數(shù)據(jù)庫中,,由安全數(shù)據(jù)庫來維護主藍牙設(shè)備所提供的與三種完全級別有關(guān)的服務(wù)記錄。建立兩個設(shè)備之間的連接時,,完全管理模塊會做出反應(yīng),,查詢兩個設(shè)備的數(shù)據(jù)庫,請求無線控制器開始鑒別進程或忽略鑒別進程。數(shù)據(jù)鏈路層加密也是同樣的道路,。
??刂破魇橇硗庖粋€包含在棧軟件中的模塊,,可以提供接口調(diào)用軟件,,從而繼續(xù)處理由主機或其他藍牙設(shè)備通過無線主機控制器發(fā)來的排序或緩沖數(shù)據(jù)。更為重要的是,,棧管理模塊管理所有的內(nèi)部棧時鐘,,因而使用該棧十分輕松,而且非常容易移植以其他的操作系統(tǒng)上,。其八模塊按照應(yīng)用要求分類,,運行藍牙協(xié)議時,這也是實際藍牙連接的情況,。
3,、 JINI與藍牙技術(shù)的結(jié)合應(yīng)用方案
3.1 JINI與藍牙技術(shù)的比較
JINI與藍牙技術(shù)是兩種互補性很強的技術(shù)。藍牙技術(shù)主要實現(xiàn)鄰近的電子設(shè)備無線連接,,是硬件設(shè)備的無線互連協(xié)議,;JINI則是實現(xiàn)分布式軟件服務(wù)(包括無線設(shè)備)的軟件技術(shù)。藍牙技術(shù)是對固定的一組協(xié)議間互操作的靜態(tài)說明,;而JINI的“移動代碼”代理服務(wù)對象可以動態(tài)地互操作,。兩者在ISO/OSI的體系結(jié)構(gòu)中的位置如圖2的慰。JINI主要位于表示層和會話層,,而藍牙的協(xié)議棧貫空了整個體系結(jié)構(gòu),。JINI的發(fā)現(xiàn)協(xié)議和分布式安全模型加強了藍牙技術(shù)的發(fā)展進程和完全管理模塊。
3.2 應(yīng)用方案
JINI的注冊和注銷服務(wù)與藍牙設(shè)備在網(wǎng)絡(luò)中的加入和退出非常類似,。JINI控制網(wǎng)絡(luò)服務(wù)的租借,,始終使查找服務(wù)保持最新狀態(tài)。通常有三種形式來實現(xiàn)其JINI網(wǎng)絡(luò)功能:基于完整虛機的設(shè)備實現(xiàn),,基于嵌入式虛機的設(shè)備實現(xiàn)和基于共享虛機的設(shè)備實現(xiàn),。
基于完整虛機設(shè)備實現(xiàn)中的設(shè)備指一般的通用設(shè)備,具有網(wǎng)絡(luò)連接,、較強的計算存儲功能,,能夠運行完整的Java虛機環(huán)境。在這種設(shè)備上能夠?qū)崿F(xiàn)JINI系統(tǒng)的所有功能,,如各種協(xié)議功能,、RMI、租借更新功能,、動態(tài)代碼移動功能,、分布式安全機制等。
JINI是位于操作系統(tǒng)和虛擬機之上的功能層,多個設(shè)備隨機聯(lián)網(wǎng)形成一分布式資源共享系統(tǒng),,網(wǎng)絡(luò)傳輸協(xié)議一般由操作系統(tǒng)分別采用TCP/IP協(xié)議有線方式和基于藍牙協(xié)議的無線連接方式兩種,。本設(shè)計方案就是基于協(xié)議的無線連接方式實現(xiàn)。圖3描述了一種應(yīng)用方案,。服務(wù)客戶,、設(shè)備和網(wǎng)絡(luò)代理通過藍牙網(wǎng)絡(luò)進行連接,同時也支持TCP/IP協(xié)議,。網(wǎng)絡(luò)中包含可以訪問的設(shè)備數(shù)據(jù)庫,、查找服務(wù)。藍牙網(wǎng)絡(luò)通過SDP協(xié)議負責(zé)設(shè)備加入網(wǎng)絡(luò),,使設(shè)備能夠查詢,、發(fā)現(xiàn)最鄰近的設(shè)備,并對這些設(shè)備進行訪問,,從而實現(xiàn)遠程控制,。遠程控制實現(xiàn)藍牙網(wǎng)絡(luò)與JINI的查找服務(wù)對話、詢問網(wǎng)絡(luò)可用設(shè)備的功能,。
查找服務(wù)保持網(wǎng)絡(luò)中運行的所有設(shè)備的動態(tài)列表,,如:PDA、電話和CD播放機等,。當(dāng)服務(wù)客戶(遠程控制)請求時,,所有這些設(shè)備將相關(guān)的驅(qū)動程序發(fā)送到服務(wù)客戶。當(dāng)設(shè)備不再用時,,通過租借終止對網(wǎng)絡(luò)發(fā)出警告,,這是JINI的功能,主要用Java的RMI來實現(xiàn),。這種通信和保持服務(wù)更新的方式使JINI與藍牙網(wǎng)絡(luò)進行了很好的結(jié)合,。
4 、應(yīng)用實例
基于JINI與藍牙開發(fā)了一個無線網(wǎng)絡(luò)" title="無線網(wǎng)絡(luò)">無線網(wǎng)絡(luò)點歌器JBMP3,。它具有以下功能:播放客戶選取歌典,、客戶端圖形界面、個性化定制客戶播放列表,。系統(tǒng)結(jié)構(gòu)如圖4所示,。它由一個能播放音樂文件(mp3文件)的服務(wù)端程序、若干能控制服務(wù)程序的客戶端程序(遠程控制)和一個能支持JINI服務(wù)的查找服務(wù)組成,。運行的網(wǎng)絡(luò)是TCP/IP網(wǎng)絡(luò),。
對應(yīng)用結(jié)合附圖作如下詳細說明:
(1)點歌器發(fā)布一個服務(wù)自己擁有的代理對象,。例如,,能夠按先進先出順序播放音樂文件。
(2)客戶端程序——通用遠程控制,,詢問查找服務(wù)網(wǎng)絡(luò)能提供什么服務(wù),。
(3)查找服務(wù)通過與請求相匹配的代理對象副本答復(fù)客戶端的詢問,。
?。?)客戶端所有的請求都被送到同樣的服務(wù)器(點歌服務(wù)器)。請求通過JINI網(wǎng)絡(luò)5到達點歌服務(wù)器,,服務(wù)器通過各自的鏈接(4)更新與之相連的代理對象,。同時點歌器的更新以一致的形式顯示出來。
設(shè)計主要分為三部分:遠程控制接口設(shè)計,、客戶端設(shè)計、服務(wù)器設(shè)計,。
4.1 遠程控制接口產(chǎn)生的代碼
4.2 客戶機設(shè)計
客戶機該僅需作有限的操作,,而讓服務(wù)器作大部分的工作。因為使用很少資源的客戶機在慢速處理器和小存儲器的設(shè)備上運行只適合象PDA一類手持設(shè)備或蜂窩電話,,因此在這里客戶機必需支持一些操作,。它們是:
(1)發(fā)現(xiàn)已經(jīng)在網(wǎng)絡(luò)上注冊的服務(wù)的能力,。例如,,詢問查找服務(wù)器可用的服務(wù)。
?。?)當(dāng)一個服務(wù)在網(wǎng)絡(luò)上可行時被告知的能力,。例如,發(fā)出需求后從查找服務(wù)接收代理對象,。
?。?)租借任意一段時間(非無限長)服務(wù)器資源的能力。這由客戶機的租借管理器完成,。
?。?)接收代理對象,而后經(jīng)接口向客戶機顯示的能力,。本文是在通用遠程控制中的Java面板上實現(xiàn)的,。
客戶機接口應(yīng)該能顯示網(wǎng)絡(luò)提供的不同服務(wù)。當(dāng)前播放列表中的歌曲隊列應(yīng)在顯示器上自動更新,。
4.3 服務(wù)器設(shè)計
因為客戶機功能不強,,一些附加的功能就必需在服務(wù)器上添加。因此服務(wù)器至少必需支持以下操作:
?。?)提供一個服務(wù),。如代理對象。
(2)發(fā)現(xiàn)查找服務(wù)和在網(wǎng)絡(luò)上公布代理對象,。
?。?)寫服務(wù)身份(對每一個代理獨一無二)對象到文件。
?。?)更新租借,。
(5)斷開租借已經(jīng)到期的客戶機聯(lián)接,。
上述幾點是應(yīng)用的核心,。這幾點組成了用于構(gòu)建JINI應(yīng)用的基本通信特征。服務(wù)器應(yīng)該加載目錄和發(fā)現(xiàn)所有的mp3文件,。服務(wù)器是物理點歌器,,它應(yīng)具有某種硬件用來播放mp3音頻文件。
JINI和藍牙技術(shù)的結(jié)合應(yīng)用在通信環(huán)境中有以下優(yōu)點:首先,,不需要網(wǎng)絡(luò)連接線,;其次,不需要安裝設(shè)備驅(qū)動程序,,再次,,一個設(shè)備遠程控制另一個設(shè)備。這些特點使得網(wǎng)絡(luò)更容易連接和管理,。雖然藍牙技術(shù)開和生產(chǎn)的代價較高,,JINI是SUN公司的免費產(chǎn)品,很容易掌握應(yīng)用編程接口,,并可進行分布式計算,。
隨著藍牙技術(shù)和JINI技術(shù)規(guī)范的布、不斷推廣與相互結(jié)合,,生活中各種電路的互連將變得愈來愈方便,,JINI的即插即用功能和藍牙的無線連網(wǎng)使得設(shè)備的增減變得非常簡單,使網(wǎng)絡(luò)的建設(shè)可以分階段逐步完善而不必一次到位,,滿足了一般用戶的需求,。JINI技術(shù)和藍牙的結(jié)合,必將進一步推動信息無線網(wǎng)絡(luò)的快速發(fā)展,,成為信息網(wǎng)絡(luò)又一重要應(yīng)用領(lǐng)域,,將極大地改變?nèi)藗兊纳罘绞剑龠M普適計算時代的到來,。