標籤: 暫無標籤

Jini(Java Intelligent Network Infrastructure)是Sun公司的研究與開發項目,它能極大擴展Java技術的能力。Jini技術可使範圍廣泛的多種硬體和軟體---即可與網路相連的任何實體---能夠自主聯網。

一:Jini白皮書什麼是Jini?

Jini是Sun公司的研究與開發項目,它能極大擴展Java技術的能力。Jini技術可使範圍廣泛的多種硬體和軟體---即可與網路相連的任何實體---能夠自主聯網。

Jini可以使人們極其簡單地使用網路設備和網路服務,就象今天我們使用電話一樣---通過網路撥號即插即用。Jini的目標是最大限度地簡化與網路的交互性。

Jini利用了Java技術的優勢。Jini包含了少量類庫格式的Java代碼和某些慣例,可在網路上創建一個Java虛擬機的"王國",就象我們人類創造一個社區一樣。在這個王國里的人、設備、數據和應用程序等網路公民均被動態地連接起來,從而能夠共享信息和執行任務。

主要趨勢---網路的普及這個世界正在網路化。例如,在今天,一個企業要想取得成功就必須建立網路。商業網路正在不斷擴大,而且已經能夠與供應商和客戶實現直接交互。與無線網路的交互也幾乎成為家常便飯。企業和消費者都要求能與網路進行更廣泛的交流。出差在外的人無不希望在到達飯店后就能把自己的計算機插入網路介面,不但能與自己單位的工作環境進行交互工作,而且還能與飯店的本地服務,如印表機或傳真機等進行交互工作。父母可能希望只需使用行動電話或筆記本電腦就能與家裡的攝像機相連,通過它來察看家裡的情況。人們無不希望隨時隨地能夠連接和立即使用本地的定製服務。在不遠的將來,我們將看到網路滲透到很多其它環境。例如,將會出現把電視機和立體聲設備等音頻/視頻設備與家庭辦公室的電腦和外設連接起來的網路,並控制安全監視器和溫控恆溫器等網路設備。電纜和ASDL等高帶寬媒介將為家庭提供全新的服務。服務供應商不斷為駕駛員提供越來越多的服務,網路也必將隨之進入汽車領域。除導航系統外,遊覽景點和當地餐館名單等本地服務也將出現在駕駛員的屏幕上。只要汽車與遠程診斷設備相連,它就能自動完成對汽車的維護,並在汽車出現問題時通知駕駛員。商業機遇---網路服務Jini所能帶來的商業機遇是新型的網路服務。

例如,產品製造商將在基於網路的產品上提供新的服務。例如,磁碟可被看作與網路相連的存儲服務,能向磁帶和其它新型服務提供自動存儲備份。聯網的攝像機可能將提供諸如安全監視等新型成像服務。這些新的服務使製造商成為新型的網路服務供應商。

Jini還能幫助傳統的服務供應商提供新型服務。

例如,某媒體服務供應商可能希望向某消費者的家庭印表機提供報紙列印服務。無線服務供應商可能希望通過蜂窩電話提供相似的服務。

1 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月公布。

2 JINI -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
上一篇[1980年10月6日]    下一篇 [咪路]

相關評論

同義詞:暫無同義詞