top
Loading...
Jini技術介紹(一)
?b>一:Jini白皮書什么是Jini?
Jini是Sun公司的研究與開發項目,它能極大擴展Java技術的能力。Jini技術可使范圍廣泛的多種硬件和軟件---即可與網絡相連的任何實體---能夠自主聯網。
Jini可以使人們極其簡單地使用網絡設備和網絡服務,就象今天我們使用電話一樣---通過網絡撥號即插即用。Jini的目標是最大限度地簡化與網絡的交互性。
Jini利用了Java技術的優勢。Jini包含了少量類庫格式的Java代碼和某些慣例,可在網絡上創建一個Java虛擬機的"王國",就象我們人類創造一個社區一樣。在這個王國里的人、設備、數據和應用程序等網絡公民均被動態地連接起來,從而能夠共享信息和執行任務。
主要趨勢---網絡的普及這個世界正在網絡化。例如,在今天,一個企業要想取得成功就必須建立網絡。商業網絡正在不斷擴大,而且已經能夠與供應商和客戶實現直接交互。與無線網絡的交互也幾乎成為家常便飯。企業和消費者都要求能與網絡進行更廣泛的交流。出差在外的人無不希望在到達飯店后就能把自己的計算機插入網絡接口,不但能與自己單位的工作環境進行交互工作,而且還能與飯店的本地服務,如打印機或傳真機等進行交互工作。父母可能希望只需使用移動電話或筆記本電腦就能與家里的攝像機相連,通過它來察看家里的情況。人們無不希望隨時隨地能夠連接和立即使用本地的定制服務。在不遠的將來,我們將看到網絡滲透到很多其它環境。例如,將會出現把電視機和立體聲設備等音頻/視頻設備與家庭辦公室的電腦和外設連接起來的網絡,并控制安全監視器和溫控恒溫器等網絡設備。電纜和ASDL等高帶寬媒介將為家庭提供全新的服務。服務供應商不斷為駕駛員提供越來越多的服務,網絡也必將隨之進入汽車領域。除導航系統外,游覽景點和當地餐館名單等本地服務也將出現在駕駛員的屏幕上。只要汽車與遠程診斷設備相連,它就能自動完成對汽車的維護,并在汽車出現問題時通知駕駛員。

商業機遇---網絡服務Jini所能帶來的商業機遇是新型的網絡服務。
例如,產品制造商將在基于網絡的產品上提供新的服務。例如,磁盤可被看作與網絡相連的存儲服務,能向磁帶和其它新型服務提供自動存儲備份。聯網的攝像機可能將提供諸如安全監視等新型成像服務。這些新的服務使制造商成為新型的網絡服務供應商。
Jini還能幫助傳統的服務供應商提供新型服務。
例如,某媒體服務供應商可能希望向某消費者的家庭打印機提供報紙? 服務。無線服務供應商可能希望通過蜂窩電話提供相似的服務。
Jini還可簡化對現有服務的管理。
在隔天交貨的情況里,Jini簡化了分布在各處的工人與網絡連通的方式。在個人銀行里,基于Jini的計算機和外設可簡化分行的系統管理。對于無線服務供應商,Jini可使蜂窩電話具備類似于電話的網絡功能:屏幕大小、處理能力、使所提供的服務根據每一部電話的特點而專門設計。
問題是……

問題是,在今天的環境中,聯網還是太復雜了。例如,無論是把PC連接到網絡上,還是使用聯網的打印機都非常復雜。只有經驗豐富的系統管理員才有能力處理裝載驅動程序、設置配置文件等復雜的工作。顯然,我們不可能指望一般消費者也能管理今天這樣復雜的網絡。
今天的網絡還很脆弱和很不靈活。對網絡稍加改動就可能造成不可挽救的大混亂。向網絡中添加諸如磁盤存儲等功能的過程也很復雜。例如,要想添加一個磁盤驅動器,我們就必須打開機箱,處理設置跳線器,并解決一系列復雜的設置問題。即使專家也會頭疼。
實際上,從消費者的角度看,他們所需要的只不過是把硬件和軟件插入聯網的環境,并立即就能使用可用的服務:就象我們今天插接電話一樣。在今天,當消費者從商店購買一部電話后,他不必對電話進行配置。消費者只需給電話服務供應商打一個電話,服務就會送上門。最后,消費者只需把電話插好,就能使用電話服務了。自主的聯網。
Jini的價值Jini的作用就是能簡化與網絡的交互性。
從消費者的角度看,消費者把可插接的設備和軟件插入網絡,就像今天插接一部電話一樣簡單。
從傳統服務供應商的角度看,Jini簡化了Services Delivery (服務提供)的管理。設備不但能向網絡推出增值服務,而且還能提供設備的屬性和功能。現在,服務供應商可以針對每臺設備設計服務。當然,Jini還將有可能打開一扇通向新的網絡化服務的大門。
從產品制造商的角度看,Jini打開了全新的市場。因為Jini簡化了設備向網絡提供增值服務的能力。所以,產品就不僅僅作為商品而投入競爭,而是作為增值服務的產品參與競爭。
從Java程序員的角度看,Jini簡化了編寫分布式應用程序的工作,因而,任何Java程序員都能利用基于Jini的新設備編寫應用程序和服務。因此,企業不再需要聘用有限的專家資源編寫分布式應用程序,任何Java程序員都能為基于Jini的網絡開發服務。
Jini的起源Bill Joy在1994年之前向Sun公司實驗室提交了一份包括以下三個主要概念的建議書:
可在所有平臺上運行的語言運行該語言的虛擬機,和允許分布式虛擬機像單一系統那樣工作的網絡化系統到1995年,這種語言和虛擬機相繼面市,即Java編程語言和Java虛擬機。但該系統的概念則仍保留在Sun公司的研究與開發實驗室,作進一步的研究和開發。這個系統的概念就是Jini。
Jini戰略部署與合作伙伴Sun公司部署了廣泛的戰略,力求將Jini推向市場。我們可以這樣說,Jini與任何向網絡化環境提供產品和/或服務的企業都密切相關。這包括傳統的設備制造商、服務供應商和軟件開發商。

Jini將如何進行授權?
為推動Jini的進一步創新,使其盡快被市場所接受,Jini源代碼將象Netscape公司的Mozilla模型一樣向所有開發商公開。為確保兼容性和質量,正在考慮對商業產品進行標記。圍繞授權方式的很多具體細節目前仍在最后確定過程之中。擬議中的授權草案將于今年8月公布。
Jini技術概述
Jini技術可劃分為兩個范疇:體系結構和分布式編程。此外,還將提供在Jini上運行的網絡服務。
基礎結構
Jini基礎結構解決設備和軟件如何與網絡連接并進行注冊等基本問題。

基礎結構的第一種要素稱作Discovery and Join (發現與聯合)。Discovery and Join解決設備和應用程序在對網絡一無所知的情況下如何向網絡進行首次注冊這樣的難題。
基礎結構的第二個要素是Lookup (搜索)。Lookup可被看作網絡中所有服務的公告板。
Network Services ---網絡服務Other Services ---其它服務Leasing ---租用Transactions ---交易Distributed Event---分布式事件Other OS ---其它操作系統Other CPU ---其它CPU DISCOVERY AND JOIN 設備或應用程序插入網絡后需要完成的第一個任務就是發現該網絡,并使網絡發現該設備或應用程序。我們之所以使用Discovery and Join這樣的說法,是因為設備或應用程序事前不可能對網絡有任何了解。
Discovery的工作原理如下:
當基于Jini的設備插入網絡后,它就通過一個眾所周知的端口向網絡發送一個512字節的多路廣播Discovery包。在其它信息中,該包包含對自己的引用。
Jini Lookup在眾所周知的端口上進行監聽。當接收到Discovery包后,Lookup就利用該設備的接口將Lookup的接口傳遞回插接的設備或應用程序。
現在,該設備或應用程序已經發現了該網絡,并準備將其所有特性上載到Jini Lookup。上載特性是Discovery and Join中Join這方面的特性。
現在該設備或應用程序使用在Discovery階段所接收到的Lookup接口與網絡相連。上載到Lookup的特性包括該設備或應用程序所提供的所有增值服務(如驅動程序、幫助向導、屬性等)。
LookupLookup是網絡上所有服務的網絡公告板。Lookup不但存儲著指向網絡上服務的指針,而且還存儲著這些服務的代碼和/或代碼指針。
例如,當打印機向Lookup注冊時,打印機將打印機驅動程序或驅動程序接口上載到Lookup。當客戶機需要使用打印機時,該驅動程序和驅動程序接口就會從Lookup下載到客戶機。這樣,就不必事先把驅動程序裝載到客戶機上。
打印機還可能把其它增值服務裝載入Lookup。例如,打印機可能存儲關于自己的屬性(如它是否支持postscript,或它是否為彩色打印機)。打印機還可能存儲可在客戶機上運行的幫助向導。
如果網絡上沒有Lookup,則網絡就會使用一個Peer Lookup (對等Lookup )程序。當需要服務的客戶機在網絡上找不到Lookup時,Peer Lookup就開始工作。在這種情況下,客戶機可發送與Lookup所用的相同的Discovery and Join包,并要求任何服務供應商進行注冊。隨后,服務供應商就會在客戶機上注冊,盡管那不是Lookup。

分布式編程Jini分布式編程為Java增添了創建分布式系統所必需的其它功能。尤其是Jini分布式編程可提供租用、分布式交易和分布式事件。
租用租用與租用一套公寓很類似。我們在租用一套公寓時,一般會商定使用該公寓的時間。類似地,在Jini中,對象彼此之間商定租期。例如,當某設備使用Discovery and Join協議發現網絡時,它就注冊一段租用時間。在租約到期之前,該設備必須重新商定租期。這樣,如果租約到期或設備拔下后,該設備在Lookup中的記錄就會被自動刪除。這就是分布式垃圾收集的工作原理。
分布式事件在單一的計算機中,事件肯定能被接收方接收到,序列也肯定能按照順序進行。
但在分布式環境中,分布的事件可能不是按照順序被接收,或者,某個事件還可能丟失。
為便于在Java環境中處理分布的事件,Jini為分布的事件提供了一個簡單的Java API。例如,當一個分布的事件發生時,該事件都帶有一個事件號和序列號。利用這種信息,接收方就能檢查事件是否丟失(序列號丟失)或事件是否按照順序接收(序列號順序不對)到。
分布式交易在分布式Java環境中,有時需要一種很簡便的方法,來確保在整個交易完成之前,在該交易中發生的所有事件都被真正提交了(兩階段提交)。
為便于進行此類分布式計算,Jini提供了一種簡單的Java API。該API可使對象起動一個能管理交易的交易管理器。每個參與交易的對象都向交易管理器注冊。
當交易發生時,如果某個參與的對象說,交易中的某個事件沒有發生,則此信息就被送回交易管理器。隨后,交易管理器就告訴所有參與的對象回滾(rool back)到前一個已知狀態。類似地,如果所有對象都完成了其交易的過程,則整個交易就向前進行。
Jini上的網絡服務在Jini基礎結構和分布式編程之上,可提供便于分布式計算的網絡服務。JavaSpace就是這樣的一種網絡服務。
欲知有關JavaSpace的詳細情況,請訪問http://java.sun.com/products/javaspace我們期待著將來在Jini上建立更多其它的網絡服務。
欲知有關Jini技術的詳細情況,請訪問http://java.sun.com/products/jini
作者您好,暫時無法聯系上您,請看這里
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗