999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Jini查找服務(wù)的部署

2010-01-20 01:44:00李中林曾麗君
現(xiàn)代電子技術(shù) 2009年21期

李中林 李 輝 張 軍 曾麗君

摘 要:在Jini體系中,服務(wù)需要通過(guò)查找服務(wù)進(jìn)行注冊(cè),客戶(hù)通過(guò)查找服務(wù)發(fā)現(xiàn)感興趣的服務(wù)。服務(wù)和客戶(hù)可通過(guò)單播發(fā)現(xiàn)協(xié)議或廣播發(fā)現(xiàn)協(xié)議來(lái)定位查找服務(wù),單播發(fā)現(xiàn)協(xié)議在已知查找服務(wù)地址的情況下適用,否則需要使用廣播發(fā)現(xiàn)協(xié)議。為了充分發(fā)揮Jini技術(shù)優(yōu)勢(shì),提高系統(tǒng)效率和避免因采用廣播發(fā)現(xiàn)機(jī)制而帶來(lái)的“廣播風(fēng)暴”,通過(guò)設(shè)立公共查找服務(wù),提出一種簡(jiǎn)便可行查找服務(wù)部署方案。

關(guān)鍵詞:Jini;查找服務(wù);廣播發(fā)現(xiàn);單播發(fā)現(xiàn)

中圖分類(lèi)號(hào):TP393.01 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2009)21-135-03

Deployment of Jini Lookup Service

LI Zhonglin,LI Hui,ZHANG Jun,ZENG Lijun

(Science Institute,Air Force Engineering University,Xi′an,710051,China)

Abstract:In the Jini system,the service needs to register through the lookup service,and customers search interest services through lookup service.Service and customer can locate lookup service through unicast discovery protocol or broadcast discovery protocol.Unicast discovery is used when address of lookup service is known,otherwise,broadcast discovery protocol is needed.In order to make full use of Jini technology′s advantage,that is dynamic,plug and play,and avoid″broadcast storm″,the paper advances a possible simple lookup service deployment program.

Keywords:Jini;lookup service;broadcast discovery;unicast discovery

0 引 言

Jini是1999年1月Sun公司發(fā)布的一種基于Java的全新的面向動(dòng)態(tài)分布式計(jì)算的解決方案,是一種與協(xié)議、位置以及實(shí)現(xiàn)技術(shù)均無(wú)關(guān)的自診斷、自配置的服務(wù)網(wǎng)絡(luò)體系結(jié)構(gòu)[1-3]。Jini的設(shè)想十分簡(jiǎn)單:所有支持Jini的設(shè)備,可以是數(shù)字相機(jī)、打印機(jī)、PDA或者蜂窩式電話,只要插入到TCP/IP網(wǎng)絡(luò)中,就可以自動(dòng)發(fā)現(xiàn)并使用附近其它支持Jini的設(shè)備。把一個(gè)新設(shè)備添加到“網(wǎng)絡(luò)群體”中,只需要將其插接到網(wǎng)絡(luò)。Jini利用Java 平臺(tái),屏蔽機(jī)器平臺(tái)和操作系統(tǒng)的異構(gòu)性,將軟硬件和應(yīng)用程序等都抽象為服務(wù),其核心要素就是服務(wù)、查找服務(wù)和客戶(hù)。如圖1所示,對(duì)于服務(wù)和客戶(hù)而言,初始化工作都是定位查找服務(wù):服務(wù)尋找查找服務(wù)并注冊(cè)自己,客戶(hù)通過(guò)查找服務(wù)搜索所需服務(wù),具體工作過(guò)程可參考文獻(xiàn)。如果查找服務(wù)的位置是已知的,服務(wù)和客戶(hù)就可以使用單播發(fā)現(xiàn)協(xié)議直接與之聯(lián)系;如果位置不確定,服務(wù)和客戶(hù)需要先廣播UDP請(qǐng)求,查找服務(wù)將響應(yīng)此請(qǐng)求。

在實(shí)際應(yīng)用中,對(duì)于新接入網(wǎng)絡(luò)的設(shè)備而言,網(wǎng)絡(luò)環(huán)境是“陌生的”,設(shè)備(客戶(hù))可能不知道查找服務(wù)的準(zhǔn)確位置,其理想方法就是通過(guò)廣播發(fā)現(xiàn)機(jī)制來(lái)定位查找服務(wù)。但是從網(wǎng)絡(luò)需求的角度看廣播的代價(jià)是很昂貴的,廣播消息可能會(huì)被大多數(shù)路由器阻塞掉,這樣廣播就被限制在一個(gè)局域網(wǎng)中。此外,在現(xiàn)有Jini機(jī)制中,如果一個(gè)網(wǎng)段內(nèi)有多個(gè)服務(wù)需要注冊(cè)到其他網(wǎng)段的查找服務(wù)上,需要每個(gè)服務(wù)都要執(zhí)行發(fā)現(xiàn)協(xié)議發(fā)現(xiàn)查找服務(wù),下載服務(wù)代理,然后注冊(cè)服務(wù)。對(duì)于客戶(hù)在請(qǐng)求服務(wù)時(shí)同樣如此,這樣就沒(méi)有很好利用已有的服務(wù)注冊(cè)和請(qǐng)求信息。

本文主要提出一種查找服務(wù)的部署方案,改變服務(wù)注冊(cè)與客戶(hù)請(qǐng)求服務(wù)的方式,來(lái)盡量避免網(wǎng)絡(luò)中“廣播風(fēng)暴”以及減少服務(wù)注冊(cè)和請(qǐng)求的響應(yīng)時(shí)間。

1 單播發(fā)現(xiàn)和廣播發(fā)現(xiàn)[7]

1.1 單播發(fā)現(xiàn)

如果已經(jīng)知道查找服務(wù)所在的位置,就可以利用單播方式發(fā)現(xiàn)查找服務(wù),并直接向該地址請(qǐng)求查找服務(wù)。如果一個(gè)查找服務(wù)不在局域網(wǎng)范圍內(nèi),但是可以通過(guò)某種方式知道其網(wǎng)絡(luò)地址,例如家用網(wǎng)絡(luò)、工作單位的網(wǎng)絡(luò),或者是新聞組、電子郵件消息中所指出的網(wǎng)絡(luò),甚至也可能是電視中廣告的網(wǎng)絡(luò)等,那么這種發(fā)現(xiàn)方式是很適用的。

使用單播協(xié)議只需要一個(gè)LookupLocator類(lèi),它存在于net.jini.core.discovery包中,有兩種構(gòu)造函數(shù):

Package net.jini.core.discovery;

Public class LookupLocator {

LookupLocator(java.lang.string URL) throws java.net.MalformedURLException;

LookupLocator(java.lang.string host,int port);

}

在第一個(gè)構(gòu)造函數(shù)中,URL必須是“jini://host/”或者“jini://host:port/”。其中host是一個(gè)有效的域名地址或IP地址,port若無(wú)指定則為缺省值4 160。在LookupLocator類(lèi)構(gòu)造時(shí),并沒(méi)有執(zhí)行實(shí)際的查找。以第一種方式構(gòu)造類(lèi)時(shí),只是對(duì)URL從句法形式上做了檢測(cè),而在第二種構(gòu)造方式中則連句法檢測(cè)也沒(méi)有執(zhí)行。

1.2 廣播發(fā)現(xiàn)

UDP支持Jini的廣播發(fā)現(xiàn)機(jī)制,但是廣播對(duì)于網(wǎng)絡(luò)來(lái)說(shuō)是非常昂貴的,并且許多路由器會(huì)阻塞廣播數(shù)據(jù)包,因此通常將廣播限制在局域網(wǎng)內(nèi),具體則取決于網(wǎng)絡(luò)配置和廣播數(shù)據(jù)包的生存周期。

廣播發(fā)現(xiàn)機(jī)制需要使用三種對(duì)象:LookupDiscovery類(lèi)、DiscoveryListener接口和DiscoveryEvent對(duì)象。LookupDiscovery類(lèi)存在于net.jini.package包中,有兩種構(gòu)造函數(shù):

LookupDiscovery(java.lang.string[] groups);

LookupDiscovery(java.lang.string[] groups,Configuration config);

當(dāng)groups參數(shù)為NULL或LookupDiscovery.ALL_GROUPS時(shí),表示需要發(fā)現(xiàn)所有能夠達(dá)到的查找服務(wù),而不管它屬于哪個(gè)特定的組;當(dāng)為空列表或LookupDiscovery.NO_GROUPS時(shí),則不執(zhí)行任何查找,構(gòu)造之后可以調(diào)用setGroups方法來(lái)執(zhí)行查找;若用一個(gè)非空的groups列表作參數(shù)時(shí),表明需要在這些特定組中發(fā)現(xiàn)所有的查找服務(wù)。

由于查找服務(wù)會(huì)對(duì)廣播進(jìn)行響應(yīng),并且通常也不知道具體有多少個(gè)查找服務(wù)會(huì)做出響應(yīng),為了能夠在查找服務(wù)被發(fā)現(xiàn)時(shí)及時(shí)通告,需要注冊(cè)一個(gè)Lisenter并添加給LookupDiscovery對(duì)象,這個(gè)Listener必須實(shí)現(xiàn)DiscoveryListener接口。

Public void addDiscoveryListener(DiscoveryListener listen);

Package net.jini.discovery;

Public abstract interface DiscoveryListener

{

Public void discovered(DiscoveryEvent e);

Public void discarded(DiscoveryEvent e);

}

當(dāng)查找服務(wù)被發(fā)現(xiàn)時(shí),discovered方法被調(diào)用;當(dāng)應(yīng)用程序需要丟棄查找服務(wù)時(shí)discarded方法被調(diào)用,它通過(guò)在registrar對(duì)象上執(zhí)行discard方法來(lái)撤銷(xiāo)查找服務(wù)。

2 查找服務(wù)部署方案

2.1 部署方案

在實(shí)際組網(wǎng)過(guò)程中,為了充分發(fā)揮Jini自身的優(yōu)勢(shì)和避免因采用廣播發(fā)現(xiàn)機(jī)制而帶來(lái)的“廣播風(fēng)暴”,文獻(xiàn)[8]提出兩種方法:第一種是在每個(gè)網(wǎng)段都運(yùn)行同一查找服務(wù);第二種方法是使用組播隧道技術(shù),通過(guò)創(chuàng)建一個(gè)加入組播組的程序,把接收到的所有消息都轉(zhuǎn)發(fā)到另一網(wǎng)段中某主機(jī),同時(shí)它還從一個(gè)標(biāo)準(zhǔn)套接字讀取數(shù)據(jù),把接收的消息中繼到組播套接字。第一種方法意味著只有同一網(wǎng)段的服務(wù)可彼此找到,除非是為每個(gè)查找服務(wù)提供其對(duì)等體的名稱(chēng),使用單播發(fā)現(xiàn)使它們相互加入,從而組成聯(lián)邦。第二種方法需要在所有網(wǎng)段中分別運(yùn)行外部程序,才能實(shí)現(xiàn)不同網(wǎng)段中使用同一地址的組播數(shù)據(jù)之間的聯(lián)系。

本文采用的改進(jìn)方法是:利用單播與廣播相結(jié)合的方式,通過(guò)設(shè)置公共查找服務(wù)以期獲得最大的服務(wù)查找效率。具體做法如下:

(1) 合理分組:針對(duì)一組特定的服務(wù)設(shè)置專(zhuān)門(mén)的查找服務(wù)

例如,針對(duì)個(gè)人客戶(hù)而言,可以部署一個(gè)辦公類(lèi)查找服務(wù):主要接受辦公電腦(可以充當(dāng)服務(wù)發(fā)布的代理)、打印機(jī)、掃描儀等設(shè)備所提供的服務(wù)的注冊(cè);部署一個(gè)家電類(lèi)查找服務(wù):主要接受個(gè)人電腦(可以充當(dāng)服務(wù)發(fā)布的代理)、空調(diào)、電視、冰箱等設(shè)備所提供的服務(wù)的代理。

一旦查找服務(wù)啟動(dòng),可以向它提供一個(gè)組列表作為其命令行參數(shù)。服務(wù)通過(guò)指定其所屬的組列表,即可包括這種組信息。這是一個(gè)字符串?dāng)?shù)組,如:

import net.jini.jrmp.JrmpExporter;

com.sun.jini.reggie {

serverExporter = new JrmpExporter();

initialMemberGroups = new String[] { "OfficeLookupService" };

}

(2) 設(shè)置公共查找服務(wù):在每一網(wǎng)段的固定位置(例如網(wǎng)關(guān))設(shè)置查找服務(wù)

此處查找服務(wù)接受本網(wǎng)段內(nèi)所有服務(wù)的注冊(cè)信息和客戶(hù)的請(qǐng)求信息,并且也擔(dān)當(dāng)起安全管理的第一道防線,即檢查所注冊(cè)的服務(wù)是否實(shí)現(xiàn)了服務(wù)規(guī)范中所定義的接口。為了方便起見(jiàn),將此處查找服務(wù)定義為公共查找服務(wù)(Commonality Lookup Service,CLS)。

(3) 實(shí)時(shí)傳遞信息:在各網(wǎng)段內(nèi)公共查找服務(wù)之間傳遞服務(wù)的注冊(cè)信息和客戶(hù)的查詢(xún)請(qǐng)求,以提高服務(wù)查找的成功率。

2.2 服務(wù)注冊(cè)和客戶(hù)請(qǐng)求過(guò)程

那么經(jīng)改進(jìn)后,服務(wù)注冊(cè)和客戶(hù)請(qǐng)求的過(guò)程如圖2所示。

服務(wù)注冊(cè)時(shí),服務(wù)方將自己所提供服務(wù)的信息提交到本網(wǎng)段的CLS上,CLS首先對(duì)所注冊(cè)的服務(wù)進(jìn)行安全性檢查,確保所注冊(cè)的是真正的服務(wù)而不是惡意代碼。若通過(guò)檢查,CLS在本網(wǎng)段內(nèi)通過(guò)廣播發(fā)現(xiàn)來(lái)搜索是否有符合條件的查找服務(wù)。如果有,CLS將發(fā)送確認(rèn)信息給服務(wù)方,由服務(wù)方將服務(wù)代理發(fā)送給CLS,再由CLS將服務(wù)代理發(fā)送給特定的查找服務(wù)完成注冊(cè)。如果在本網(wǎng)段內(nèi)沒(méi)有搜索到合適的查找服務(wù),則由CLS將服務(wù)的注冊(cè)信息發(fā)送到其他網(wǎng)段的CLS,然后重復(fù)執(zhí)行上面的操作。

客戶(hù)請(qǐng)求時(shí),公共查找服務(wù)(CLS)先在已保存的曾經(jīng)請(qǐng)求過(guò)的服務(wù)中查找,有則直接返回服務(wù)代理給客戶(hù),否則再在本網(wǎng)段的各分組查找服務(wù)上查找,由于服務(wù)是按功能有選擇性地在相應(yīng)的查找服務(wù)上注冊(cè)的,CLS可根據(jù)客戶(hù)請(qǐng)求信息在本網(wǎng)段內(nèi)的相關(guān)查找服務(wù)中搜索服務(wù),如客戶(hù)請(qǐng)求一個(gè)打印服務(wù),CLS要先在辦

公類(lèi)的查找服務(wù)中搜索。如搜索成功,相應(yīng)的查找服務(wù)直接將服務(wù)代理發(fā)送給客戶(hù),如搜索不成功,可在本網(wǎng)段通過(guò)廣播發(fā)現(xiàn)協(xié)議在所有的查找服務(wù)中搜索。在本網(wǎng)段搜索不成功,通過(guò)各網(wǎng)段間的CLS傳遞客戶(hù)請(qǐng)求信息繼續(xù)在其他網(wǎng)段搜索。

服務(wù)租約失效時(shí),公共查找服務(wù)可以將某一服務(wù)不再有效的信息傳遞給其他網(wǎng)段的公共查找服務(wù),以保持服務(wù)的有效性和動(dòng)態(tài)性。

3 結(jié) 語(yǔ)

部署了公共查找服務(wù)后,服務(wù)和客戶(hù)都要把相應(yīng)的服務(wù)注冊(cè)和請(qǐng)求信息提交給了該網(wǎng)段的公共查找服務(wù),該公共查找服務(wù)雖不能直接接受服務(wù)的注冊(cè)或滿(mǎn)足客戶(hù)請(qǐng)求需要,但其保存有曾經(jīng)訪問(wèn)過(guò)的查找服務(wù)和請(qǐng)求過(guò)的服務(wù)的信息,有助于減少響應(yīng)時(shí)間,提高系統(tǒng)效率。在本文的這種部署方案中,廣播發(fā)現(xiàn)協(xié)議只在同一網(wǎng)段內(nèi)使用,不同網(wǎng)段的公共查找服務(wù)間交流服務(wù)注冊(cè)和請(qǐng)求信息時(shí)使用單播發(fā)現(xiàn)協(xié)議(因?yàn)楣膊檎曳?wù)的位置固定),這樣可有效避免廣播風(fēng)暴。

參考文獻(xiàn)

[1]封瑋,范寶德.Jini分布式軟件服務(wù)研究與實(shí)現(xiàn)[J].軟件時(shí)空,2006,12(3):231-233.

[2]朱永華,沈文楓,徐煒民,等.基于Jini的集群網(wǎng)絡(luò)并行計(jì)算平臺(tái)的構(gòu)建[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(11):60-62.

[3]蔣建文,王煦法,黃國(guó)銳,等.一種基于Jini構(gòu)建的多數(shù)據(jù)庫(kù)系統(tǒng)研究[J].計(jì)算機(jī)工程,2006,32(9):54-56.

[4]王倩,肖德寶.基于Jini分布式網(wǎng)絡(luò)的自管理[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,2004,34(5):146-149.

[5]劉德元,陳輝堂.Jini應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(8):72-74.

[6]鄧冬梅,劉宏.在信息家電中啟用Jini技術(shù)的方案研究[J].科技論壇,2005(21):15-16.

[7]胡光,陳青.基于Jini的查找服務(wù)實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2005,23(4):229-230.

[8]Keith Edwards.Jini核心技術(shù)[M].王召福,任鴻,劉作偉,譯.北京:機(jī)械工業(yè)出版社,2005.

[9]段躍興.在Jini中發(fā)現(xiàn)查找服務(wù)的方法與服務(wù)運(yùn)行[J].太原理工大學(xué)學(xué)報(bào),2004,35(3):341-343.

[10]Jini Technology Community Resource.http://www.jini.org/.2008.

作者簡(jiǎn)介 李中林 1986年出生,安徽六安人,碩士研究生。研究方向?yàn)榫W(wǎng)絡(luò)與信息系統(tǒng)。

主站蜘蛛池模板: 2021天堂在线亚洲精品专区| 99久久精品无码专区免费| 亚洲天堂首页| 另类重口100页在线播放| 欧美高清日韩| 亚亚洲乱码一二三四区| 亚洲日韩久久综合中文字幕| 久久人人爽人人爽人人片aV东京热| 国内精品久久久久久久久久影视| 日韩精品无码免费一区二区三区 | 欧美激情福利| 日韩a在线观看免费观看| 伊人成色综合网| 亚洲精品国偷自产在线91正片| 免费看黄片一区二区三区| 国产色爱av资源综合区| 国产激情无码一区二区免费| 孕妇高潮太爽了在线观看免费| 国产网站一区二区三区| 中文纯内无码H| 91精品小视频| 国产激情在线视频| 色综合狠狠操| 国产成人欧美| 精品国产aⅴ一区二区三区| 精品无码专区亚洲| 亚洲第一黄片大全| 免费可以看的无遮挡av无码| 精品国产一区91在线| 亚洲成人免费在线| 丝袜亚洲综合| AV老司机AV天堂| 亚洲欧洲日产国产无码AV| 久久激情影院| 国产综合色在线视频播放线视 | 亚洲精品视频网| 成人在线不卡| 91破解版在线亚洲| 久久综合色播五月男人的天堂| 欧美视频在线播放观看免费福利资源| 亚洲欧美自拍中文| 久久国产精品波多野结衣| 国产精品亚洲va在线观看| 欧美69视频在线| 青青国产成人免费精品视频| 欧美另类一区| 幺女国产一级毛片| 香蕉视频在线观看www| 亚洲精品桃花岛av在线| AV熟女乱| 99国产在线视频| 高清色本在线www| 四虎永久免费地址| 国产成人精品在线1区| 亚洲人成网站观看在线观看| 国产成人夜色91| 制服丝袜一区二区三区在线| 麻豆国产原创视频在线播放| 99热最新网址| 日韩欧美国产区| 亚洲成a∧人片在线观看无码| 亚洲成人精品| 热这里只有精品国产热门精品| 亚洲国产精品国自产拍A| 另类专区亚洲| 国产精品无码在线看| 日韩国产欧美精品在线| 国产成人精品综合| 99久久国产自偷自偷免费一区| 国产99视频精品免费观看9e| 欧美精品v日韩精品v国产精品| 免费观看精品视频999| 国产亚洲欧美日韩在线一区| 国产视频一二三区| 91无码人妻精品一区| 国产精品林美惠子在线观看| 亚洲精品色AV无码看| 亚洲成人一区在线| 国产精品极品美女自在线看免费一区二区| 亚洲无码视频图片| 免费中文字幕在在线不卡| 色悠久久久|