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