網(wǎng)絡(luò)即插即用_第1頁
網(wǎng)絡(luò)即插即用_第2頁
網(wǎng)絡(luò)即插即用_第3頁
網(wǎng)絡(luò)即插即用_第4頁
網(wǎng)絡(luò)即插即用_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

中間件技術(shù)第11章網(wǎng)絡(luò)即插即用中間件知識點:網(wǎng)絡(luò)即插即用概念Jini體系結(jié)構(gòu)Jini核心服務(wù)Jini代理結(jié)構(gòu)重點:Jini體系結(jié)構(gòu)概述當(dāng)今的計算主體是普遍而且廣泛存在著的動態(tài)分布式計算。——提出了互操作需求SunMicrosystems于1999年提出Jini技術(shù)。Jini系統(tǒng)著力于使網(wǎng)絡(luò)變成一個更富有動態(tài)性的環(huán)境,可以靈活地增加和刪除服務(wù)。Jini系統(tǒng)的目標(biāo)是將網(wǎng)絡(luò)變成一個易組織、易管理的環(huán)境,通過這個環(huán)境,用戶能夠找到感興趣的資源并加以利用。Jini體系結(jié)構(gòu)的環(huán)境假設(shè):⑴一個具有合理延遲的網(wǎng)絡(luò);Jini主要依賴于Java的移動代碼特性;——RMI網(wǎng)絡(luò)延遲不能影響到Jini系統(tǒng)的性能。⑵具有一定的內(nèi)存和處理能力的設(shè)備;沒有內(nèi)存或處理能力的設(shè)備,則存在一個即有處理能力又帶有內(nèi)存的代理。希望所有的網(wǎng)絡(luò)成員都擁有所需的最少的計算能力、內(nèi)存和通信能力。11.1續(xù)Jini體系結(jié)構(gòu)的環(huán)境假設(shè):⑶每個設(shè)備都裝備一個Java虛擬機(jī);Java虛擬機(jī)的不同版本,內(nèi)存占用不同。⑷服務(wù)組件利用Java實現(xiàn)。所有服務(wù)組件必須以Java對象的形式存在,不要求必須是Java服務(wù)的實現(xiàn),只需要一個Java包裝器。——RMI方便服務(wù)的請求者能夠動態(tài)地下載或運行代碼。11.1續(xù)11.2Jini歷史Jini與JavaJini的歷史就是Java的歷史;Oak語言——1990年實現(xiàn)一種為嵌入式處理器編寫程序的可移植工具。Java語言——1995年可從Web服務(wù)器上下載applet小程序,并在瀏覽器內(nèi)安全執(zhí)行。設(shè)備之間移動代碼、平臺無關(guān)、安全性、簡潔等。Jini——1999年——面向消費類電子產(chǎn)品把大量的設(shè)備和軟件服務(wù)簡單而可靠地組織起來協(xié)同工作。11.3系統(tǒng)目標(biāo)最終目標(biāo)⑴提供一個能夠幫助不同網(wǎng)絡(luò)用戶在任何網(wǎng)絡(luò)群體自然地完成發(fā)現(xiàn)、加入和參與的基礎(chǔ)設(shè)施。⑵提供一種基礎(chǔ)設(shè)施,實現(xiàn)零安裝和零配置?!凹床寮从谩倍恰凹床寮凑埱蟆薄"峭ㄟ^把所有的對象都處理為服務(wù),提供一種以服務(wù)網(wǎng)絡(luò)為中心的體系結(jié)構(gòu),屏蔽服務(wù)的差別。⑷提供一種能處理部分失敗,實現(xiàn)自愈合的網(wǎng)絡(luò)體系結(jié)構(gòu)。11.4核心概念核心概念1.服務(wù)2.查找服務(wù)3.租約4.事件Jini體系結(jié)構(gòu)的目標(biāo)就是將一組設(shè)備和軟件聯(lián)合起來形成一個單一的,動態(tài)的分布式系統(tǒng)。Jini體系提供簡單的訪問和輕松的管理。1.服務(wù)Jini體系結(jié)構(gòu)最重要的核心。服務(wù)一個服務(wù)是具有一定功能、可被用戶、程序或其他服務(wù)所使用的實體。從服務(wù)實現(xiàn)角度看,服務(wù)是一種Java語言的對象。從用戶的觀點看,只關(guān)心服務(wù)的功能和操作界面。Jini系統(tǒng)是由一群服務(wù)所組成的用于完成特定任務(wù)的聯(lián)合體。Jini的動態(tài)特性使服務(wù)可以根據(jù)用戶的需求隨時地加入或離開一個Jini系統(tǒng)。Jini系統(tǒng)中,服務(wù)之間使用服務(wù)協(xié)議進(jìn)行通信。11.4續(xù)11.4續(xù)2.查找服務(wù)查找服務(wù)是Jini體系結(jié)構(gòu)中的一個基本組成部分,為系統(tǒng)中可用的服務(wù)提供集中的注冊機(jī)制。Jini系統(tǒng)中的對象是通過查找服務(wù)來實現(xiàn)相互發(fā)現(xiàn)和交互的。查找服務(wù)是Jini系統(tǒng)與用戶之間以及Jini系統(tǒng)之間相互聯(lián)系的關(guān)鍵紐帶。網(wǎng)絡(luò)上的每個查找服務(wù)都可以為一個或多個系統(tǒng)提供服務(wù),每個系統(tǒng)也可以有一個或多個查找服務(wù)支持。查找服務(wù)中注冊的對象也可以是其他查找服務(wù),或者是名稱和目錄解析服務(wù),從而實現(xiàn)聯(lián)邦。11.4續(xù)2.查找服務(wù)服務(wù)要加入到查找服務(wù)中,即注冊,需要通過發(fā)現(xiàn)協(xié)議尋找一個合適的查找服務(wù),通過加入?yún)f(xié)議實現(xiàn)具體的加入過程。查找服務(wù)提供了對可供服務(wù)的服務(wù)項目(代理和屬性)的管理。代理由服務(wù)提供,表明該服務(wù)所提供的功能。發(fā)布在查找服務(wù)上的服務(wù)的屬性,可便于用戶尋找匹配的服務(wù)。11.4續(xù)代理代理是代表遠(yuǎn)程對象的本地對象,是序列化的Java對象,在服務(wù)中是唯一的。代理具有和遠(yuǎn)程服務(wù)相同的編程接口,用戶通過代理與相應(yīng)遠(yuǎn)程服務(wù)通信,屏蔽下層網(wǎng)絡(luò)細(xì)節(jié)。當(dāng)其他的實體在找到服務(wù)項目時,代理對象就會被復(fù)制到該實體的java虛擬機(jī),實體通過調(diào)用代理對象的方法來使用服務(wù)。代理查找服務(wù)代理服務(wù)提供者代理服務(wù)請求者發(fā)現(xiàn)協(xié)議+查找協(xié)議發(fā)現(xiàn)協(xié)議+加入?yún)f(xié)議面向服務(wù)的協(xié)議11.4續(xù)系統(tǒng)運行過程1.服務(wù)提供者通過發(fā)現(xiàn)協(xié)議找到查找服務(wù),再由加入?yún)f(xié)議將所提供的服務(wù)注冊到查找服務(wù)中,注冊信息包括:服務(wù)標(biāo)識號、服務(wù)代理和服務(wù)屬性。服務(wù)代理從服務(wù)提供者上載到查找服務(wù)。2.服務(wù)請求者通過發(fā)現(xiàn)協(xié)議找到查找服務(wù),再由查找協(xié)議按照所需服務(wù)的類型和屬性尋找服務(wù)。找到匹配的服務(wù)后,再將該服務(wù)的代理下載到本地。3.服務(wù)請求者通過代理使用服務(wù),而代理和服務(wù)提供者之間以特定的服務(wù)協(xié)議進(jìn)行通信。11.4續(xù)代理服務(wù)請求者只需知道代理所支持的java語言接口就可以調(diào)用服務(wù);代理和服務(wù)提供者之間可以采用任何面向服務(wù)的協(xié)議進(jìn)行通信,并且通信協(xié)議對客戶透明。通過代理,服務(wù)請求者可以透明地使用服務(wù),而無需了解服務(wù)的實現(xiàn)細(xì)節(jié)。11.4續(xù)3.租約基本思想不允許使用者在無限制的時間內(nèi)訪問資源,資源只是在一段有限的時間內(nèi)“借給”某使用者;Jini租約要求那些能證明其確實與某部分資源密切相關(guān)的使用者才能繼續(xù)占有資源。租約提供了系統(tǒng)自行維護(hù)的能力,保證部分失敗能被識別并清除,減少人為干預(yù)。租約提供了釋放Jini中未用或不需要的資源的辦法。11.4續(xù)3.租約基本思想對客戶而言,當(dāng)租約到期時,資源就被回收;如果客戶在租約未到期前就已經(jīng)完成對資源的使用,則客戶可以顯示地取消租約,釋放資源;假如還要繼續(xù)使用資源,客戶則要不斷地更新租約。租約機(jī)制不僅適用于客戶,也適用于資源將其服務(wù)注冊到查找服務(wù)的過程。作用⑴使局部的錯誤不會破壞整個系統(tǒng)。⑵使得Jini系統(tǒng)的成員所使用的固定存儲空間不需要維護(hù)。⑶允許第三方代表另外的實體實施租借。11.4續(xù)4.事件分布式事件模型是在分布式對象之間通知狀態(tài)變化信息的機(jī)制。Jini事件模型與普通事件模型差別:⑴Jini接收事件的接口是一個RMIRemote接口;⑵Jini模型的類和方法特別少;⑶Jini采用第三方代管程序?qū)崿F(xiàn)事件的發(fā)送和響應(yīng)。分布式事件接口模型:⑴指定當(dāng)事件發(fā)生時被用來發(fā)送通知的接口。⑵指定通知中所包含的信息。⑶允許通知傳送具有受保證的不同等級。⑷支持可調(diào)度通知的不同策略。⑸允許插入對象用于收集、存儲、過濾和轉(zhuǎn)發(fā)通知。11.5Jini的組成Jini與Java相應(yīng)部分比較11.5續(xù)Jini組成部分⑴基礎(chǔ)設(shè)施用于構(gòu)建一個Jini聯(lián)邦系統(tǒng)。⑵編程模型一組接口,用于構(gòu)建可靠的服務(wù)。⑶服務(wù)Jini系統(tǒng)中的實體。11.5續(xù)⑴基礎(chǔ)設(shè)施基礎(chǔ)設(shè)施定義了最小化的Jini技術(shù)的核心。目標(biāo)為設(shè)備、服務(wù)和用戶提供相應(yīng)的機(jī)制用于發(fā)現(xiàn)、加入網(wǎng)絡(luò)或離開網(wǎng)絡(luò)。構(gòu)成發(fā)現(xiàn)協(xié)議和加入?yún)f(xié)議查找服務(wù)——相當(dāng)于目錄服務(wù)器分布式安全系統(tǒng)遠(yuǎn)程方法調(diào)用RMI——允許下載服務(wù)代理11.5續(xù)⑴基礎(chǔ)設(shè)施Jini的發(fā)現(xiàn)和加入?yún)f(xié)議定義了各種服務(wù)加入Jini系統(tǒng)中的方法。查找服務(wù)反映了當(dāng)前系統(tǒng)中成員的情況及幫助系統(tǒng)中成員尋找其他合作者;RMI定義了Jini服務(wù)之間通信的基礎(chǔ)機(jī)制;分布式安全模型及其實現(xiàn)定義了服務(wù)項目如何標(biāo)識以及是否有權(quán)限完成某項動作。11.5續(xù)⑵編程模型將單臺Java虛擬機(jī)的編程模型擴(kuò)展到適用于多臺虛擬機(jī)上的分布式對象協(xié)作的情形。租借模型通過對資源引用加上時間的限制,解決了分布式系統(tǒng)中資源的動態(tài)分配和回收問題。分布式事件模型使事件能夠被第三方托管程序收集、存儲、過濾和轉(zhuǎn)發(fā)通知,從而實現(xiàn)分布式對象之間控制流和相關(guān)數(shù)據(jù)的傳遞。事務(wù)處理模型通過運用兩階段提交協(xié)議,使Jini應(yīng)用更加可靠和健壯,從而避免部分失敗可能造成的嚴(yán)重后果。11.5續(xù)⑶服務(wù)Jini技術(shù)的基礎(chǔ)設(shè)施和編程模型都是用來使服務(wù)能夠在網(wǎng)絡(luò)中被發(fā)布和發(fā)現(xiàn)。在Jini體系結(jié)構(gòu)中,任何實體均被看做服務(wù)。實體可以是硬件、軟件或者是軟硬件的結(jié)合。服務(wù)被標(biāo)識為Java對象,每個服務(wù)都有一個接口,定義了可以向服務(wù)請求的操作。典型Jini服務(wù):⑴查找服務(wù)⑵JavaSpaces服務(wù)——可選的分布式對象保存機(jī)制⑶事務(wù)管理器服務(wù)11.6服務(wù)體系結(jié)構(gòu)簡介發(fā)現(xiàn)和查找協(xié)議當(dāng)某個服務(wù)為了注冊需要找到查找服務(wù)時,使用發(fā)現(xiàn)協(xié)議;當(dāng)服務(wù)已經(jīng)找到查找服務(wù)并希望加入時,使用加入?yún)f(xié)議;服務(wù)請求者想使用服務(wù)時,首先找到查找服務(wù),然后使用查找協(xié)議進(jìn)行匹配。11.6續(xù)發(fā)現(xiàn)協(xié)議組播請求協(xié)議用于一個應(yīng)用或服務(wù)首次激活時,尋找附近活躍的查找服務(wù)。組播通告協(xié)議查找服務(wù)用此協(xié)議聲明自己的存在。單播發(fā)現(xiàn)協(xié)議用于當(dāng)一個應(yīng)用或服務(wù)已經(jīng)知道了要連接的特定查找服務(wù)時。單播協(xié)議用于直接連向某查找服務(wù)。11.6續(xù)系統(tǒng)運行過程⑴服務(wù)提供者通過組播請求利用發(fā)現(xiàn)協(xié)議找到本地網(wǎng)絡(luò)中的查找服務(wù)。⑵服務(wù)提供者的服務(wù)對象上傳到查找服務(wù)中,完成加入過程。⑶客戶利用單播發(fā)現(xiàn)或組播發(fā)現(xiàn)協(xié)議找到查找服務(wù),然后利用查找協(xié)議,通過類型匹配定位相應(yīng)的服務(wù)。⑷客戶將服務(wù)對象代理下載到本地的Java虛擬機(jī)上。⑸客戶通過服務(wù)對象代理直接與服務(wù)提供者通信。11.4續(xù)系統(tǒng)運行過程服務(wù)的代理查找服務(wù)服務(wù)的代理客戶查找服務(wù)的代理發(fā)現(xiàn)協(xié)議發(fā)現(xiàn)協(xié)議面向服務(wù)的協(xié)議加入?yún)f(xié)議查找協(xié)議服務(wù)提供者服務(wù)的代理查找服務(wù)的代理⑴⑵⑶⑷⑸⑹⑺11.6續(xù)系統(tǒng)運行過程⑴服務(wù)提供者在網(wǎng)絡(luò)中組播一組希望注冊自己服務(wù)的請求數(shù)據(jù)包,請求獲得查找服務(wù)對象的引用。⑵當(dāng)查找服務(wù)偵聽到注冊請求信息時,根據(jù)注冊請求數(shù)據(jù)包中的信息,回送查找服務(wù)的代理給服務(wù)提供者。⑶服務(wù)提供者調(diào)用查找服務(wù)代理進(jìn)行注冊,將服務(wù)對象的代理上載到查找服務(wù),實現(xiàn)注冊。⑷客戶首先通過組播請求找到查找服務(wù),獲得查找服務(wù)的代理。11.6續(xù)系統(tǒng)運行過程⑸客戶程序通過查找服務(wù)代理,請求特定類型的服務(wù);⑹查找服務(wù)查找接口,返回該類型或子類型的服務(wù)代理給客戶。⑺客戶通過服務(wù)代理與服務(wù)提供者直接交互。11.7基礎(chǔ)設(shè)施查找服務(wù)基礎(chǔ)設(shè)施是Jini體系結(jié)構(gòu)的核心。查找服務(wù)是Jini群體基礎(chǔ)設(shè)施的核心部分。查找服務(wù)為加入Jini群的設(shè)備和服務(wù)提供了一種集中的注冊機(jī)制。傳統(tǒng)的分布式定位服務(wù)⑴服務(wù)請求者必須提前與命名或注冊服務(wù)進(jìn)行綁定。⑵只支持基于名字的查詢模型。⑶命名服務(wù)中保存的服務(wù)條目是靜態(tài)的。⑷存在單點失敗的情況。11.7續(xù)查找服務(wù)Jini查找服務(wù)新特性⑴無需提前綁定⑵基于服務(wù)類型的查詢⑶動態(tài)的服務(wù)條目⑷避免單點失?、商峁┓?wù)提供者的代理和用戶接口bean⑹可進(jìn)行特定查詢和精確查詢查找接口⑴服務(wù)注冊器接口⑵服務(wù)項類⑶服務(wù)模板類11.7續(xù)發(fā)現(xiàn)協(xié)議⒈組播請求協(xié)議被服務(wù)提供者和服務(wù)請求者用來定位一個附近的查找服務(wù)。組播請求客戶組播響應(yīng)服務(wù)器組播請求服務(wù)器組播響應(yīng)客戶組播地址發(fā)送組播請求監(jiān)聽組播請求使用單播發(fā)現(xiàn)響應(yīng)11.7續(xù)發(fā)現(xiàn)協(xié)議組播請求協(xié)議工作過程⑴針對服務(wù)請求者和服務(wù)提供者發(fā)現(xiàn)查找服務(wù)組播請求客戶向某個組播請求服務(wù)器監(jiān)聽的組播地址發(fā)送數(shù)據(jù)包。組播響應(yīng)服務(wù)器監(jiān)聽通過單播發(fā)現(xiàn)協(xié)議返回的應(yīng)答。服務(wù)提供者/服務(wù)請求者每隔一段時間間隔發(fā)送組播請求。把查找服務(wù)的ID增加到組播響應(yīng)服務(wù)器維護(hù)的已知的查找服務(wù)ID集中。11.7續(xù)發(fā)現(xiàn)協(xié)議組播請求協(xié)議工作過程⑵針對查找服務(wù)組播請求服務(wù)器將一個數(shù)據(jù)套接字與公開的組播請求端點進(jìn)行綁定,用于接收組播請求。組播響應(yīng)客戶對組播請求做出響應(yīng)。根據(jù)組播請求中的服務(wù)ID做相應(yīng)操作。使用單播發(fā)現(xiàn)協(xié)議做出響應(yīng)。11.7續(xù)發(fā)現(xiàn)協(xié)議⒉組播通告協(xié)議查找服務(wù)使用組播通告協(xié)議向指定的組播范圍內(nèi)的關(guān)注方宣布其存在性。參與者組播通告服務(wù)器:存在于服務(wù)提供者/服務(wù)請求者處。組播通告客戶:存在于查找服務(wù)上。工作過程⑴針對查找服務(wù)⑵針對監(jiān)聽組播通告的服務(wù)提供者/服務(wù)請求者11.7續(xù)發(fā)現(xiàn)協(xié)議⒊單播發(fā)現(xiàn)協(xié)議要求服務(wù)提供者/服務(wù)請求者提前知道查找服務(wù)的位置單播發(fā)現(xiàn)協(xié)議應(yīng)用環(huán)境建立TCP連接發(fā)送單播請求發(fā)送單播響應(yīng)查找服務(wù)位置已知服務(wù)提供者/服務(wù)請求者查找服務(wù)建立TCP連接發(fā)送單播請求發(fā)送單播響應(yīng)查找服務(wù)做出響應(yīng)服務(wù)提供者/服務(wù)請求者查找服務(wù)11.7續(xù)加入?yún)f(xié)議加入?yún)f(xié)議制定了服務(wù)提供者在查找服務(wù)中注冊時必須遵守的規(guī)則。⑴服務(wù)注冊器接口——ServiceRegistrar對象⑵服務(wù)項類——ServiceItem對象⑶服務(wù)注冊接口——ServiceRegistration對象ServiceRegistrar對象ServiceRegistration對象服務(wù)對象獲得查找服務(wù)的代理完成注冊注冊服務(wù)11.7續(xù)客戶搜索服務(wù)請求者在通過發(fā)現(xiàn)協(xié)議找到查找服務(wù)后,將通過服務(wù)匹配找到自己所需的服務(wù)。⑴服務(wù)注冊器接口ServiceRegistrar對象Lookup()方法⑵服務(wù)模板類匹配字段:服務(wù)ID、服務(wù)類型和屬性⑶服務(wù)匹配類返回多個符合要求的服務(wù)ServiceMatches對象11.7續(xù)安全Jini的安全性建立在Java平臺的安全性基礎(chǔ)上。⑴Java平臺安全模型Java提供多種安全API,支持?jǐn)?shù)字簽名、JAR文件,消息摘要、訪問控制列表等。⑵Jini安全策略文件許可設(shè)定對相關(guān)的文件進(jìn)行訪問。所有代碼都通過一個代碼基被授予一組對文件的操作權(quán)限。代碼基是一個涉及地址的URL集合,代碼可由此得到加載。套接字許可設(shè)定在規(guī)定端口進(jìn)行網(wǎng)絡(luò)訪問的權(quán)限。11.8編程模型分布式事件模型本地事件與分布式事件事件:某個軟件實體狀態(tài)上的改變。本地事件同一地址空間上軟件實體狀態(tài)的改變。分發(fā)速度快、可靠、良序性、可類型化分布式事件不同地址空間中兩個或者多個軟件實體所發(fā)生的狀態(tài)的改變。分發(fā)速度慢、不可靠、不具有良序性、類型多變11.8續(xù)分布式事件模型Jini對分布式事件的處理Jini系統(tǒng)中,將所有的事件都抽象為遠(yuǎn)程事件。遠(yuǎn)程事件屬性事件序列號生成事件的原對象的引用事件類型標(biāo)識符遠(yuǎn)程對象事件發(fā)生器事件使用者遠(yuǎn)程事件監(jiān)聽者監(jiān)聽者方法11.8續(xù)租借模型基本思想不再保證可以在無限制的時間內(nèi)訪問資源,資源只是在一段固定時間內(nèi)租借給某個使用者。租借時間到期后,如果資源使用者還想繼續(xù)使用資源,則必須續(xù)訂租期。租借一種合約,可在一個已經(jīng)協(xié)定好的時間段內(nèi)使用資源或者服務(wù)。出租者和承租者優(yōu)缺點使得Jini系統(tǒng)具有自愈合、自管理、自配置的優(yōu)點。編程復(fù)雜。11.8續(xù)事務(wù)模型分布式事務(wù)Jini系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論