專利名稱:分布式系統(tǒng)中的動(dòng)態(tài)查找服務(wù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及數(shù)據(jù)處理系統(tǒng),尤其涉及分布式系統(tǒng)中的動(dòng)態(tài)查找服務(wù)。
背景技術(shù):
查找服務(wù)包括網(wǎng)絡(luò)服務(wù)位于分布式系統(tǒng)中哪里的指示,分布式系統(tǒng)由多個(gè)在網(wǎng)絡(luò)(例如局域網(wǎng)、寬域網(wǎng)或因特網(wǎng))中連接起來(lái)的機(jī)器,如計(jì)算機(jī)和相關(guān)聯(lián)外圍設(shè)備組成?!熬W(wǎng)絡(luò)服務(wù)”是指在網(wǎng)絡(luò)上可訪問(wèn)的資源、數(shù)據(jù)或功能性。通常,對(duì)于每種服務(wù),查找服務(wù)包括被客戶機(jī)(例如一個(gè)程序)用于訪問(wèn)該服務(wù)(例如打印機(jī))的地址。
傳統(tǒng)的查找服務(wù)是靜態(tài)的,在增加新服務(wù)或是刪除現(xiàn)有服務(wù)而需要對(duì)查找服務(wù)進(jìn)行更新時(shí),使查找服務(wù)脫線,使得查找服務(wù)不可訪問(wèn),然后通過(guò)系統(tǒng)管理員手工更新查找服務(wù)。其查找服務(wù)脫線的時(shí)間期間,分布式系統(tǒng)中的客戶機(jī)不能訪問(wèn)查找服務(wù)和任何其網(wǎng)絡(luò)服務(wù)。
傳統(tǒng)查找服務(wù)的另一個(gè)限制是,在更新時(shí),不能使客戶機(jī)知道對(duì)查找服務(wù)的更新直至他們明確地執(zhí)行刷新操作為止,它將最新的服務(wù)信息下載到客戶機(jī)。然而,在這種刷新以前,如果客戶機(jī)請(qǐng)求不再可以提供的服務(wù),會(huì)發(fā)生引起客戶機(jī)死機(jī)的差錯(cuò)。此外,在刷新以前,客戶機(jī)不知道最近已經(jīng)增加到查找服務(wù)的任何新服務(wù)。因此,需要改進(jìn)分布式系統(tǒng)的查找服務(wù)。
發(fā)明概要按照本發(fā)明的系統(tǒng)提供一種改進(jìn)的查找服務(wù),它允許動(dòng)態(tài)增加和刪除服務(wù)。這一查找服務(wù)允許自動(dòng)地更新,即增加和刪除可提供的服務(wù),無(wú)需用戶的介入。結(jié)果,查找服務(wù)的客戶可以在發(fā)生更新的同時(shí)繼續(xù)利用查找服務(wù)及其相關(guān)服務(wù)。另外,查找服務(wù)提供一種通知機(jī)制,客戶可以利用它接收何時(shí)更新查找服務(wù)的通知。通過(guò)接收這一通知,客戶能夠避免試圖訪問(wèn)不再提供的服務(wù)以及一旦將新的服務(wù)增加到查找服務(wù)便能夠利用它們。
按照本發(fā)明的方法,提供數(shù)據(jù)處理系統(tǒng)中的一種方法,數(shù)據(jù)處理系統(tǒng)具有與服務(wù)相關(guān)聯(lián)的查找服務(wù)。該方法接收查找服務(wù)的請(qǐng)求通知何時(shí)更新查找服務(wù)、確定何時(shí)更新查找服務(wù)、以及在確定更新查找服務(wù)時(shí)產(chǎn)生一通知。
按照本發(fā)明的方法,提供數(shù)據(jù)處理系統(tǒng)中的一種方法,數(shù)據(jù)處理系統(tǒng)具有與服務(wù)相關(guān)聯(lián)的查找服務(wù)。該方法把查找服務(wù)被更新時(shí)得到通知的請(qǐng)求發(fā)送到查找服務(wù),以及接收查找服務(wù)已經(jīng)被更新的指示。
按照本發(fā)明的系統(tǒng),提供一種數(shù)據(jù)處理系統(tǒng),包括存儲(chǔ)器和處理器。存儲(chǔ)器包括含有可提供使用的服務(wù)的指示的查找服務(wù)、更新查找服務(wù)的第一客戶機(jī)、和在第一客戶機(jī)更新查找服務(wù)的同時(shí)利用查找服務(wù)的第二客戶機(jī)。處理器使查找服務(wù)、第一客戶機(jī)和第二客戶機(jī)運(yùn)行。
按照本發(fā)明的系統(tǒng),提供一種數(shù)據(jù)處理系統(tǒng),包括存儲(chǔ)器和處理器。存儲(chǔ)器包括可供使用的服務(wù)的指示的查找服務(wù)和客戶機(jī)。查找服務(wù)接收查找服務(wù)何時(shí)被更新的通知的請(qǐng)求、確定查找服務(wù)何時(shí)被更新、以及產(chǎn)生當(dāng)查找服務(wù)被更新時(shí)的通知??蛻魴C(jī)把查找服務(wù)被更新時(shí)得到通知的請(qǐng)求發(fā)送到查找服務(wù)。處理器使客戶機(jī)和查找服務(wù)運(yùn)行。
按照本發(fā)明的系統(tǒng),提供一種包括數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀存儲(chǔ)器裝置。這一數(shù)據(jù)結(jié)構(gòu)用于訪問(wèn)與可供使用的網(wǎng)絡(luò)服務(wù)相關(guān)聯(lián)的查找服務(wù)。數(shù)據(jù)結(jié)構(gòu)包括供客戶機(jī)用于登記注冊(cè)查找服務(wù)使用的通知方法,當(dāng)查找服務(wù)被更新時(shí)接收來(lái)自查找服務(wù)的通知。
附圖簡(jiǎn)述這里引入的并構(gòu)成本說(shuō)明一部分的附圖示出本發(fā)明的一種實(shí)施方案,與說(shuō)明相結(jié)合,用于說(shuō)明本發(fā)明的優(yōu)點(diǎn)和原理。在附圖中
圖1示出適合于實(shí)施本發(fā)明的方法和系統(tǒng)的分布式系統(tǒng)。
圖2示出圖1中所示計(jì)算機(jī)的更詳細(xì)方框圖。
圖3A和3B示出當(dāng)客戶機(jī)利用圖1中所示查找服務(wù)時(shí)執(zhí)行的步驟的流程圖。
圖4示出當(dāng)執(zhí)行與事件相關(guān)聯(lián)處理時(shí)由圖1所示查找服務(wù)執(zhí)行的步驟的流程圖。
圖5示出含有本發(fā)明的數(shù)個(gè)裝置的會(huì)議室。
圖6示出顯示屏顯示圖標(biāo),代表在圖5的會(huì)議室中可供使用的服務(wù)。
圖7示出顯示屏,顯示由圖5會(huì)議室中計(jì)算機(jī)提供的可供使用服務(wù)。
本發(fā)明的詳細(xì)描述本發(fā)明的方法和系統(tǒng)提供一種改進(jìn)的查找服務(wù),它允許動(dòng)態(tài)增加、刪除服務(wù)。照此,服務(wù)的增加和刪除是自動(dòng)地進(jìn)行的,沒(méi)有用戶的介入,查找服務(wù)的客戶機(jī)可以在發(fā)生對(duì)查找服務(wù)的更新的同時(shí)繼續(xù)使用該服務(wù)。另外,客戶機(jī)可以登記注冊(cè)查找服務(wù),接收何時(shí)更新查找服務(wù)的通知。結(jié)果,當(dāng)更新發(fā)生時(shí),所有已登記注冊(cè)的客戶機(jī)接收更新的通知,使得客戶機(jī)能夠避免試圖訪問(wèn)不再提供的服務(wù)以及使用最近增加到查找服務(wù)的服務(wù)。
分布式系統(tǒng)的概述本發(fā)明的方法和系統(tǒng)是在具有不同部件,包含硬件和軟件的分布式系統(tǒng)(“示例的分布式系統(tǒng)”)中操作。示例的分布式系統(tǒng)(1)允許系統(tǒng)的用戶共享許多設(shè)備的網(wǎng)絡(luò)上的服務(wù)和資源;(2)給程序員提供工具和編程模式,他們?cè)试S開(kāi)發(fā)穩(wěn)固安全的分布式系統(tǒng);(3)簡(jiǎn)化管理分布式系統(tǒng)的任務(wù)。為了實(shí)現(xiàn)這種目標(biāo),示例的分布式系統(tǒng)使用JavaTM編程環(huán)境,允許以無(wú)縫方式將代碼和數(shù)據(jù)從設(shè)備移動(dòng)到設(shè)備。于是,示例的分布式系統(tǒng)在Java編程環(huán)境的上層,并利用這一環(huán)境的特征,包括由它提供的安全性和由它提供的強(qiáng)類型。Java編程環(huán)境在Jaworski的Java 1.1開(kāi)發(fā)人員指南,Sams.net(1997)中作了更清楚地描述,在此將其引作參考。
在示例的分布式系統(tǒng)中,不同的計(jì)算機(jī)和設(shè)備被聯(lián)合到對(duì)用戶而言表現(xiàn)為單個(gè)系統(tǒng)中。通過(guò)表現(xiàn)為單個(gè)系統(tǒng),示例的分布式系統(tǒng)提供訪問(wèn)的簡(jiǎn)單性和可以由單個(gè)系統(tǒng)提供的共享能力而不放棄個(gè)人計(jì)算機(jī)或工作站的靈活性和個(gè)性化響應(yīng)。示例的分布式系統(tǒng)可以包含數(shù)千個(gè)設(shè)備,由在分散在世界各地但是在委托、管理和策略的基本注意事項(xiàng)上達(dá)成一致的人操作。在示例的分布式系統(tǒng)中存在由一個(gè)或多個(gè)設(shè)備提供的服務(wù)的不同邏輯組,每個(gè)這種邏輯組被稱為Djinn?!胺?wù)”指能夠由用戶、程序、設(shè)備或另一服務(wù)能夠訪問(wèn)以及可以計(jì)算、與存儲(chǔ)相關(guān)聯(lián)、與通信相關(guān)聯(lián)、或者涉及提供對(duì)另一用戶訪問(wèn)的資源、數(shù)據(jù)或功能性。作為Djinn的部分提供的服務(wù)的例子包括象打印機(jī)、顯示器和磁盤的設(shè)備;諸如應(yīng)用程序或?qū)嵱贸绦虻能浖?;諸如數(shù)據(jù)庫(kù)和文件的信息;和系統(tǒng)的用戶。
用戶和設(shè)備二者都可以連接Djinn。當(dāng)連接Djinn時(shí),用戶或設(shè)備增加零或多個(gè)設(shè)備到Djinn,可以訪問(wèn)它包含的任何一種服務(wù),受安全性約束。因此,設(shè)備和用戶聯(lián)合到Djinn中,共享對(duì)其服務(wù)的訪問(wèn)。Djinn的服務(wù)作為Java編程環(huán)境的對(duì)象可編程地顯現(xiàn),這可以包括其它對(duì)象,以不同編程語(yǔ)言編寫的軟件部件,或硬件設(shè)備。服務(wù)具有限定該服務(wù)能夠請(qǐng)求的操作的界面,服務(wù)的類型確定編排該服務(wù)的界面。
圖1示出示例的分布式系統(tǒng)100,包括通過(guò)網(wǎng)絡(luò)108互連的計(jì)算機(jī)102、計(jì)算機(jī)104和設(shè)備106。設(shè)備106可以是諸如打印機(jī)、傳真機(jī)、存儲(chǔ)設(shè)備、輸入設(shè)備、計(jì)算機(jī)或其它設(shè)備的數(shù)個(gè)設(shè)備中的任何一個(gè)。網(wǎng)絡(luò)108可以是局域網(wǎng)、寬域網(wǎng)或因特網(wǎng)。盡管圖中僅示出兩個(gè)計(jì)算機(jī)和一個(gè)設(shè)備作為實(shí)施例的分布式系統(tǒng)100的組成,但是,本領(lǐng)域的專業(yè)技術(shù)人員將會(huì)理解,示例的分布式系統(tǒng)100可以包括附加的計(jì)算機(jī)或設(shè)備。
圖2更詳細(xì)地示出計(jì)算機(jī)102,表明示例的分布式系統(tǒng)100的數(shù)個(gè)軟件部件。本領(lǐng)域的專業(yè)技術(shù)人員將會(huì)理解,計(jì)算機(jī)104或設(shè)備106可以是類似配置的。計(jì)算機(jī)102包括存儲(chǔ)器202、輔助存儲(chǔ)設(shè)備204、中央處理單元(CPU)206、輸入設(shè)備208和視頻顯示器210。存儲(chǔ)器202包括查找服務(wù)212、發(fā)現(xiàn)服務(wù)器214和JavaTM運(yùn)行期系統(tǒng)216。Java運(yùn)行期系統(tǒng)216包括JavaTM遠(yuǎn)程方法啟用系統(tǒng)(RMI)218和JavaTM虛擬機(jī)220。輔助存儲(chǔ)設(shè)備204包括JavaTM空間222。
如上所述,示例的分布式系統(tǒng)100基于Java編程環(huán)境,因此利用Java運(yùn)行系統(tǒng)216。Java運(yùn)行系統(tǒng)216包括JavaTM應(yīng)用編程界面(API),允許程序在Java運(yùn)行系統(tǒng)的上層運(yùn)行,以獨(dú)立平臺(tái)的方式訪問(wèn)不同系統(tǒng)功能,包括主操作系統(tǒng)的窗口能力和網(wǎng)絡(luò)能力。由于Java API提供Java運(yùn)行系統(tǒng)216被停留于的所有操作系統(tǒng)上的單個(gè)共用API,在Java運(yùn)行系統(tǒng)頂層運(yùn)行的程序以獨(dú)立平臺(tái)的方式運(yùn)行,不管操作系統(tǒng)或主平臺(tái)的硬件配置。Java運(yùn)行系統(tǒng)216作為由Sun Microsystems公司可提供的JavaTM軟件開(kāi)發(fā)工具。
Java虛擬機(jī)器220也便于平臺(tái)獨(dú)立性。Java虛擬機(jī)220的作用象絕對(duì)計(jì)算機(jī)器一樣,以字節(jié)代碼的形式接收程序的指令以及通過(guò)動(dòng)態(tài)地將他們轉(zhuǎn)換為執(zhí)行形式(如目標(biāo)碼),以及執(zhí)行他們。RMI 218通過(guò)允許對(duì)象在一個(gè)計(jì)算機(jī)或設(shè)備上執(zhí)行,調(diào)用另一個(gè)計(jì)算機(jī)或設(shè)備上對(duì)象的方法而便于遠(yuǎn)程方法啟用。RMI和Java虛擬機(jī)二者也是作為Java軟件開(kāi)發(fā)工具的一部分提供的。
查找服務(wù)212定義為由特定Djinn可提供的服務(wù)。即,可以存在一個(gè)以上的Djinn,因此在示例的分布式系統(tǒng)100中存在一個(gè)以上的查找服務(wù)。查找服務(wù)212包括Djinn內(nèi)每個(gè)服務(wù)的一個(gè)對(duì)象,每個(gè)對(duì)象包括便于訪問(wèn)相應(yīng)服務(wù)的各種方法。查找服務(wù)212及其訪問(wèn)在題為“便于訪問(wèn)查找服務(wù)的方法和系統(tǒng)”的美國(guó)專利繼續(xù)申請(qǐng)?zhí)朹_中更詳細(xì)地描述,該專利申請(qǐng)以前已引作參考。
發(fā)現(xiàn)服務(wù)214檢測(cè)在稱為引導(dǎo)和連接或發(fā)現(xiàn)的處理期間何時(shí)將新服務(wù)增加到示例的分布式系統(tǒng)100,以及何時(shí)檢測(cè)這種新服務(wù),發(fā)現(xiàn)服務(wù)器將對(duì)查找服務(wù)212的參照傳送到新設(shè)備,以致于新設(shè)備可以用查找服務(wù)登記注冊(cè)其服務(wù)并變?yōu)镈jinn的成員。登記注冊(cè)后,新設(shè)備變?yōu)镈jinn的成員,結(jié)果,它可以訪問(wèn)查找服務(wù)212中所包含的所有服務(wù),其登記注冊(cè)的服務(wù)可以被Djinn的其它成員訪問(wèn)。引導(dǎo)和連接的處理在題為“在分布式系統(tǒng)中設(shè)備通信用的提供可下載代碼的裝置和方法”的美國(guó)專利繼續(xù)申請(qǐng)?zhí)朹_中更詳細(xì)地描述,該專利申請(qǐng)以前已引作參考。
Java空間222是由示例的分布式系統(tǒng)100中程序存儲(chǔ)對(duì)象所使用的對(duì)象資源庫(kù)。程序使用Java空間222永久存儲(chǔ)對(duì)象以及使他們可訪問(wèn)示例的分布式系統(tǒng)中的其它設(shè)備。Java空間在1997年11月17日提交的題為“采用多形態(tài)入口和入口匹配的數(shù)據(jù)庫(kù)系統(tǒng)”的美國(guó)專利繼續(xù)申請(qǐng)08/971,529中更詳細(xì)地描述,該專利申請(qǐng)轉(zhuǎn)讓給同一受讓人,在此將其引作參考。本領(lǐng)域的專業(yè)技術(shù)人員將會(huì)理解,示例的分布式系統(tǒng)100可以包括許多查找服務(wù)、發(fā)現(xiàn)服務(wù)器和Java空間。
盡管本發(fā)明的系統(tǒng)和方法描述為在示例的分布式系統(tǒng)和Java編程環(huán)境中操作,但是,本領(lǐng)域?qū)I(yè)技術(shù)人員應(yīng)當(dāng)理解本發(fā)明可以在其它系統(tǒng)和其它編程環(huán)境中實(shí)現(xiàn)。另外,盡管本發(fā)明的各個(gè)方面描述為存儲(chǔ)在存儲(chǔ)器中,但是,本領(lǐng)域?qū)I(yè)技術(shù)人員應(yīng)當(dāng)理解這些方面可以存儲(chǔ)在其它類型計(jì)算機(jī)可讀媒體上,或者從中讀出,如象硬盤、軟盤或CD-ROM的輔助存儲(chǔ)設(shè)備;來(lái)自因特網(wǎng)的載波;或者RAM或ROM的其它形式。Sun、Sun Microsystems、Sun Logo、Java和基于Java商標(biāo)是Sun Microsystems公司在美國(guó)和其它國(guó)家的商標(biāo)或注冊(cè)商標(biāo)。
查找服務(wù)定義查找服務(wù)提供Djinn中可供使用的服務(wù)的中心登記注冊(cè)。這個(gè)查找服務(wù)是程序?qū)ふ褼jinn內(nèi)服務(wù)的主要機(jī)制以及是提供用戶界面的基礎(chǔ),通過(guò)界面用戶和管理員能夠發(fā)現(xiàn)Djinn的服務(wù)并與其交互作用。
查找服務(wù)維持服務(wù)項(xiàng)目的平面采集。采集是平面的,其中服務(wù)項(xiàng)目并不形成分層。每個(gè)服務(wù)項(xiàng)目代表Djinn中可供使用的服務(wù)的實(shí)例(instance)。服務(wù)項(xiàng)目包括一個(gè)(代碼)存根(stub)(如果服務(wù)是作為遠(yuǎn)程對(duì)象實(shí)施的)或者一個(gè)連續(xù)對(duì)象(如果服務(wù)是存儲(chǔ)在查找服務(wù)中的本地對(duì)象),程序用以訪問(wèn)服務(wù),以及屬性的可擴(kuò)展采集,屬性描述服務(wù)或者給服務(wù)提供輔助界面?!?代碼)存根”是便于訪問(wèn)遠(yuǎn)程功能的代碼和數(shù)據(jù),“連續(xù)對(duì)象”是以連續(xù)形式放置的對(duì)象。
盡管服務(wù)項(xiàng)目的采集是平面的,通過(guò)根據(jù)服務(wù)類型和屬性聚集項(xiàng)目,可以將廣泛的各種各樣的分層視圖疊加在采集上。查找服務(wù)提供一組方法,使用戶和管理員能夠?yàn)g覽采集并建立各種各樣的用戶界面。一旦發(fā)現(xiàn)合適的服務(wù),用戶能夠通過(guò)裝載用戶界面applet,作為項(xiàng)目上的另一個(gè)屬性附著,與該服務(wù)交互作用。
在創(chuàng)建一個(gè)新服務(wù)(例如,當(dāng)將一個(gè)新服務(wù)增加到Djinn)時(shí),該服務(wù)用查找服務(wù)登記注冊(cè)它自己,提供屬性的初始采集。例如,打印機(jī)可以包括表示速度(每分鐘頁(yè)數(shù))、分辨率(每英寸點(diǎn)數(shù))和是否支持雙面打印的屬性。屬性還可以包括服務(wù)是新的并需要配置的指示符。為了配置新服務(wù),管理員對(duì)提供這一用途的applet的屬性定位,在配置期間,管理員可以增加新屬性,如服務(wù)的物理位置和它的公用名。
查找服務(wù)提供事件機(jī)制,它產(chǎn)生登記注冊(cè)新服務(wù)時(shí)刪除現(xiàn)有服務(wù)或者修改服務(wù)的屬性的通知。為了使用事件機(jī)制,客戶機(jī)對(duì)特定事件發(fā)生時(shí)得到通知進(jìn)行登記注冊(cè),以及當(dāng)事件發(fā)生時(shí)查找服務(wù)通知該客戶機(jī)。查找服務(wù)本身也使用事件機(jī)制接收增加屬性時(shí)的通知,以致于它能夠在未來(lái)用他們進(jìn)行重新登記注冊(cè)。
需要特定類型服務(wù)的程序(包括其它服務(wù))能夠使用查找服務(wù)來(lái)尋找該服務(wù)的實(shí)例?;谕ㄟ^(guò)該服務(wù)而實(shí)施的特定JavaTM編程語(yǔ)言類型以及附屬于該服務(wù)的特定屬性,可以作出匹配。
如果服務(wù)碰到需要管理注意,象打印機(jī)墨粉不足運(yùn)行的問(wèn)題,該服務(wù)能夠增加表示該問(wèn)題的屬性。管理員(或程序)那么能夠使用事件機(jī)制接收這種問(wèn)題的通知。
服務(wù)項(xiàng)目的屬性表示為一組屬性集合。各個(gè)組屬性可以表示為Java編程語(yǔ)言中交叉的實(shí)例,每個(gè)屬性是該類的一個(gè)公共字段。該類提供組和各個(gè)屬性的強(qiáng)類型。服務(wù)項(xiàng)目能夠包括具有不同屬性值的相同類的多個(gè)實(shí)例以及不同類的多個(gè)實(shí)例。例如,項(xiàng)目可以具有名稱(Name)類的多個(gè)實(shí)例,每個(gè)實(shí)例以不同語(yǔ)言給出服務(wù)的公用名,加上位置(Location)類、物主(Owner)類和各種服務(wù)特定類的實(shí)例。
服務(wù)項(xiàng)目存儲(chǔ)在查找服務(wù)中,作為ServiceItem類的實(shí)例,正如以下描述的public class Service Item{public static final long ASSIGN_SERVICE_ID=0;public long serviceID;public Object service;public Entry[]attributeSets;}“serviceID”單元是服務(wù)的數(shù)值標(biāo)識(shí)符?!皊ervice”單元是代表服務(wù)的一個(gè)對(duì)象或者便于訪問(wèn)服務(wù)的一個(gè)(代碼)存根,“attributeSet”單元包括服務(wù)的屬性的陣列。
利用ServiceTemplate類的實(shí)例使查找服務(wù)中的項(xiàng)目匹配,它定義如下public class Service Template{public static final long ANY_SERVICE_ID=0;public long serviceID;public Class[]serviceTypes;public Entry[]attributeSetTemplates;}“serviceTypes”單元定義服務(wù)的類型。如果item.serviceID等于tmpl.serviceID(或者如果tmpl.serviceID為零)以及item.service是tmpl.serviceTypes中每個(gè)類型的實(shí)例,項(xiàng)目(irem)與服務(wù)模板(tmpl)匹配,item.attributeSet包括tmpl.attributeSetTemplates中每個(gè)入口模板的至少一個(gè)匹配入口。入口匹配使用以下規(guī)則如果入口的類與模板的類相同或者與模板的超類相同以及模板中每個(gè)非零字段等于入口的相應(yīng)字段,入口與入口模板匹配。可以使用每個(gè)入口與一個(gè)以上模板匹配。serviceTypes和attributeSetTemplates二者在服務(wù)模板中可以是零。當(dāng)查找多個(gè)項(xiàng)目時(shí)使用ServiceMatches類作為返回值。這個(gè)類的定義如下public class ServiceMatches{public Serviceltem[]items;public int totalMatches;}至查找服務(wù)的界面是通過(guò)ServiceRegistrar接口數(shù)據(jù)結(jié)構(gòu)限定的。這一界面不是遠(yuǎn)程界面。而是,查找服務(wù)的每個(gè)實(shí)施方案輸出實(shí)施客戶機(jī)附近ServiceRegistrar界面的代理對(duì)象,利用專用實(shí)施協(xié)議與實(shí)際遠(yuǎn)程服務(wù)器通信?!按韺?duì)象”指在客戶機(jī)的地址空間中運(yùn)行并便于訪問(wèn)查找服務(wù)的對(duì)象。提供登記注冊(cè)服務(wù)項(xiàng)目、尋找與模板匹配的項(xiàng)目、修改現(xiàn)有項(xiàng)目的屬性、接收項(xiàng)目被修改時(shí)的通知以及遞增地拓展沿三個(gè)主軸的項(xiàng)目(入口類,屬性值,服務(wù)類型)收集的方法。接口的定義如下public interface ServiceRegistrar{long REGISTRAR_SERVICE_ID=1;ServiceLease register(Service Item item,long lease expiration)throwsRemoteException;Object lookup(ServiceTemplate tmpl)throws RemoteExceptionServiceMatches lookup(ServiceTemplate tmpl,int maxMatches)throws RemoteException;int addAttributes(ServiceTemplate tmpl, Entry[]attrSets)throws RemoteException;int modifyAttributes(ServiceTemplate tmpl,Entry[]attrSets)throws RemoteException;int TRANSITION_MATCH_NOMATCH=1;int TRANSITION_NOMATCH_MATCH=2;int TRANSITION_MATCH_MATCH=3;EventRegID notify(Service Template tmpl,int transition,RemoteEventListener listener,MarshalledObject handback,long leaseExpiration)throws RemoteException;Class[]getEntryClasses(ServiceTemplate tmpl)throws RemoteException;Object[]getFieldValues(ServiceTemplate tmpl),int setIndex,String field)throws NoSuchFieldException,RemoteException;Class[]getServiceTypes(Service Template tmpl,String packagePrefixthrows RemoteException這一接口包括各種方法,有登記注冊(cè)方法、查找方法(單個(gè)參數(shù)形式)、查找方法(兩個(gè)參數(shù)形式)、增加屬性(addAttributes)方法、修改屬性(modifyAttributes)方法、修改方法、獲得入口類(getEnryClass)方法、獲得字段值(getFieldValues)方法、以及獲得服務(wù)類型(getServiceTypes)方法?!暗怯涀?cè)”方法用于登記注冊(cè)新的服務(wù)和重新登記注冊(cè)現(xiàn)有服務(wù)。這一方法是這樣定義的,即它可以以冪等方式使用。具體地說(shuō),如果調(diào)用導(dǎo)致產(chǎn)生異常(在項(xiàng)目可以已登記注冊(cè)或者可能沒(méi)有登記注冊(cè)的情況中),調(diào)用者能夠簡(jiǎn)單地用相同參數(shù)重復(fù)調(diào)用。
利用登記注冊(cè)方法登記注冊(cè)新的服務(wù),item.ServiceID應(yīng)當(dāng)是零;如果item.ServiceID不等于任何現(xiàn)有項(xiàng)目的服務(wù)對(duì)象,那么,將指派并返回一個(gè)新的唯一服務(wù)id。該服務(wù)id相對(duì)于這一查找服務(wù)在時(shí)間上是唯一的。如果item.ServiceID等于現(xiàn)有項(xiàng)目的服務(wù)對(duì)象,那么,從查找服務(wù)刪除現(xiàn)有項(xiàng)目(即使它具有不同屬性),但是項(xiàng)目的服務(wù)id被重新用作新登記注冊(cè)項(xiàng)目。
為了利用登記注冊(cè)方法重新登記注冊(cè)現(xiàn)有服務(wù),應(yīng)當(dāng)將item.ServiceID設(shè)定為由初始登注冊(cè)返回的同樣唯一服務(wù)id。如果一個(gè)項(xiàng)目已經(jīng)在相同服務(wù)id下登記注冊(cè),那么刪除現(xiàn)有項(xiàng)目(即使它具有不同的屬性或者不同的服務(wù)實(shí)例)。注意在允許服務(wù)合理演變的這一情況(例如(代碼)存根的串行化形式變化,或者服務(wù)實(shí)施新的界面)中,不檢查服務(wù)對(duì)象等同性。
當(dāng)對(duì)一個(gè)項(xiàng)目登記注冊(cè)時(shí),以該項(xiàng)目的存儲(chǔ)表示刪除復(fù)制屬性組。另外,登記注冊(cè)是在查找服務(wù)重新啟動(dòng)時(shí)不變的。
“查找”方法的單個(gè)參數(shù)形式從與模板匹配的項(xiàng)目返回服務(wù)對(duì)象(即ServiceItem.service),或者如果不匹配返回零。如果多個(gè)項(xiàng)目與模板匹配,對(duì)于返回哪個(gè)服務(wù)對(duì)象是任意的。如果不能使返回對(duì)象去除串行化,產(chǎn)生一個(gè)異常。
“查找”方法的兩個(gè)參數(shù)形式最多返回與模板匹配的maxMatches項(xiàng)目,加上與模板匹配的項(xiàng)目的總數(shù)。返回值絕不是零,如果maxMatches是零,返回的項(xiàng)目陣列才是零。對(duì)于每個(gè)返回的項(xiàng)目,如果不能使服務(wù)對(duì)象去除串行化,將項(xiàng)目的服務(wù)字段設(shè)定為零,不產(chǎn)生異常。同樣,如果不能使屬性集去除串行化,attributeSets的單元設(shè)定為零,不產(chǎn)生異常。
“addAttributes”方法將規(guī)定屬性集(不存在現(xiàn)有屬性集的復(fù)制的這些)增加到與模板匹配的所有項(xiàng)目。返回匹配的項(xiàng)目的數(shù)目。注意這一操作對(duì)匹配項(xiàng)目的現(xiàn)有屬性集沒(méi)有影響,這一操作以冪等方式重復(fù)進(jìn)行。
“modifyAttributes”方法用于修改現(xiàn)有屬性集。tmpl.attributeSetTemplates和attrSets的長(zhǎng)度必須相等或者產(chǎn)生異常。對(duì)于與模板匹配的每個(gè)項(xiàng)目,項(xiàng)目的屬性集修改如下。對(duì)于每個(gè)陣列索引Ⅰ,如果attrSets[i]是零,那么,與tmpl.attributeSetTemplates[i]匹配的每個(gè)入口被刪除;否則,對(duì)于attrSets[I]中的每個(gè)非零字段,將該字段的值存儲(chǔ)到與tmpl.attributeSetTemplates[i]匹配的每個(gè)入口的相應(yīng)字段中。attrSets[i]的類必須是與tmpl.attributeSetTemplates[I]的類或超類相同,或者產(chǎn)生異常。如果修改導(dǎo)致項(xiàng)目?jī)?nèi)的復(fù)制入口,刪除復(fù)制。返回匹配的項(xiàng)目的數(shù)目。
“nodify”方法用于登記注冊(cè)事件通知。登記注冊(cè)是租借的,租借期滿請(qǐng)求是嚴(yán)格。租借的概念在題為“租借存儲(chǔ)器的方法和系統(tǒng)”的美國(guó)專利申請(qǐng)No.中更詳細(xì)地描述,該申請(qǐng)以前已引入?yún)⒖?。登記注?cè)在查找服務(wù)的重新啟動(dòng)時(shí)是不變的直至租借期滿或者被取消。返回的EventRegId中的事件id在具有過(guò)渡期的不同服務(wù)模板的這一查找服務(wù)上至少相對(duì)于所有其它有效事件登記注冊(cè)是唯一的。
雖然事件登記注冊(cè)是有效的,一旦當(dāng)?shù)怯涀?cè)、租借取消或期滿、增加屬性或修改屬性操作以滿足模板和轉(zhuǎn)移組合的方法導(dǎo)致服務(wù)項(xiàng)目改變狀態(tài),含有事件指示的通知被傳送到規(guī)定收聽(tīng)者。雖然在本發(fā)明的范圍內(nèi)也可以實(shí)施其它轉(zhuǎn)移,轉(zhuǎn)移的清單如下·TRANSITION MATCH NOMATCH當(dāng)改變后項(xiàng)目與操作前模板匹配,但是與操作后模板不匹配(這包括項(xiàng)目的刪除)時(shí),對(duì)事件進(jìn)行傳送。
·TRANSITION_NOMATCH_MATCH當(dāng)改變后項(xiàng)目與操作前模板不匹配(這不包括現(xiàn)有的),但是與操作后模板匹配時(shí),對(duì)事件進(jìn)行傳送。
·TRANSITION MATCH MATCH當(dāng)改變后項(xiàng)目與操作前和操作后模板匹配,對(duì)事件進(jìn)行傳送。
“getEntryClass”方法注視與規(guī)定模板匹配的所有項(xiàng)目、尋找這些項(xiàng)目(或是與任何入口模板不匹配或者至少是一個(gè)匹配入口模板的子類)當(dāng)中的每個(gè)入口、以及返回這些入口的(最特別)類的集合。復(fù)制類被刪除,返回陣列中類的次序是任意的。如果不存在這種入口或者不存在匹配項(xiàng)目返回零(不是空陣列)。如果返回的類不能被去除串行化,將返回陣列的單元設(shè)定為零和沒(méi)有異常被發(fā)射。
“getFieldValue”方法識(shí)別與規(guī)定模板匹配的所有項(xiàng)目。這一方法返回與規(guī)定模板匹配的項(xiàng)目的值。
“getServiceTypes”方法注視與規(guī)定模板匹配的所有項(xiàng)目,對(duì)于每個(gè)服務(wù)對(duì)象,這一方法尋找服務(wù)對(duì)象是一個(gè)實(shí)例的每個(gè)類型(類或界面),該實(shí)例既不等于模板中的任何服務(wù)類型或也不是其超類,返回用規(guī)定數(shù)據(jù)包前綴啟動(dòng)的所有這些類型的集合。復(fù)制類型被刪除,返回陣列中的類型的次序是任意的。如果不存在這種類型則返回零(不是空陣列)。如果返回的類型不能被去除串行化,將返回陣列的單元設(shè)定為零和沒(méi)有異常被發(fā)射。
查找服務(wù)處理圖3A和3B示出客戶機(jī)、在特定設(shè)備上運(yùn)行的程序利用查找服務(wù)212時(shí)進(jìn)行的步驟的流程圖。最初,將客戶機(jī)運(yùn)行的設(shè)備連接至Jini分布式系統(tǒng)(步驟302)。接著,客戶機(jī)發(fā)送多點(diǎn)傳播數(shù)據(jù)包,含有與客戶機(jī)通信的代碼(步驟304)。在這一步驟中,客戶機(jī)正在執(zhí)行發(fā)現(xiàn)協(xié)議,正如題為“與分布式系統(tǒng)中設(shè)備通信使用的提供可下載代碼的裝置和方法”的美國(guó)專利申請(qǐng)No.__中進(jìn)一步詳細(xì)地描述的,該申請(qǐng)以前已引入?yún)⒖肌?br>
在客戶機(jī)發(fā)送多點(diǎn)傳播數(shù)據(jù)包后,發(fā)現(xiàn)服務(wù)器214接收該數(shù)據(jù)包并使用數(shù)據(jù)包中所包含的代碼把對(duì)查找服務(wù)的參照發(fā)送到客戶機(jī)(步驟306)。客戶機(jī)接收對(duì)查找服務(wù)的參照后,客戶機(jī)能夠利用查找服務(wù)的界面或是增加服務(wù)、刪除服務(wù)、訪問(wèn)服務(wù),或是請(qǐng)求查找服務(wù)何時(shí)被更新的通知,正如步驟308-326所反映的。
在客戶機(jī)處理期間的一些點(diǎn)上,可以決定把服務(wù)增加到查找服務(wù)(步驟308)。如果決定增加服務(wù),客戶機(jī)通過(guò)調(diào)用登記注冊(cè)方法把服務(wù)增加到查找服務(wù),它把代表服務(wù)的對(duì)象或含有便于訪問(wèn)該服務(wù)的代碼和數(shù)據(jù)的(代碼)存根發(fā)送到查找服務(wù)(步驟310)。把(代碼)存根增加到查找服務(wù)正如在題為“便于訪問(wèn)查找服務(wù)的方法和系統(tǒng)”的美國(guó)專利申請(qǐng)No.__中更詳細(xì)地描述,該申請(qǐng)以前已引入?yún)⒖肌?br>
接著,客戶機(jī)可以決定從查找服務(wù)中刪除其服務(wù)中的一個(gè)(步驟312)。如果客戶機(jī)決定這么做,客戶機(jī)通過(guò)調(diào)用查找服務(wù)的界面上的登記注冊(cè)方法來(lái)刪除特定服務(wù)的入口和刪除與其相關(guān)聯(lián)的存根代碼而從查找服務(wù)中刪除該服務(wù)(步驟314)。應(yīng)當(dāng)注意增加服務(wù)和刪除服務(wù)是動(dòng)態(tài)和發(fā)生更新的同時(shí)并不禁止另外的客戶機(jī)利用查找服務(wù)的方式進(jìn)行的。
在客戶機(jī)處理后的一些點(diǎn)上,客戶機(jī)可以決定訪問(wèn)通過(guò)查找服務(wù)提供的服務(wù)(步驟316)。如果客戶機(jī)決定訪問(wèn)由查找服務(wù)提供的服務(wù),那么客戶機(jī)通過(guò)調(diào)用查找方法而訪問(wèn)該服務(wù),查找方法是從查找服務(wù)中檢索該服務(wù)的對(duì)象或者該服務(wù)的(代碼)存根信息,以及客戶機(jī)或是調(diào)用對(duì)象上的方法使用該服務(wù)或是使用(代碼)存根信息訪問(wèn)該服務(wù)(步驟318)。這一步驟在題為“便于訪問(wèn)查找服務(wù)的方法和系統(tǒng)”的美國(guó)專利申請(qǐng)No.__中更詳細(xì)地描述,該申請(qǐng)以前已引入?yún)⒖肌?br>
客戶機(jī)還可以請(qǐng)求對(duì)查找服務(wù)發(fā)生更新時(shí)得到通知(圖3B中步驟320)。如果客戶機(jī)希望得到通知,那么客戶機(jī)調(diào)用查找服務(wù)界面上的通知方法登記注冊(cè)查找服務(wù)的回叫程序(步驟322)?!盎亟谐绦颉笔遣檎曳?wù)被更新時(shí)調(diào)用的一個(gè)功能。另外,通知方法允許客戶機(jī)登記注冊(cè)將通過(guò)RMI作為參數(shù)返回到回叫功能的對(duì)象。
接著,如果事件已經(jīng)發(fā)生,對(duì)此客戶機(jī)希望得到通知(步驟324),查找服務(wù)可調(diào)用已登記注冊(cè)的回叫程序(步驟326)。在這一步驟中,事件的發(fā)生要通知客戶機(jī),客戶機(jī)能夠采取適當(dāng)行動(dòng),例如,如果客戶機(jī)當(dāng)前正在利用的服務(wù)已經(jīng)變?yōu)椴荒芴峁┑模敲纯蛻魴C(jī)可以存儲(chǔ)信息使得它不再使用該服務(wù)。
圖4示出進(jìn)行與事件相關(guān)的處理時(shí)由查找服務(wù)進(jìn)行的步驟的流程圖。初始時(shí),查找服務(wù)接收來(lái)自數(shù)個(gè)客戶機(jī)對(duì)特定事件發(fā)生時(shí)接收通知感興趣的登記注冊(cè)(步驟402)。在這一步驟中,查找服務(wù)通過(guò)調(diào)用查找服務(wù)界面上的通知方法接收登記注冊(cè)并把所有相關(guān)信息,如要通知的客戶機(jī)的指示、對(duì)繪調(diào)例程的參照、作為參數(shù)被傳送到回叫程序的對(duì)象、以及客戶機(jī)感興趣的事件的指示等存儲(chǔ)到表(稱為事件表)中。應(yīng)當(dāng)注意客戶機(jī)可以登記注冊(cè)當(dāng)事件發(fā)生時(shí)得到通知,或者客戶機(jī)可以登記注冊(cè)得到通知的第三方。收到登記注冊(cè)后,查找服務(wù)確定事件發(fā)生使得至少已經(jīng)登記注冊(cè)一個(gè)客戶機(jī)對(duì)該事件感興趣(步驟404)。查找服務(wù)通過(guò)識(shí)別例如新的服務(wù)何時(shí)已經(jīng)被增加到查找服務(wù)、現(xiàn)有服務(wù)已經(jīng)從查找服務(wù)中被刪除、或者服務(wù)的屬性已經(jīng)被修改,而作出這一決定。如果這種事件沒(méi)有發(fā)生,查找服務(wù)的事件通知處理保持在等待狀態(tài)。
然而,如果事件已經(jīng)發(fā)生,查找服務(wù)確定所有客戶機(jī)登記注冊(cè)對(duì)這一事件的通知(步驟406)。查找服務(wù)通過(guò)訪問(wèn)事件表作出這一決定。接著,查找服務(wù)調(diào)用為步驟406中所識(shí)別的每個(gè)客戶機(jī)登記注冊(cè)的回叫程序(步驟408)。在這一步驟中,事件表包括對(duì)每個(gè)客戶機(jī)所登記注冊(cè)的回叫程序的參照,查找服務(wù)調(diào)用每個(gè)回叫程序?qū)⒁训怯涀?cè)對(duì)象作為參數(shù)傳送,通知客戶機(jī)事件的發(fā)生。
會(huì)議室例子以下描述的是相對(duì)于會(huì)議室500使用查找服務(wù)212的例子,正如圖5所示。會(huì)議室500包括打印機(jī)502、傳真機(jī)504、計(jì)算機(jī)506、投影屏幕508、和存儲(chǔ)設(shè)備510,所有這些通過(guò)網(wǎng)絡(luò)512互連。計(jì)算機(jī)506包括查找服務(wù)518,它限定通過(guò)會(huì)議室Djinn可提供的所有服務(wù)。在這個(gè)例子中,用戶用膝上型計(jì)算機(jī)(laptop)514輸入會(huì)議室500。當(dāng)用戶用膝上型計(jì)算機(jī)為開(kāi)會(huì)進(jìn)入會(huì)議室500時(shí)發(fā)生這種情況。如果用戶希望利用會(huì)議室500中由各種不同設(shè)備提供的服務(wù),那么用戶必須連接會(huì)議室500的Djinn。為了這么做,用戶將膝上型計(jì)算機(jī)連接至網(wǎng)絡(luò)512并運(yùn)行程序,客戶機(jī)516進(jìn)行引導(dǎo)和連接(或發(fā)現(xiàn))處理,如上所述。完成引導(dǎo)和連接處理后,客戶機(jī)516(例如瀏覽器)接收對(duì)查找服務(wù)的參照,限定由會(huì)議室Djinn提供的服務(wù)。利用這一參考,客戶機(jī)516從查找服務(wù)518下載applet,顯示在顯示屏600上,正如圖6所示。
圖6示出顯示屏600,它顯示查找服務(wù)518的可提供服務(wù),表示為各種不同的圖標(biāo),包括打印機(jī)602、傳真機(jī)604、文件系統(tǒng)606和投影屏608。顯示屏600還顯示增加服務(wù)按鈕610。當(dāng)選擇打印機(jī)圖標(biāo)602時(shí),打印機(jī)的(代碼)存根代碼(即服務(wù)項(xiàng)目)被下載給客戶機(jī),以致于客戶機(jī)可以利用打印機(jī)。同樣,選擇傳真機(jī)圖標(biāo)604、文件系統(tǒng)圖標(biāo)606或投影屏圖標(biāo)608,下載合適的(代碼)存根信息,以致于客戶機(jī)能夠使用這些服務(wù)。文件系統(tǒng)圖標(biāo)606代表計(jì)算機(jī)506的文件系統(tǒng)。
然而,用戶可能希望增加服務(wù),因此選擇增加服務(wù)按鈕610。在選擇增加服務(wù)按鈕610時(shí),向用戶呈現(xiàn)顯示屏700,正如圖7所示。顯示屏700示出用戶可以增加到Djinn的膝上型計(jì)算機(jī)514的可提供服務(wù)。例如,膝上型計(jì)算機(jī)514上的可提供服務(wù)可以包括Java空間702、膝上型計(jì)算機(jī)文件系統(tǒng)704、數(shù)據(jù)庫(kù)706和字典708。用戶可以選擇這些服務(wù)中的任何一個(gè),然后自動(dòng)地把它們?cè)黾拥讲檎曳?wù)并可以供Djinn的其它用戶使用。
雖然已經(jīng)參考本發(fā)明的較佳實(shí)施例描述了本發(fā)明的方法和系統(tǒng),但是,本領(lǐng)域的專用技術(shù)人員將知道可以在形式和細(xì)節(jié)上作出各種變化,而不偏離所附權(quán)利要求書中限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.分布式系統(tǒng)中的一種方法,它具有與分布式系統(tǒng)中可提供的網(wǎng)絡(luò)服務(wù)相關(guān)聯(lián)的查找服務(wù)和具有訪問(wèn)該網(wǎng)絡(luò)服務(wù)的客戶機(jī),其特征在于所述方法包括以下步驟給分布式系統(tǒng)增加一裝置,該裝置包含具有新服務(wù)的新客戶機(jī);由新客戶機(jī)廣播一對(duì)象,該對(duì)象包含與新客戶機(jī)通信的代碼;由發(fā)現(xiàn)服務(wù)器接收該對(duì)象,并利用該代碼由發(fā)現(xiàn)服務(wù)器把對(duì)查找服務(wù)的參照傳送到新客戶機(jī);由新客戶機(jī)接收該參照;以及由新客戶機(jī)把新服務(wù)的指示增加到查找服務(wù),以致于與查找服務(wù)相關(guān)聯(lián)的網(wǎng)絡(luò)服務(wù)在新服務(wù)的增加期間保持可訪問(wèn)。
2.如權(quán)利要求1所述的方法,其特征在于增加步驟包括步驟把(代碼)存根增加到查找服務(wù),它包含便于訪問(wèn)新服務(wù)的代碼和數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于增加步驟包括步驟把服務(wù)對(duì)象增加到查找服務(wù),該服務(wù)對(duì)象具有執(zhí)行新服務(wù)的功能。
4.如權(quán)利要求1所述的方法,其特征在于進(jìn)一步包括步驟從查找服務(wù)刪除新服務(wù)的指示。
5.如權(quán)利要求1所述的方法,其特征在于進(jìn)一步包括步驟用查找服務(wù)登記注冊(cè)新客戶機(jī),當(dāng)更新查找服務(wù)時(shí)接收一通知;由查找服務(wù)確定何時(shí)它已經(jīng)被更新;以及當(dāng)查找服務(wù)已經(jīng)確定它已經(jīng)被更新時(shí)給新客戶機(jī)發(fā)送一通知。
6.如權(quán)利要求5所述的方法,其特征在于登記注冊(cè)步驟包括步驟用查找服務(wù)登記注冊(cè)一回叫程序,以及這里發(fā)送步驟包括步驟調(diào)用已登記注冊(cè)的回叫程序。
7.如權(quán)利要求6所述的方法,其特征在于登記注冊(cè)步驟包括步驟用查找服務(wù)登記注冊(cè)一參數(shù)對(duì)象,以及這里調(diào)用步驟包括步驟調(diào)用已登記注冊(cè)的回叫程序,把參數(shù)對(duì)象作為參數(shù)送至回叫程序。
8.?dāng)?shù)據(jù)處理系統(tǒng)中的一種方法,它具有與數(shù)據(jù)處理系統(tǒng)中可供使用的服務(wù)相關(guān)聯(lián)的查找服務(wù),其特征在于所述方法包括步驟接收更新查找服務(wù)的請(qǐng)求;以及更新查找服務(wù),以致于未受更新影響的服務(wù)在發(fā)生更新時(shí)繼續(xù)可供使用。
9.如權(quán)利要求8所述的方法,其特征在于更新步驟包括步驟使新服務(wù)與查找服務(wù)相關(guān)聯(lián)。
10.如權(quán)利要求8所述的方法,其特征在于更新步驟包括步驟使相關(guān)聯(lián)服務(wù)中的一個(gè)與查找服務(wù)不關(guān)聯(lián),從而使一個(gè)服務(wù)不再可供使用。
11.如權(quán)利要求8所述的方法,其特征在于相關(guān)聯(lián)服務(wù)具有屬性以及這里更新步驟包括步驟修改相關(guān)聯(lián)服務(wù)中一個(gè)的屬性。
12.?dāng)?shù)據(jù)處理系統(tǒng)中的一種方法,它具有與服務(wù)相關(guān)聯(lián)的查找服務(wù),其特征在于所述方法包括步驟接收當(dāng)查找服務(wù)被更新時(shí)得到通知的請(qǐng)求;確定何時(shí)查找服務(wù)被更新;以及當(dāng)確定查找服務(wù)被更新時(shí)產(chǎn)生一通知。
13.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收客戶機(jī)的請(qǐng)求,以及這里產(chǎn)生步驟包括步驟通知客戶機(jī)更新。
14.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收第一客戶機(jī)的請(qǐng)求,以及這里產(chǎn)生步驟包括步驟通知第二客戶機(jī)更新,第二客戶機(jī)不同于第一客戶機(jī)。
15.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收對(duì)回叫程序的參照,以及這里產(chǎn)生步驟包括步驟調(diào)用回叫程序,執(zhí)行通知。
16.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收當(dāng)新服務(wù)與查找服務(wù)相關(guān)聯(lián)時(shí)得到通知的請(qǐng)求,以及這里確定步驟包括步驟確定何時(shí)新服務(wù)與查找服務(wù)相關(guān)聯(lián),以及這里產(chǎn)生部分包括步驟當(dāng)確定新服務(wù)與查找服務(wù)相關(guān)聯(lián)時(shí)產(chǎn)生通知。
17.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收當(dāng)相關(guān)聯(lián)服務(wù)中的一個(gè)與查找服務(wù)不相關(guān)聯(lián)時(shí)得到通知的請(qǐng)求,以及這里確定步驟包括步驟確定一個(gè)服務(wù)與查找服務(wù)不關(guān)聯(lián),以及這里產(chǎn)生步驟包括步驟當(dāng)確定一個(gè)服務(wù)與查找服務(wù)不關(guān)聯(lián)時(shí)產(chǎn)生通知。
18.如權(quán)利要求12所述的方法,其特征在于接收步驟包括步驟接收當(dāng)相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性被更新時(shí)得到通知的請(qǐng)求,以及這里確定步驟包括步驟確定何時(shí)更新相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性,以及這里產(chǎn)生步驟包括步驟當(dāng)確定相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性被更新時(shí)產(chǎn)生通知。
19.?dāng)?shù)據(jù)處理系統(tǒng)中的一種方法,具有與服務(wù)相關(guān)聯(lián)的查找服務(wù),其特征在于所述方法包括步驟將請(qǐng)求發(fā)送到查找服務(wù)被更新時(shí)得到通知的查找服務(wù);以及接收查找服務(wù)已經(jīng)被更新的通知。
20.如權(quán)利要求19所述的方法,其特征在于發(fā)送步驟包括步驟由客戶機(jī)發(fā)送請(qǐng)求,以及這里接收步驟指示步驟由客戶機(jī)接收通知。
21.如權(quán)利要求19所述的方法,其特征在于發(fā)送步驟包括步驟由第一客戶機(jī)發(fā)送請(qǐng)求,以及這里接收步驟包括由不同于第一客戶機(jī)的第二客戶機(jī)接收通知。
22.一種數(shù)據(jù)處理系統(tǒng),其特征在于包括存儲(chǔ)器,它包括查找服務(wù),具有可提供使用的服務(wù)的指示;第一客戶機(jī),用于更新查找服務(wù);以及第二客戶機(jī),用于在第一客戶機(jī)正在更新查找服務(wù)的同時(shí)利用查找服務(wù);以及至少一個(gè)處理器,用于使查找服務(wù)、第一客戶機(jī)和第二客戶機(jī)運(yùn)行。
23.一種數(shù)據(jù)處理系統(tǒng),其特征在于包括存儲(chǔ)器,它包括具有可提供使用的服務(wù)的指示的查找服務(wù),查找服務(wù)用于接收對(duì)何時(shí)更新查找服務(wù)的通知的請(qǐng)求、確定何時(shí)更新查找服務(wù)和產(chǎn)生當(dāng)查找服務(wù)被更新時(shí)的通知;和客戶機(jī),用于把請(qǐng)求發(fā)送到當(dāng)查找服務(wù)被更新時(shí)得到通知的查找服務(wù);以及至少一個(gè)處理器,用于使客戶機(jī)和查找服務(wù)運(yùn)行。
24.如權(quán)利要求23所述的數(shù)據(jù)處理系統(tǒng),其特征在于存儲(chǔ)器進(jìn)一步包括一個(gè)第二客戶機(jī),用于接收查找服務(wù)被更新的通知。
25.一種計(jì)算機(jī)可讀的存儲(chǔ)器裝置,包含訪問(wèn)查找服務(wù)所使用的數(shù)據(jù)結(jié)構(gòu),查找服務(wù)與可供使用的網(wǎng)絡(luò)服務(wù)相關(guān)聯(lián),所述數(shù)據(jù)結(jié)構(gòu)包括一種通知方法,供客戶機(jī)用于登記注冊(cè)查找服務(wù),當(dāng)查找服務(wù)被更新時(shí)接收來(lái)自查找服務(wù)的通知。
26.一種計(jì)算機(jī)可讀媒體,包括控制數(shù)據(jù)處理系統(tǒng)執(zhí)行一種方法的指令,數(shù)據(jù)處理系統(tǒng)具有與數(shù)據(jù)處理系統(tǒng)中可供使用的服務(wù)相關(guān)聯(lián)的查找服務(wù),所述方法包括步驟接收更新查找服務(wù)的請(qǐng)求;以及更新查找服務(wù),以致于在發(fā)生更新的同時(shí)未被更新影響的服務(wù)繼續(xù)可供使用。
27.如權(quán)利要求26所述的計(jì)算機(jī)可讀媒體,其特征在于更新步驟包括步驟使新服務(wù)與查找服務(wù)相關(guān)聯(lián)。
28.如權(quán)利要求26所述的計(jì)算機(jī)可讀媒體,其特征在于更新步驟包括步驟使相關(guān)聯(lián)服務(wù)中的一個(gè)不與查找服務(wù)相關(guān)聯(lián),以致于一個(gè)服務(wù)不再提供使用。
29.如權(quán)利要求26所述的計(jì)算機(jī)可讀媒體,其特征在于相關(guān)聯(lián)服務(wù)具有屬性以及更新步驟包括步驟修改相關(guān)聯(lián)服務(wù)中的一個(gè)的屬性。
30.一種計(jì)算機(jī)可讀媒體,包括控制數(shù)據(jù)處理系統(tǒng)執(zhí)行一種方法的指令,數(shù)據(jù)處理系統(tǒng)具有相關(guān)聯(lián)服務(wù)的查找服務(wù),所述方法包括步驟由查找服務(wù)接收當(dāng)更新查找服務(wù)得到通知的請(qǐng)求;確定何時(shí)更新查找服務(wù)以及在確定更新查找服務(wù)時(shí)產(chǎn)生通知。
31.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收來(lái)自客戶機(jī)的請(qǐng)求,以及這里產(chǎn)生步驟包括步驟通知客戶機(jī)更新。
32.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收來(lái)自第一客戶機(jī)的請(qǐng)求,以及這里產(chǎn)生步驟包括步驟通知第二客戶機(jī)更新,第二客戶機(jī)不同于第一客戶機(jī)。
33.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收對(duì)回叫程序的參照,以及這里產(chǎn)生步驟包括步驟調(diào)用回叫程序進(jìn)行通知。
34.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收當(dāng)新服務(wù)與查找服務(wù)相關(guān)聯(lián)時(shí)得到通知的請(qǐng)求,以及這里確定步驟包括步驟確定何時(shí)新服務(wù)與查找服務(wù)相關(guān)聯(lián),以及這里產(chǎn)生步驟包括步驟當(dāng)確定新服務(wù)與查找服務(wù)相關(guān)聯(lián)時(shí)產(chǎn)生通知。
35.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收當(dāng)相關(guān)聯(lián)服務(wù)中的一個(gè)與查找服務(wù)不關(guān)聯(lián)時(shí)得到通知的請(qǐng)求,以及這里確定步驟包括步驟確定何時(shí)一個(gè)服務(wù)與查找服務(wù)不關(guān)聯(lián),以及這里產(chǎn)生步驟包括步驟當(dāng)確定一個(gè)服務(wù)與查找服務(wù)不關(guān)聯(lián)時(shí)產(chǎn)生通知。
36.如權(quán)利要求30所述的計(jì)算機(jī)可讀媒體,其特征在于接收步驟包括步驟接收當(dāng)更新相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性時(shí)得到通知的請(qǐng)求,這里確定步驟包括步驟確定何時(shí)更新相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性,以及這里產(chǎn)生步驟包括步驟當(dāng)確定更新相關(guān)聯(lián)服務(wù)中至少一個(gè)的屬性時(shí)產(chǎn)生通知。
37.一種計(jì)算機(jī)可讀媒體,包括控制數(shù)據(jù)處理系統(tǒng)執(zhí)行一種方法的指令,數(shù)據(jù)處理系統(tǒng)具有相關(guān)聯(lián)服務(wù)的查找服務(wù),所述方法包括步驟給查找服務(wù)發(fā)送當(dāng)查找服務(wù)被更新時(shí)得到通知的請(qǐng)求;以及接收查找服務(wù)已被更新的通知。
38.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒體,其特征在于發(fā)送步驟包括步驟由客戶機(jī)發(fā)送請(qǐng)求,以及這里接收步驟指示步驟由客戶機(jī)接收通知。
39.如權(quán)利要求37所述的計(jì)算機(jī)可讀媒體,其特征在于發(fā)送步驟包括步驟由第一客戶機(jī)發(fā)送請(qǐng)求,以及這里接收步驟包括由不同于第一客戶機(jī)的第二客戶機(jī)接收通知。
全文摘要
提供一種改進(jìn)的查找服務(wù),它允許動(dòng)態(tài)地增加和刪除服務(wù)。這一查找服務(wù)允許自動(dòng)地增加和刪除服務(wù),而無(wú)需用戶介入。結(jié)果,查找服務(wù)的客戶在發(fā)生更新的同時(shí)可以繼續(xù)利用查找服務(wù)及其相關(guān)聯(lián)服務(wù)。另外,查找服務(wù)提供一種通知機(jī)制,客戶可以用它接收查找服務(wù)被更新時(shí)的通知。通過(guò)接收這種通知,客戶能夠避免試圖訪問(wèn)不再提供的服務(wù)以及新的服務(wù)剛增加到查找服務(wù)便能夠利用它們。
文檔編號(hào)G06F12/02GK1298503SQ99805304
公開(kāi)日2001年6月6日 申請(qǐng)日期1999年2月17日 優(yōu)先權(quán)日1998年2月26日
發(fā)明者A·M·沃爾蕾斯, R·謝夫勒, J·H·瓦爾多, K·C·R·C·阿諾德 申請(qǐng)人:太陽(yáng)微系統(tǒng)公司