摘要:Jini是一種真正基于服務的體系結構,它為動態(tài)的分布式計算需求提供了一種解決方案。本文提出了一種基于Jini的智能家電系統(tǒng)開發(fā)方案,利用Jini將設備和軟件抽象為服務,很好地支持了智能家電的動態(tài)群體形成和解散。
關鍵詞: Jini;分布式;智能家電
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)19-30129-03
Study of Intelligent Electrical Appliances Based on Jini
ZHANG Zhen-yu
(College of Software Engineering, Southeast University, Nanjing 210096, China)
Abstract: Jini is really a kind of architecture based on service. It offers a kind of solving schema for the developing dynamic distributed computing demand. This paper proposes some Jini schemas with treating equipment and software as the abstract service to support the dynamic formation and dissolution of Intelligent electrical appliance groups.
Key words: Jini; distributed; Intelligent electrical appliances
1 引言
隨著信息技術日新月異的發(fā)展,出現(xiàn)了越來越多更加智能化的信息設備和家電。用戶不再只滿足于操作方便簡單的電器,而希望它們能智能化,模糊控制技術已經(jīng)將此做的比較好了,但是要能遠程的操控它們,甚至能讓它們相互“交流”卻無計可施,移動代碼引入的Jini使得這些成為可能。Jini已在實際中被使用,如Lightflow等公司正在使用它來實現(xiàn)其在線商店的基礎設施;Intuit(Quicken的制造商)則將它應用于其交互式401(k)投資顧問產(chǎn)品中;美國軍方在戰(zhàn)場上迅速集成戰(zhàn)地指揮所時也用到了Jini,從而免去了耗時安裝、配置和管理;澳大利亞研究中心使用Jini和WAP技術開發(fā)了一個具有完全功能的氣象工作站[1]。在家庭智能自動化方面,Echelon公司為它的LONWRKS網(wǎng)絡開發(fā)了一個Jini代理服務器,用來實現(xiàn)家庭、辦公室和大樓設備網(wǎng)絡化的控制;ProSyst Software AG開發(fā)了一種稱為mBedded服務器的產(chǎn)品,使用Jini技術實現(xiàn)家電互聯(lián)網(wǎng)絡化;Hub協(xié)會更是開發(fā)了一個接口,可以支持不同終端裝置設備與帶有計算機的家電通過廣域網(wǎng)實現(xiàn)互聯(lián)[2]。Jini為后臺企業(yè)系統(tǒng)的建立人員提供了一種方式,使其能將軟件變得更加具有動態(tài)性,更可配置和可升級,同時也更易于部署。
Jini是一種自診斷、自配置的與協(xié)議無關的動態(tài)分布式計算體系結構,可以提供自發(fā)的服務網(wǎng)絡,可以與任何分布式對象采用任何協(xié)議進行交互,如RMI、CORBA、DCOM或某種專用協(xié)議。而這些分布式對象可以是設備,也可以是軟件組件,它們在Jini系統(tǒng)中都被抽象為服務,Jini是基于服務的系統(tǒng)。Jini的核心是動態(tài)的,自愈合的無需管理的網(wǎng)絡服務合成體[2]。
2 JINI體系結構
Jini是以Java技術為核心的分布式系統(tǒng),它通過使用一個簡易的“即插即用”模型,能夠隨時改變硬件或者軟件的配置,從而提供了一個支持快速配置的分布式計算環(huán)境[3]。Jini的迷人之處在于它能夠使各種數(shù)字設備無需配置、安裝或者人工干預,就能夠在一個臨時的稱為服務聯(lián)盟(federations of services)的設備集合中共同工作。聯(lián)盟中的任何設備或者軟件無論大小都可以自行管理,共同組成一個服務網(wǎng)絡,聯(lián)盟中的每一個成員都可以為其它成員提供資源或服務,同時又可以從其它成員那里獲取自己所需的資源和服務,Jini提供一套完善的機制使得硬件設備或者軟件組件能夠隨時加入或者退出聯(lián)盟。
Jini是一個主動的、響應式的分布式基礎結構,它提供了在分布式環(huán)境中進行服務的建立、查找、通訊和調用的一整套機制。Jini技術被設計成可以運用在任何有能力連入網(wǎng)絡的器件上,而不論該器件運行什么軟件或運行在哪種硬件設備之上。Jini技術是以網(wǎng)絡器件中的一個構件的面貌出現(xiàn)的,它為器件如何連入網(wǎng)絡、共享信息和與網(wǎng)絡進行互操作建立了一套規(guī)則,而同時又保持了對用戶的完全透明[4]。
Jini system是由基礎設施(infrastructure)、編程模型(programming model )、服務(services) 三方面所構成,這三者既相互獨立又互相聯(lián)系?;A結構支持并利用編程模型,服務內嵌于基礎結構之中,服務對象包含并利用編程模型的接口進行服務之間的通信。Jini的核心是查找(Lookup),發(fā)現(xiàn)(Discovery)和加入(Join)協(xié)議,這些協(xié)議構成了Jini基礎設施的核心機制。服務(Services)是Jini系統(tǒng)中最基本的實體,是指網(wǎng)絡中可被其它Jini參與者所使用的任何實體,查找服務(Lookup Service)是發(fā)現(xiàn)和識別其他服務的服務。
Jini與Java的關系如表1所示,Jini系統(tǒng)的結構層次如圖1所示。
3 基于Jini的智能家電研究方案
智能家電網(wǎng)絡中常常有機頂盒、PDA、筆記本電腦、打印機等等很多的設備。智能家電網(wǎng)絡傳輸速度、設備資源的等方面的差異決定了組網(wǎng)的方式多樣性,異構的設備和平臺決定了分布式的網(wǎng)絡是首選[5]。同時,在這個動態(tài)的環(huán)境中,當新的設備加入網(wǎng)絡或移出現(xiàn)有設備時,新設備應當能較方便的加入網(wǎng)絡并與現(xiàn)有設備互相識別,協(xié)調工作。在智能家電網(wǎng)組成上我們有很多的可選技術:UpnP、HAVi、Jini、OpenCable、OSGi、DVB-MHP和VESA等。
Jini提供了一種基礎設施,可在零安裝、零配置以及100%服務交互的條件下動態(tài)地建立服務群體。最主要的由于其異構平臺的強大分布式優(yōu)勢,以及SUN公司針對智能家電中設備提供的JAVA2、J2ME、Pjava、Ejava、KVM和JavaCard等運行環(huán)境支持[7],更易于建立一個可靠、可維護、可擴展、自發(fā)的網(wǎng)絡體系,使這些軟硬件資源能較好的加入Jini群體(Jini群體稱之為“djinn”,拼為“gin”)中。
圖2展示了一個PDA與一個激光打印機在支持Jini的網(wǎng)絡中的互聯(lián)步驟:
■
圖2 Jini中設備交互示意圖
通常對于djinn中的實體對象我們要求它們有處理能力、內存、網(wǎng)絡功能和Java功能。但其實并不是所有家電設備都滿足這些要求,所以針對不同的家電設備,提出如下的研究方案。
3.1 具有完備功能的JVM的設備
這些設備有足夠的計算能力和內存,可安裝完備功能并支持遠程方法調用(RMI)的Java虛擬機。由于其成熟完備的Java環(huán)境很容易實現(xiàn)Jini啟用,這將使設備進入專門的計算入口,設備的一部分將專門為Jini結構所需的部分Java API服務。設備中JVM將可以進行RMI通信;創(chuàng)建和保存Java對象;上傳和下載Java對象和代理對象。從而可以在兩個方向上隔離了硬件,先上載到Jini查找服務后下載到服務客戶的本地代理代碼來提供;在服務設備上的本地JVM和由Jini程序寫的代碼允許客戶代理和硬件自身的調解[4]。通過設備上的JVM中介,設備甚至可以簡單地實現(xiàn)多種服務。如圖3所示。
3.2 擁有特定的JVM的設備
在智能家電中,象無線電話、手持設備、機頂盒等設備不具有足夠的計算能力和內存來安裝完備功能的JVM。可以裝載一些特定的JVM來加入djinn中,但必須支持起碼的網(wǎng)絡功能(如RMI)和起碼的Jini功能(如發(fā)現(xiàn)、加入和租用)。需要制造商在設備上提供jini發(fā)現(xiàn)和查找服務的接口類和租用相關的處理功能,以便對查找服務所分發(fā)的租用進行續(xù)租,此外還要求特定的JVM有足夠能力下載和運行這些服務。這種方式限制了設備的靈活性,同時定制的JVM有可能會拋出嚴重的安全問題。但是,對于這些問題,簡化設備總體可以緩和。
3.3 無JVM、無網(wǎng)絡功能和處理能力的設備
當前大部分的設備都是沒有上述功能的電器,在此,我們可以使用代理的概念,采用插入技術。將一個具有處理能力、內存、網(wǎng)絡功能和Jini功能的物理實體作為服務請求者和服務提供者(設備本身)之間的中間人或代理。例如,一個帶有完備功能的JVM的臺式機就可作為與之相連的一臺打印機的代理。
除了設備使用的JVM是共享之外,這種方法與第一種途徑十分相似,它仍然是一個完全的JVM,允許代碼的下載和完全的Jini平臺功能。然而,這和設備的實現(xiàn)最有可能是允許多個(或是不同的)物理設備被插入到一個完全的設備以獲得Jini應用環(huán)境的共享。但是此類設備不適用于實現(xiàn)服務請求者的角色。這種方案中,代理JVM作為請求設備與Jini群體的中間層。設備加載相應的java對象到代理JVM(該JVM通過物理接口與設備進行通信)中,委托代理實現(xiàn)jini發(fā)現(xiàn)、查找服務功能,并獲取jini租用[7]。如圖4所示。
■
圖4 無JVM和網(wǎng)絡、處理功能的設備jini應用示意圖
3.4 擁有網(wǎng)絡功能,但不一定有JVM和處理能力的設備
網(wǎng)絡打印機既是此類設備。此方案與上一種方案類似,不同的是使用網(wǎng)絡方式而不是物理連接的方式與一個具有完備JVM的設備相連。根據(jù)JVM存在與否,此類設備可以利用RMI或者其他的專用協(xié)議在網(wǎng)絡代理(網(wǎng)絡中間人)上注冊或者退出注冊。網(wǎng)絡代理還可以處理租用協(xié)商及其他一些與Jini相關的操作。較之上一種方案,此類設備必須更多的硬件設備來支持jini應用,用來接入網(wǎng)絡和互聯(lián)通信能力。但不用具有處理器、內存以及持久存儲器,都由網(wǎng)絡代理來提供。不過需要制造商提供設備和網(wǎng)絡代理之間的通信代理處理代碼。此類設備同樣不適用于實現(xiàn)服務請求者的角色。如圖5所示。
■
圖5 有網(wǎng)絡功能的設備jini應用示意圖
4 結束語
隨著智能化家電和數(shù)字化家電的發(fā)展,Jini給我們提供了一種行之有效的解決方案。本文提出了一種基于Jini的智能家電開發(fā)方案,利用Jini將設備和軟件抽象為服務,很好地支持了智能家電的動態(tài)群體形成和解散。針對不同的家電設備,采用不同的開發(fā)方案,將這些異構的軟硬件資源較好的加入到Jini服務群體。
Jini未來的方向如何將很值得人們期待,更好的與藍牙等無線協(xié)議互聯(lián),更強的網(wǎng)絡服務安裝、診斷功能會讓Jini更好地為服務。
參考文獻:
[1] W. Keith Edwards.Core Jini (2nd Edition)[M].Prentice Hall PTR,2000.
[2] S.Ilango Kumaran.Jini Technology:An Overview[M].Pearson Education,2001.
[3] Hinkmond Wong.Developing Jini Applications Using J2ME Technology[M].Pearson Education,2002.
[4] Jan Newmarch.Foundations of Jini 2 Programming[M].Apress,2006.
[5] 王躍飛.基于中間件的多Agent家庭網(wǎng)絡系統(tǒng)研究與實踐[D].合肥工業(yè)大學機械與汽車工程學院,2004.
[6] 鄧冬梅.在信息家電中啟用Jini技術的方案研究[J].中國科技信息,2005(21).
[7] 楊思忠,劉錦德,駱志剛.家庭網(wǎng)絡及相關技術[J].計算機應用,2000,20(7):24-28.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文