- 相關推薦
Jini在分布式嵌入式系統中的應用
摘要:Jini是一種基于Java的全新的構建分布式系統的技術,具有動態的、自形成的和自管理的特性,可用于構建動態的分布式嵌入式系統。本文首先介紹Jini體系結構及特點,然后系統闡述如何利用Jini來開發分布式嵌入式系統。其中包括Jini在構建分布式嵌入式系統中的優勢、嵌入式系統接入Jini網絡的方法和當前Jini在分布式嵌入式系統中的應用實例。關鍵詞:Jini分布式嵌入式系統Jini代理體系結構EIB
引言
嵌入式系統是指以應用為中心、以計算機技術為基礎、軟件硬件可裁剪,適用于對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。隨著計算機技術和相關電子技術的發展,嵌入式系統的應用已經深入到社會中的各個領域,如家用電器、移動通信、航空、航天、醫療、工業控制和軍事等。在嵌入式系統的某些應用中,通常采用分布式體系結構,不同的嵌入式設備之間以某種方式相互連接、彼此協作,這就要求整個系統具有很好的靈活性和可靠性。
Jini是一種全新的構建分布式系統的技術,具有動態的、自形成的和自管理的特性,它是一種真正的基于服務的分布式體系結構。另外,基于Java的Jini技術提高了分布式系統編程的抽象級別,簡化了分布式系統的開發。在構建分布式嵌入式系統的過程中利用Jini互聯技術,不但可以降低系統開發難度,實現嵌入式環境中基于服務級的互操作,而且還可提高整個系統的靈活性和可靠性。因此Jini技術推出后,人們很快就開始關注如何將Jini應用于分布式嵌入式系統的開發[1~3]。
1Jini技術概述
1.1Jini的體系結構
Jini是1999年1月Sun公司發布的一種基于Java的全新的用于構建分布式系統的技術,利用Jini可以使得軟件和硬件自發地結合起來,形成一個Jini服務聯盟。
一個Jini系統由下列組件組成[4]:
◇基礎設施組件——提供一個在分布式系統中建立起服務聯盟的框架;
◇編程模型組件——支持建立可靠的分布式服務;
◇服務組件——可以成為Jini服務聯盟中的一部分并且向聯盟中的其它成員提供服務。
盡管Jini系統由三部分組件組成,但是它們之間的界限是模糊的,組件之間緊密相連、彼此協作。Jini是建立在分布式系統、經常動態變化這一原則之上的。它的體系結構如圖1所示。
服務是Jini體系結構中最重要的概念。它可以指任何實體提供的功能。其中實體可以是任何硬件設備、軟件或是硬件和軟件的結合體。服務通過查找服務注冊后就可以通過實現了Java遠程接口的一個接口來調用。用戶通過向查找服務請求并且下載服務的代理對象來和服務之間通信。查找服務自身也是一個服務,能夠跟蹤每個服務并且向用戶提供服務的代理對象。
Jini的體系結構建立在以下環境假設的基礎上[5]:
◇有一個網絡并且具有合理的網絡延遲,以不影響Jini系統的性能(要求網絡底層使用的通信協議是TCP和UDP[3]);
◇每個支持Jini的設備具有一定內存和處理能力;
◇每個設備都需要裝備一個Java虛擬機。
任何實體都可以成為服務提供者(即服務)或服務請求者(即用戶)。當一個實體作為一個服務的提供者時,對它具有如下的要求:
◇為實現發現和加入查找服務的功能,服務提供者必須擁有網絡功能;
◇為了能夠下載一個查找服務的代理,需要一個Java虛擬機,并且虛擬機支持標準的Java和RMI;
◇為保存與注冊相關的信息,需要有存儲功能;
◇為了實現以上的各種計算,需要有一個處理器。
同樣,一個服務請求者的實體具有如下要求:
◇為實現發現查找服務的功能,服務請求者必須支持網絡;
◇為了下載并且服務對象代理,需要一個Java虛擬機和存儲功能;
◇需要實現計算的處理器。
因此,一個實體要接入Jini網絡成為服務提供者或是服務請求者,它自身需要具備一定的內存和處理能力,以及網絡和Java功能,稱滿足這些要求的實體是支持Jini的。
1.2Jini技術的特點
Jini的核心功能是提供一種基于網絡動態的、自形成的和自管理的服務聯盟,具有如下特點。
①Jini是即插即用的:服務提供者加入Jini網絡后,通過查找服務注冊后即可向使用者提供服務;服務的使用者加入Jini網絡后即可通過查找服務使用相應的服務,之后離開。
②使用戶可以很容易地訪問網絡中任何位置的資源,即使是用戶在網絡中的位置經常變化。
③Jini以自發的方式實現實體間的互聯:任何實體之間可以相互發現和加入Jini網絡來組成一個Jini聯盟。
④Jini消除了硬件和軟件之間的差別:Jini把硬件和軟件都抽象為服務,是一種真正的基于服務的體系結構。
⑤Jini是一種分布式計算框架,使得分布式編程變得容易:Jini將Java應用環境由單獨的Java虛擬機擴展到一個Java虛擬機網絡;Java虛擬機屏蔽了不同機器平臺和操作系統的異構性,降低了分布式編程的難度。
1.3利用Jini開發分布式嵌入式系統
近些年來隨著計算機網絡技術的不斷發展,分布式系統已經得到了越來越廣泛的研究和應用,分布式計算成為實現高性能和高可靠性計算的一種新的計算模型[5]。在嵌入式應用領域中采用分布式體系結構,一方面可以實現嵌入式環境中的分布式計算(例如一個系統本身可能是由分布在不同位置的多個嵌入式系統相互連接構成的,如電梯、汽車等);另一方面可以在可靠性要求較高的嵌入式應用中實現容錯計算。
Jini可以把分布式嵌入式系統變成動態的、靈活的和易管理的系統。Jini的自形成特性提供了一種自動相互發現和加入Jini網絡來組成服務聯盟的能力,可以使各種嵌入式設備以一種簡捷的方式實現集成和互操作。Jini的動態性使得每個嵌入式設備可以靈活地加入和離開Jini服務聯盟。這樣,當一些嵌入式設備(如移動設備、PDA等)在需要使用服務時,可以建立暫時性的連接加入Jini聯盟;服務完成時,離開。在不需要人為參與管理的情況下,整個系統仍具有良好的可伸縮性。
另外,Jini是基于Java的。Java虛擬機屏蔽了不同機器平臺和操作系統的異構性,簡化了嵌入式系統的編程;而且Jini將Java的應用環境由單獨的Java虛擬機擴展到一個Java虛擬機網絡,為實現分布式計算提供了一個良好的計算平臺。它提高了分布式系統編程的抽象級別,使得用戶只需在高層的對象接口上進行編程,而不必處理底層的通信協議,簡化了分布式系統的開發。
因此,Jini為開發分布式嵌入式系統提供了一種新的解決方案。但是,要把Jini應用到嵌入式領域中也存在一些需要解決的問題,下面將進行說明。
2嵌入式系統接入Jini網絡的方法
Jini并不是專門為開發嵌入式應用而設計的。由上面的分析可知,一個支持Jini的設備必須具備一定的處理能力、內存、網絡功能和Java功能;而通常嵌入式系統對資源是嚴格限制的,完全支持Jini的嵌入式設備實際上并不多。另外,一些分布式嵌入式應用中底層的通信協議也不支持Jini。
如何使嵌入式系統能夠加入到Jini網絡,成為在分布式嵌入式應用領域中應用Jini技術的難點。結合現有的技術,目前主要有三種解決方法:一種是提高嵌入式設備的資源,如采用32位的處理器、2MB以上的存儲空間和支持網絡連接,這樣的嵌入式系統可以完全支持Jini;另外一種方法是采用Jini代理體系結構,不要求設備自身支持Java和Jini技術;第三種方法是將Jini進行移植。
2.1J2ME與Jini技術相結合
繼Java技術在桌面系統和后端服務器領域取得巨大成功后,為了將Java的應用擴展到消費類電子設備和嵌入式設備,Sun推出了Java2平臺MicroEdition(J2ME)。它包括兩個基本的配置集:連接設備配置集(CDC,ConnectedDeviceConfiguration)和連接有限設備配置集(CLDC,ConnectedLimitedDeviceConfiguration)。CDC面向的是具有更強計算能力的嵌入式設備;CLDC面向的是資源有限的消費類電子設備。對應于CDC和CLDC兩個不同的配置集,可以將J2ME設備分為兩類:低端信息設備和高端信息設備。J2ME設備分類如表1所列。
表1J2ME設備分類表
低端信息設備高端信息設備典型設備尋呼機、蜂窩式電話、移動式收款機終端電視機頂盒、汽車導航系統、Web電話、網絡路由器處理器/位16/3232存儲特性/B256K~512K2M~16M網絡連接特性帶寬較窄,且不一定是基于TCP/TP協議的通常具有持續的TCP/IP連接
這兩種不同設備要求的J2ME的運行環境也不同。低端信息設備比較適合使用CLDC中定義的KVM,這是一款專用的Java虛擬機,是以小型的資源有限的消費類設備為目標平臺的;而高端信息設備適合使用CDC中定義的CVM,它與常規的JVM是完全兼容的。
J2MECDC可以使嵌入式設備具備Java2的功能。基于J2MECDC的RMI可選包完全滿足實現Jini的技術需求,因此可以直接加入Jini網絡。
對于那些J2MECLDC的設備或是根本不支持Java和Jini的嵌入式設備來說,Jini代理體系結構(JiniSurrogateArchitecture)使其接入Jini網絡成為可能。
2.2Jini代理體系結構
Jini代理體系結構是由Sun公司的工程師JimWaldo提出的,現在已成為www.jini.org站點中一個開放源代碼的項目。開發Jini代理的主要目標是使那些資源有限的設備能夠完全參與到Jini網絡中。
Jini代理體系結構由下列組件構成:可宿主機(host-capablemachine)、代理宿主(SurrogateHost)、宿主資源(HostResources)和相互連接(Interconnect)。組件之間的關系如圖2所示[6]。
設備是指那些不能夠加入Jini網絡的任何硬件設備或者軟件;可宿主機具備執行Java語言編寫的,用于代表設備的代碼,并且能夠為執行這些Java代碼提供所需的資源;代理宿主是駐留在可宿主機上,為執行代理體系結構的組件提供Java運行環境的框架,除了提供計算資源、運行環境和生命周期管理外,它還提供宿主的其它資源來幫助體系結構中的組件。
可宿主機在Jini網絡和設備兩者之間建立連接,在Jini網絡中充當這個設備的代言人。設備和代理宿主之間可以用有線或無線的方式相互連接。連接也可以采用任何的協議,有線連接如TCP/IP、RS-232、USB和IEEE1394等;無線連接可以采用藍牙協議。
這樣,Jini代理體系結構通過降低對設備資源的要求,實現了小型設備完全參與到Jini網絡中的目標,使得那些資源有限的小型設備可以充分利用Jini技術的優勢。代理通過一個運行Java2虛擬機支持Jini技術的宿主代理系統,使得本來需要運行在用戶中的服務代理對象可以在代理的環境中運行。任何小型設備與代理宿主通過相互連接進行對話,從而成為一個完全的支持Jini的用戶或服務,且仍保持Jini即插即用的特性。
2.3移植Jini
Jini體系結構假設網絡底層使用的通信協議是TCP和UDP,而一些分布式嵌入式系統中通常采用的是實時、可靠的數據傳輸協議,如CAN、TTP等。為了在這樣的應用領域中使用Jini技術,可以考慮將Jini進行移植。RoSES(RobustSelf-ConfiguringEmbeddedSystems)[3]是卡耐基梅隆大學通用發動機協作實驗室的一個研究項目。目的是尋找一種建立靈活的、健壯的和可維護的分布式嵌入式系統的通用方法,在研究過程中嘗試把Jini移植到CAN上。移植Jini的方法也可以解決嵌入式系統接入Jini網絡的問題,但其中的工作量相對較大。
3應用實例
Jini在開發分布式嵌入式系統方面已經做了很多的工作[1~3]。下面介紹一下Jini在EIB(EuropeanInstallationBus)中的應用[1,2]。
現場總線分為多種,不同廠商的現場總線產品是不兼容的。為了解決這一問題,EIBA(EuropeanInstallationBusAssociation)提出了EIB。EIB代表了最新的現場總線技術,主要應用領域是家庭和建筑物的自動化。EIB網絡的拓撲結構可以是線形、星形和樹形。
EIB網絡中每個節點是一個EIB設備。一個EIB系統中最大可以安裝60000個設備。每個EIB設備中有一個嵌入式微控制器用來運行通信協議。它從總線上接收數據后傳送給應用程序,或是把應用程序數據傳給其它設備。每個EIB設備通過LC(LineConnector,具有路由功能)連接到主線(MainLine)上,BC(BusCoupling)向特定應用的硬件(如傳感器和作動器)提供了定義良好的接口。
EIB中的設備(例如傳感器)都是資源非常有限的設備,很難直接支持Jini,而且EIB系統使用的底層通信協議也不支持Jini。因此在實現中,采用Jini代理體系結構來使EIB設備接入Jini網絡。系統結構如圖3所示[2]。
EIB代理(EIBAgent)是EIB設備在Jini網絡中映射的服務代理。它向服務的使用者(ServiceUser)提供EIB設備的功能;EIB服務器(EIBServer)由Jini數據庫(JiniDatabase)和EIB控制器(EIBController)兩個模塊組成。它負責管理代理宿主機與現場總線之間的連接,其中Jini數據庫是一個存放EIB設備和相應的EIB代理之間的映射關系的數據庫。EIB代理和EIB服務器運行在代理宿主機上。
這樣,在EIB系統中使用Jini技術會帶來如下好處:
◇EIB系統中,每個設備提供的功能都可以映射成Jini服務,這樣,不僅可以被其它的現場總線使用,而且還可以被支持Jini的任何設備(如PDA)來訪問;
◇Jini簡化了網絡編程,并且Java提高了系統的安全性;
◇EIB網絡可以連接到Internet,這樣系統變成了開放的,提高了EIB設備的可訪問性;
◇Jini使EIB系統中的設備可以與家用消費電器和自動化設備通信,增強EIB設備的功能;
◇Jini提供了一種獨立于廠商的服務平臺,使得不同廠商的現場總線產品相互兼容。
應當指出的是,Jini并不是完全適用于實時性要求高的嵌入式應用。RoSES的研究項目中,將Jini移植到了CAN上;但實驗結果表明,Jini的實時性能并不令人滿意。
4總結
在構建分布式嵌入式系統的過程中利用Jini技術,不但可以降低系統的開發難度、實現嵌入式環境中基于服務級的互操作,而且可使系統具有很好的靈活性和可靠性。同時,在分布式嵌入式領域中使用Jini技術也存在一些需要解決的問題,包括如何使得嵌入式系統支持Jini以及Jini的實時性等。
【Jini在分布式嵌入式系統中的應用】相關文章:
UML 在嵌入式系統設計中的應用04-12
Java技術在嵌入式系統中的應用08-06
液晶顯示在嵌入式系統中的應用08-06
分布式發電系統的應用及前景08-06
分布式發電系統的應用及前景08-06
1553B總線在嵌入式系統中的應用08-06
Jini與藍牙技術的結合應用08-06