两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

分布式系統(tǒng)中用于確定遠程對象狀態(tài)的方法和裝置的制作方法

文檔序號:6418922閱讀:243來源:國知局
專利名稱:分布式系統(tǒng)中用于確定遠程對象狀態(tài)的方法和裝置的制作方法
相關(guān)申請現(xiàn)引證下列美國專利申請作為本申請依據(jù)并歸并于本申請中。
1998年2月26日申請的發(fā)明名稱為“分布式計算系統(tǒng)”(“DistributedComputing System”)的臨時美國專利申請U.S.Ser.No.60/076,048。
上述相同日期申請的發(fā)明名稱為“用于租用存儲的方法和系統(tǒng)”(“Methodand System for Leasing Storage”)(標(biāo)注有代理人案卷號No.06502.0011-01000)的美國專利申請U.S.Ser.No.09/044,923。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于委派證租用的方法、裝置和產(chǎn)品”(“Method,Apparatus,and Product for Leasing of DelegationCertificates in a Distributed System”)(標(biāo)注有代理人案卷號No.06502.0011-02000)的美國專利申請U.S.Ser.No.09/044,838。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于團體會員資格租用的方法、裝置和產(chǎn)品”(“Method,Apparatus,and Product for Leasing of GroupMembership in a Distributed System”)(標(biāo)注有代理人案卷號No.06502.0011-03000)的美國專利申請U.S.Ser.No.09/044,834。
上述相同日期申請的發(fā)明名稱為“故障檢測的租用”(“Leasing forFailure Detection”)(標(biāo)注有代理人案卷號No.06502.0011-04000)的美國專利申請U.S.Ser.No.09/044,916。
上述相同日期申請的發(fā)明名稱為“基于事件的系統(tǒng)中用于傳輸行為的方法”(“Method for Transporting Behavior in Event Based System”)(標(biāo)注有代理人案卷號No.06502.0054-00000)的美國專利申請U.S.Ser.No.09/044,933。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中對象的延遲重組和事件通知的遠程裝載”(“Deferred Reconstruction of Objects and Remote Loading forEvent Notification in a Distributed System”)(標(biāo)注有代理人案卷號No.06502.0062-01000)的美國專利申請U.S.Ser.No.09/044,919。
上述相同日期申請的發(fā)明名稱為“用于遠程定義法啟用的方法和裝置”(“Methods and Apparatus for Remote Method Invocation”)(標(biāo)注有代理人案卷號No.06502.0102-00000)的美國專利申請U.S.Ser.No.09/044,938。
上述相同日期申請的發(fā)明名稱為“用于確定性散列識別遠程定義法的方法和系統(tǒng)”(“Method and System for Deterministic Hashes to identify RemoteMethods”)(標(biāo)注有代理人案卷號No.06502.0103-00000)的美國專利申請U.S.Ser.No.09/045,652。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于執(zhí)行與遠程進程調(diào)用相關(guān)聯(lián)的處理的可下載智能代理”(“Downloadable Smart Proxies for PerformingProcessing Associated with a Remote Procedure Call in a DistributedSystem”)(標(biāo)注有代理人案卷號No.06502.0105-00000)的美國專利申請U.S.Ser.No.09/044,930。
上述相同日期申請的發(fā)明名稱為“遠程定義法的暫停和繼續(xù)”(“Suspension and Continuation of Remote Methods”)(標(biāo)注有代理人案卷號No.06502.0106-00000)的美國專利申請U.S.Ser.No.09/044,917。
上述相同日期申請的發(fā)明名稱為“數(shù)據(jù)庫中用于多入口以及多模板匹配的方法和系統(tǒng)”(“Method and System for Multi-Entry and Multi-TemplateMatching in a Database”)(標(biāo)注有代理人案卷號No.06502.0107-00000)的美國專利申請U.S.Ser.No.09/044,835。
上述相同日期申請的發(fā)明名稱為“數(shù)據(jù)庫中用于原地修改的方法和系統(tǒng)”(“Method and System for In-Place Modifications in a Database”)(標(biāo)注有代理人案卷號No.06502.0108)的美國專利申請U.S.Ser.No.09/044,839。
上述相同日期申請的發(fā)明名稱為“數(shù)據(jù)庫中用于類型安全屬性匹配的方法和系統(tǒng)”(“Method and System for Typesafe Attribute Matching in aDatabase”)(標(biāo)注有代理人案卷號No.06502.0109-00000)的美國專利申請U.S.Ser.No.09/044,945。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中動態(tài)查詢業(yè)務(wù)”(“DynamicLookup Service in a Distributed System”)(標(biāo)注有代理人案卷號No.06502.0110-00000)的美國專利申請U.S.Ser.No.09/044,931。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中提供可下載代碼用于與一設(shè)備通信的裝置和方法”(“Apparatus and Method for Providing DownloadableCode for Use in Communicating with a Device in a Distributed System”)(標(biāo)注有代理人案卷號No.06502.0112-00000)的美國專利申請U.S.Ser.No.09/044,939。
上述相同日期申請的發(fā)明名稱為“有利于訪問查詢業(yè)務(wù)的方法和系統(tǒng)”(“Method and System for Facilitating Access to a Lookup Service”)(標(biāo)注有代理人案卷號No.06502.0113-00000)的美國專利申請U.S.Ser.No.09/044,826。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于動態(tài)驗證信息的裝置和方法”(“Apparatus and Method for Dynamically Verifying Information in aDistributed System”)(標(biāo)注有代理人案卷號No.06502.0114-00000)的美國專利申請U.S.Ser.No.09/044,932。
1998年2月26日申請的發(fā)明名稱為“用于網(wǎng)絡(luò)上動態(tài)分布式計算的方法和裝置”(“Method and Apparatus for Dynamic Distributed Computing Over aNetwork”)的美國專利申請U.S.Ser.No.09/030,840。
上述相同日期申請的發(fā)明名稱為“永久性共享存儲空間的交互式設(shè)計工具”(“An Interactive Design Tool for Persistent Shared Memory Spaces”)(標(biāo)注有代理人案卷號No.06502.0116-00000)的美國專利申請U.S.Ser.No.09/044,936。
上述相同日期申請的發(fā)明名稱為“基于多形態(tài)令牌的控制”(“PolymorphicToken-Based Control”)(標(biāo)注有代理人案卷號No.06502.0117-00000)的美國專利申請U.S.Ser.No.09/044,934。
上述相同日期申請的發(fā)明名稱為“基于堆棧的訪問控制”(“Stack-BasedAccess Control”)(標(biāo)注有代理人案卷號No.06502.0118-00000)的美國專利申請U.S.Ser.No.09/044,915。
上述相同日期申請的發(fā)明名稱為“基于堆棧的安全要求”(“Stack-BasedSecurity Requirements”)(標(biāo)注有代理人案卷號No.06502.0119-00000)的美國專利申請U.S.Ser.No.09/044,944。
上述相同日期申請的發(fā)明名稱為“安全要求的全定義法指定”(“Per-Method Designation of Security Requirements”)(標(biāo)注有代理人案卷號No.06502.0120-00000)的美國專利申請U.S.Ser.No.09/044,837。
背景技術(shù)
A.發(fā)明領(lǐng)域本發(fā)明總體涉及分布式系統(tǒng),具體來說,涉及分布式系統(tǒng)中用于確定遠程對象狀態(tài)的方法和裝置。
B.相關(guān)技術(shù)的說明典型的分布式系統(tǒng),包括在例如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、或互聯(lián)網(wǎng)等網(wǎng)絡(luò)中連接的諸如計算機和相關(guān)外部設(shè)備等多種機器。分布式系統(tǒng)通常要求可能在不同機器上、在不同地址空間內(nèi)運行的那種計算實體(例如應(yīng)用程序,程序,小應(yīng)用程序等)能夠互相通信。
就基本的通信機制來說,分布式面向?qū)ο笙到y(tǒng)采用遠程定義法啟用(RemoteMethod Invocation;RMI),它更為普遍地稱為遠程過程調(diào)用(RPC)。RMI使駐留在不同地址空間的“對象”之間的應(yīng)用層通信更為便利。
面向?qū)ο笙到y(tǒng)中,“類”提供一“模板”用于創(chuàng)建具有該“類”特性的“對象”(它們代表由該系統(tǒng)操縱的項或?qū)嵗?。術(shù)語“模板”表示每一類的對象(即數(shù)據(jù)項)共享該類確定的某些特性或?qū)傩?。典型的對象是在系統(tǒng)工作期間動態(tài)地創(chuàng)建的。與一類相關(guān)聯(lián)的定義法通常均在相同類的對象上被調(diào)用(即被引發(fā)工作)。
RMI是對遠程對象的定義法進行調(diào)用的動作。響應(yīng)在利用RMI的遠程對象上對定義法的啟用,低層次通信進程使得被調(diào)用的定義法在遠程對象上被執(zhí)行。
JavaTM運行時系統(tǒng)專用于實施按JavaTM面向?qū)ο蟮木幊陶Z言編寫的應(yīng)用程序,支持一具體的JavaTMRMI應(yīng)用程序界面(API)。此API在例如太陽微系統(tǒng)公司(SunMicrosystems,Inc.)標(biāo)題為“遠程定義法啟用規(guī)范”的文獻(1997)中有說明,該文獻可由通用資源定位器(URL)http//java.sun.com/products/jdk/1.1/docs/guide/rmiTOC.doc.html提供,并通過引用歸并于此。Java語言在許多教科書中有說明,其中一本為James Gosling,Bill Joy,和Guy Steele著,Addison-Wesley于1996年出版的名稱為“Java語言規(guī)范”的教科書。Java和基于Java的商標(biāo)均為太陽微系統(tǒng)公司在美國等國家內(nèi)的商標(biāo)或注冊商標(biāo)。
Java RMI假定Java運行時系統(tǒng)具有同機種環(huán)境,因而Java RMI無論何時只要可能便利用Java語言的對象模型。在JavaTM分布式對象模型中,遠程對象是其定義法可由實際上在不同機器上的另一Java運行時系統(tǒng)所調(diào)用的遠程對象。遠程對象由規(guī)定遠程對象定義法的Java語言編寫的一個或多個遠程界面定義。例如,界面能夠使在遠程對象上調(diào)用定義法的單元在不規(guī)定那些定義法實施的情況下對遠程對象所支持的定義法進行定義。
“無用單元收集”是科技文獻和相關(guān)技術(shù)中的術(shù)語,是指用于實現(xiàn)存儲管理尤其是自動存儲器無用單元收集的算法類。有許多公知的無用單元收集算法,包括引用計數(shù)、標(biāo)記清掃和新生的無用單元收集算法。上述以及其他無用單元收集算法在一本Richard Jones和Raphael Lins著,John Wiley & Sons于1996年出版的名稱為“無用單元收集,自動動態(tài)存儲器管理算法”的書中有詳細的說明。
分布式無用單元收集將對無用單元的記述延伸至分布式計算系統(tǒng)領(lǐng)域,當(dāng)分布式系統(tǒng)中任何計算機上沒有應(yīng)用程序應(yīng)用它們時便回收資源。自動分布式無用單元收集進程將編程器從要刪除遠程對象何時安全這種確定當(dāng)中解放出來。在沒有分布式無用單元收集器(DGC)的情況下,一遠程對象會需要對引用對象的所有客戶機保持跟蹤,當(dāng)所有客戶機不再引用那個對象時便可回收對象存儲。對于此功能,JavaRMI的DGC依靠與Modula-3的Network Objects(網(wǎng)絡(luò)對象)相似的引用計數(shù)無用單元收集算法。參見1994年115期數(shù)字設(shè)備公司系統(tǒng)研究中心技術(shù)報告中Birrell,Nelson和Owicki著的“Network Objects(網(wǎng)絡(luò)對象)”。
要實現(xiàn)引用計數(shù)的無用單元收集,作為在Java運行時系統(tǒng)頂端上實施Java RMI的Java RMI運行時系統(tǒng),對通過本地虛擬機(VM)執(zhí)行的計算實體(即客戶機)所引用的全部遠程對象保持跟蹤。JavaTMVM(JVM)是運行時系統(tǒng)的抽象計算機,該運行時系統(tǒng)以字節(jié)代碼形式接收程序指令,并通過動態(tài)地將它們變換為諸如目標(biāo)代碼這種執(zhí)行形式來解釋這些字節(jié)代碼,并執(zhí)行它們。JVM在一本Tim Lindholm和FrankYellin著,Addison Wesley于1996年出版的名稱為“Java虛擬機規(guī)范”的教科書中有詳細的說明。
當(dāng)計算實體指向遠程對象時,計算實體的本地RMI運行時便使相對應(yīng)的引用計數(shù)遞增。這樣一種引用通常稱為“強”引用,說成計算實體保持對于該遠程對象的強引用。強引用是那種要防止(遠程)對象被收集的引用。對于遠程對象的第一引用致使運行時系統(tǒng)將一“已被引用”的消息發(fā)送至用于那對象(例如該已被引用的對象由分布式系統(tǒng)中另一機器所保持)的RMI運行時。當(dāng)發(fā)現(xiàn)遠程對象在本地VM中未被引用時,本地RMI運行時使相應(yīng)的引用計數(shù)遞減。
當(dāng)本地VM刪除對于一遠程對象的最后引用時,一“未被引用”的消息送至與那對象相對應(yīng)的RMI運行時。當(dāng)一遠程對象未被任何客戶機引用時,該遠程對象的RMI運行時系統(tǒng)便對于其“本地”對象(客戶機認(rèn)為是遠程對象)采用一弱引用。假使對于該對象沒有其他本地“強”引用存在,弱引用允許遠程對象的無用單元收集器刪除該對象。如同在正常的對象壽命周期中,在無用單元收集器確定不再有對于該對象的強引用存在后調(diào)用結(jié)束進程。一種結(jié)束進程致使分配給一對象的存儲器返回給存儲器堆用于重新利用。只要有對于遠程對象的本地“強”引用存在,就不可能按此方式由無用單元收集器回收,可在遠程調(diào)用中傳遞或返回給客戶機。傳遞遠程對象將VM用的標(biāo)識符加到傳遞給被引用的集合的那個上面。來自該接收VM的被引用的調(diào)用結(jié)果,該RMI運行時將保持對于遠程對象的強引用來防止收集。
需要“未被引用”的通知即不再有客戶機保持引用的通知的遠程對象,必須實施稱為“java.rmi.server.Unreferenced”界面的特定界面。按此方式,當(dāng)來自遠程實體(例如對象的前客戶機)的對于對象的所有引用不再存在時,將會調(diào)用對象的名稱為“未被引用”的定義法。當(dāng)對象的引用組變?yōu)榭罩脮r便調(diào)用該未被引用的定義法。
注意若在客戶機和遠程對象之間存在網(wǎng)絡(luò)分區(qū),便由于該傳送會認(rèn)為該客戶機崩潰因而很可能遠程對象的過早收集將發(fā)生。由于過早收集的可能性,遠程引用不能保證引用的完整性;換言之,總有可能遠程引用實際不會指向一現(xiàn)存的對象。用這樣一種引用的努力將產(chǎn)生一遠程例外差錯,該差錯必須由利用該引用的計算實體來處理。
因而,需要一系統(tǒng)能夠使計算實體來確定遠程對象的狀態(tài)。通過獲得這種狀態(tài)信息,計算實體可更好地管理對于遠程對象的引用,在不阻止遠程對象受到無用單元收集的情況下,避免不想要的遠程例外。
發(fā)明概述本發(fā)明的系統(tǒng),如在此具體和概要的說明,所具有的方法和裝置用于在分布式系統(tǒng)中有選擇地提供與遠程對象相關(guān)的狀態(tài)變化。該方法包含對來自一計算實體以接收對于與遠程對象相關(guān)狀態(tài)變化的通知的請求進行登錄。對通知請求的登錄致使包括該遠程對象位置的識別符在內(nèi)的對于遠程對象的遠程弱引用的創(chuàng)建。
依據(jù)該遠程弱引用的識別符,周期性地將一請求發(fā)送至一位置。當(dāng)確定發(fā)生過與遠程對象相關(guān)的狀態(tài)變化時,便通知所登錄的計算實體。
附圖簡要說明合并于本說明書并構(gòu)成其一部分的附圖,對本發(fā)明的若干實施例加以圖示,并與說明書一起有助于說明本發(fā)明原理。附圖中包括

圖1示出可實施本發(fā)明系統(tǒng)的示范性網(wǎng)絡(luò)結(jié)構(gòu);圖2是可用以實施本發(fā)明的計算機系統(tǒng)其示范性系統(tǒng)結(jié)構(gòu)的框圖;圖3是表示本發(fā)明分布式系統(tǒng)中用于處理遠程對象的數(shù)據(jù)流的框圖;圖4A和圖4B是表示本發(fā)明實施例分布式弱引用進程客戶機一側(cè)功能所執(zhí)行動作的流程圖;以及圖5是表示本發(fā)明實施例分布式弱引用進程服務(wù)器一側(cè)功能所執(zhí)行動作的流程圖。
詳細說明現(xiàn)具體參見如附圖所示的本發(fā)明實施例。在可能的情況下,整個附圖和以下說明中對相同或相似部分均用相同標(biāo)號。
介紹本發(fā)明系統(tǒng)針對現(xiàn)有技術(shù)的不足,提供一種用于分布式系統(tǒng)中有選擇地提供與遠程對象相關(guān)的狀態(tài)變化的方法和裝置。這里,術(shù)語“遠程”用來區(qū)別位于指定用于與一計算實體相關(guān)聯(lián)工作的機器(諸如VM)的地址空間的對象和位于同指定用于與該計算實體相關(guān)聯(lián)工作的機器的地址空間不同的地址空間的對象,后者表示一“遠程”對象。因此,假使計算實體所用的地址空間與保持對象的地址空間不同,一位于與計算實體相同的物理機器上的對象可相對于那實體來說,認(rèn)為是一“遠程”對象。
總之,本發(fā)明的方法和裝置登錄來自計算實體的請求以接收對于與遠程對象相關(guān)的“存活”的通知。這里,術(shù)語“存活”用來指遠程對象在一特定時間是否可訪問。在例如網(wǎng)絡(luò)分區(qū)阻止計算實體訪問遠程對象或該遠程對象被無用單元收集時,遠程對象確定為不可訪問。因阻止其訪問與遠程對象相關(guān)機器的與計算實體機器的通信問題或與遠程對象機器相關(guān)的通信問題,而可能發(fā)生這種分區(qū)。
具體來說,當(dāng)一計算實體引用遠程對象時,該實體保留一對于遠程對象的強引用。計算實體還可以利用RMI運行時系統(tǒng)登錄來接收對于遠程對象“存活”當(dāng)中變化的通知。這樣一種登錄涉及RMI運行時系統(tǒng)的登錄通知進程,致使創(chuàng)建一“遠程弱引用”,是一種對于從強引用得到的遠程對象的引用。遠程對象的遠程弱引用將不會阻止遠程對象被收集。
RMI運行時系統(tǒng)依據(jù)一組遠程弱引用,周期性地將狀態(tài)請求發(fā)送給與相應(yīng)的遠程對象相關(guān)的機器。然后依據(jù)遠程對象狀態(tài)即遠程對象“存活”的改變(若有)向所登錄的計算實體提供對請求進行答復(fù)的一個或多個答復(fù)。
分布式系統(tǒng)本發(fā)明的方法和系統(tǒng)工作于包含例如多個同種機器或異種機器的分布式系統(tǒng)中。圖1示出一示范性分布式系統(tǒng)。該分布式系統(tǒng)總體包含多個部件,包括硬件和軟件兩者。示范性分布式系統(tǒng)(1)允許系統(tǒng)用戶在多個設(shè)備的網(wǎng)絡(luò)上分享服務(wù)和資源;(2)向程序員提供允許開發(fā)健全、安全的分布式系統(tǒng)的工具和編程圖版;以及簡化分布式系統(tǒng)的系統(tǒng)管理任務(wù)。為了實現(xiàn)這些目標(biāo),分布式系統(tǒng)采用JavaTM編程環(huán)境以允許代碼和數(shù)據(jù)兩者以無縫方式在設(shè)備間移動。因而,分布式系統(tǒng)鋪設(shè)在JavaTM編程環(huán)境的頂部,并利用該環(huán)境的特性,包括由此提供的安全性和健壯型。該編程環(huán)境在Jaworski著的Java 1.1開發(fā)人員指南(Sams.net)(1997)有更為全面的說明。
示范性分布式系統(tǒng)中,不同計算機和設(shè)備結(jié)合成對用戶來說,表現(xiàn)為單個系統(tǒng)。通過表現(xiàn)為單個系統(tǒng),該分布式系統(tǒng)在不放棄個人計算機或工作站靈活性和個性化響應(yīng)的情況下,提供單個系統(tǒng)可提供的訪問簡化和共享的能力。分布式系統(tǒng)可包含在地理范圍分布、并就信任、系統(tǒng)管理和政策的基本記述達成一致的用戶所操作的數(shù)千個設(shè)備。
位于分布式系統(tǒng)內(nèi)的是對一個或多個設(shè)備所提供的服務(wù)進行不同的邏輯分組,每一這種邏輯分組稱為Djinn。“服務(wù)”是指能夠為用戶、程序、設(shè)備或另一服務(wù)訪問的,并能夠計算、與存儲有關(guān)、與通信有關(guān)、與向另一用戶提供訪問有關(guān)的資源、數(shù)據(jù)或功能程序。作為Djinn部分提供的業(yè)務(wù)例包括諸如打印機、顯示器和盤這類設(shè)備;諸如應(yīng)用程序或?qū)嵱贸绦蜻@類軟件;諸如數(shù)據(jù)庫和文檔這類信息;以及系統(tǒng)用戶。
用戶和設(shè)備均可以加入Djinn。當(dāng)加入Djinn時,用戶或設(shè)備便向Djinn增加0或更多的業(yè)務(wù),并可以訪問其所包含的任意一種業(yè)務(wù)。這樣,設(shè)備和用戶結(jié)合形成為一Djinn來共享對其業(yè)務(wù)的訪問。該Djinn的諸多業(yè)務(wù)在程序設(shè)計上表現(xiàn)為Java編程環(huán)境的諸多對象,它們可以包括其他對象、按不同編程語言寫成的軟件部件、或硬件設(shè)備在內(nèi)。一業(yè)務(wù)具有一接口,定義可就那種業(yè)務(wù)請求的諸多操作,這類業(yè)務(wù)類型確定組成那種業(yè)務(wù)的諸多接口。
圖1所示的分布式系統(tǒng)100包含由網(wǎng)絡(luò)108互聯(lián)的計算機102,計算機104和設(shè)備106。設(shè)備106可以是諸如打印機、傳真機、存儲設(shè)備等若干設(shè)備中的任意設(shè)備。網(wǎng)絡(luò)108可以是局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和互聯(lián)網(wǎng)(Internet)。作為所包含的分布式系統(tǒng)100雖僅示出2臺計算機和1臺設(shè)備,但本領(lǐng)域的技術(shù)人員會理解,分布式系統(tǒng)100可包括另外的計算機和設(shè)備,甚至可包括單單是計算機而沒有任何設(shè)備。
圖2更為詳細地示出計算機102來表示分布式系統(tǒng)100的若干軟件部件。計算機102包括存儲器202、第二存儲設(shè)備204、中央處理單元(CPU)206、輸入設(shè)備208和視頻顯示器210。存儲器202包括一查詢業(yè)務(wù)212、發(fā)現(xiàn)服務(wù)器214、RMI218和Java運行時系統(tǒng)216。運行時系統(tǒng)216包括Java VM220和無用單元收集器(GC)224。第二存儲設(shè)備204包括JavaTM空間222。
如上文所述,分布式系統(tǒng)100基于Java編程環(huán)境,因而利用Java運行時系統(tǒng)216。該Java運行時系統(tǒng)216包括JavaTMAPI(未具體圖示),允許Java運行時系統(tǒng)頂部上面運行的程序按與平臺無關(guān)的方式訪問包括主機操作系統(tǒng)視窗能力和聯(lián)網(wǎng)能力在內(nèi)的不同系統(tǒng)功能(未圖示)。因為Java API對移植Java運行時系統(tǒng)的全部操作系統(tǒng)總體提供單個公用API,因而不論是主機平臺的操作系統(tǒng)還是硬件配置,運行于Java運行時系統(tǒng)頂部上面的各程序均按與平臺無關(guān)的方式運行。Java運行時系統(tǒng)216作為位于加州景山的太陽微系統(tǒng)(Sun Microsystems)公司可供給的JavaTM軟件開發(fā)套件(JDK)當(dāng)中的部分來提供。
Java虛擬機220也有利于平臺的無關(guān)性。Java虛擬機220象一抽象計算機那樣運作,按字節(jié)代碼形式從程序當(dāng)中接收指令,并通過動態(tài)地將它們變換為諸如目標(biāo)代碼這種執(zhí)行形式來解釋這些字節(jié)代碼,并執(zhí)行它們。無用單元收集器(GC)224實施一無用單元收集進程來管理存儲器資源。GC 224通常確定何時對象不再被引用,并依據(jù)該確定結(jié)果對回收相關(guān)存儲器資源的進程進行初始化。
RMI 218通過允許在一個計算機或設(shè)備上執(zhí)行對象來方便遠程定義法啟用,在另一計算機或設(shè)備上調(diào)用一對象的諸多定義法。RMI和Java虛擬機也作為Java軟件開發(fā)套件的部分提供。RMI 218包括一分布式無用單元收集器(DGC)226,實施與Modula-3的網(wǎng)絡(luò)對象(Network Objects)相似的引用計數(shù)無用單元收集算法。
查詢服務(wù)212定義對一特定Djinn可供給的諸多服務(wù)。也就是說,在示范性分布式系統(tǒng)100內(nèi)可以有超過1個的Djinn,因而有超過1個的查詢服務(wù)。該查詢服務(wù)212在Djinn內(nèi)每一服務(wù)包含一個對象,每一對象則包含有利于訪問相應(yīng)服務(wù)的種種方法。查詢服務(wù)212及其訪問在前面已通過引證歸并的發(fā)明名稱為“有利于訪問查詢服務(wù)的方法和系統(tǒng)”這一共同待審的美國專利申請U.S.Ser.No.09/044,826中有更加詳細的說明。
發(fā)現(xiàn)服務(wù)器214當(dāng)有新設(shè)備加入到示范性分布式系統(tǒng)100時,在稱為啟動和加入或發(fā)現(xiàn)的處理期間進行檢測,當(dāng)檢測有這一新設(shè)備時,發(fā)現(xiàn)服務(wù)器便向查詢服務(wù)212傳遞一對于該新設(shè)備的引用,以便該新設(shè)備可將其服務(wù)與查詢服務(wù)一起登錄并成為Djinn一員。登錄后,新設(shè)備成為該Djinn一員,從而可以訪問查詢服務(wù)212中包含的全部服務(wù)。該啟動和加入處理在前面已通過引證歸并的發(fā)明名稱為“分布式系統(tǒng)中提供可下載代碼用于與設(shè)備通信的裝置和方法”這一共同待審的美國專利申請U.S.Ser.No.09/044,939中有更加詳細的說明。
JavaSpaceTM222是分布式系統(tǒng)100中諸多程序用來存儲對象的對象資源庫。諸多程序利用JavaSpaceTM222來持久地存儲諸多對象,并使之可由分布式系統(tǒng)中的其他設(shè)備訪問。Java空間(Java space)在已通過引證歸并的發(fā)明名稱為“利用多形態(tài)入口和入口匹配的數(shù)據(jù)庫系統(tǒng)”、于1997年11月17日申請并轉(zhuǎn)讓給共同受讓人的共同待審美國專利申請U.S.Ser.No.08/971,529中有更加詳細的說明。本領(lǐng)域技術(shù)人員會理解,分布式系統(tǒng)100可包含大于1個的查詢服務(wù)、發(fā)現(xiàn)服務(wù)和Java空間(JavaSpaces)。
分布式弱引用框架現(xiàn)參見圖3,說明本發(fā)明的在分布式系統(tǒng)中利用遠程弱引用來實施遠程對象登錄通知進程的框架。圖3示出2個計算機305和345,可以與分布式系統(tǒng)100中示出的計算機102和104相對應(yīng)。每一計算機305和345包括一分布式弱引用進程(DWERP)320和360,分別實施遠程對象的登錄通知進程。DWERP320和360可以按例如Java編程語言編寫的程序代碼來實施,并作為RMI 218的部分存儲于存儲器202。
為了便于這種說明,計算機305將稱為客戶機,因為它包括如引用遠程對象的進程310所示的計算實體。相反,計算機345則稱為服務(wù)器,因為它包含對象350,相對于在本例中尋找對象350狀態(tài)信息的進程310來說構(gòu)成一遠程對象。(該遠程對象可定位于圖1和圖2所示結(jié)構(gòu)的分布式系統(tǒng)Java空間222中。)雖然這種說明參照客戶機和服務(wù)器與不同的物理計算機相對應(yīng),但仍能夠配置單個計算機使之作為客戶機和服務(wù)器工作。例如,可對物理的機器進行分區(qū)來支持客戶機和服務(wù)器其分開的虛擬機和相應(yīng)的地址空間。
當(dāng)進程310接收對于對象350的引用時便說進程310保持一對于對象350的“強”引用330。“強”引用可用于調(diào)用定義法,或作為參數(shù)傳遞,或在RMI調(diào)用中返回數(shù)值。雖然本例中進程310保持一對于對象350的“強”引用,但分布式系統(tǒng)中另一計算實例保持一對于對象350的“強”引用也行,而進程310則尋找對于與對象350相關(guān)狀態(tài)的通知。不論哪一情況,進程310用DWERP320登錄一請求來接收對象350“存活”變化的通知。
DWERP 320監(jiān)測影響對象350“存活”的事件的發(fā)生,從而通知所登錄的進程310。盡管其他實施例可允許進程310接收遠程對象狀態(tài)的周期性更新,但在一個實施例中,當(dāng)檢測出有一事件影響遠程對象350“存活”時便僅通知進程310。
若網(wǎng)絡(luò)分區(qū)阻止進程310訪問對象350,DWERP 320便向進程310提供一事件通知,因為進程310登錄為接收這樣一種通知。這樣一種分區(qū)會作為客戶機305和分布式系統(tǒng)間失去連接性或服務(wù)器345和分布式系統(tǒng)間失去連接性的后果而發(fā)生。客戶機一側(cè)分區(qū)的事件中,DWERP 320簡單地檢測該事件,并通知進程310該事件。在服務(wù)器一側(cè)進行網(wǎng)絡(luò)分區(qū)或服務(wù)器345無用單元收集周期期間其回收造成的對象“存活”變化這種情況下,DWERP 320必須與服務(wù)器345的DWERP 360通信來獲得影響對象350“存活”的上述類型事件的有關(guān)信息。
最后,DWERP 320周期性地發(fā)送“ping”或狀態(tài)請求給計算機345的DWERP360。如圖3所示,DWERP 360接收到DWERP 320的ping。本例中,遠程弱引用340用于確定DWERP 360和對象350在服務(wù)器345上的位置。注意,使與遠程對象相關(guān)的計算機pinging的進程,相對于登錄進程來說是異步進行的。
服務(wù)器345的DWERP 360監(jiān)測包括對象350在內(nèi)的駐留對象或本地對象。注意,服務(wù)器345的RMI的DGC保留對于指定為RMI調(diào)用的遠程對象的“本地”對象的引用列表。DWERP 360采用此信息監(jiān)測本地對象。
依據(jù)ping標(biāo)識的所選定對象的狀態(tài),服務(wù)器的DWERP 360返回一合適的答復(fù)。本例中,DWERP 360返回一對于DWERP 320的ping的答復(fù),表明與對象350相關(guān)的“存活”沒有變化。因為對象350未被無用單元收集,并且沒有網(wǎng)絡(luò)分區(qū)發(fā)生,本例中DWERP 360的答復(fù)表明對象350仍可訪問。但若根據(jù)不再存在遠程或本地的對于對象的強引用使得對象350已被無用單元收集,DWERP 360的答復(fù)便會響應(yīng)DWERP 320的ping表明對象350這樣一種狀態(tài)。在此情況下,DWERP 320會依據(jù)從服務(wù)器345的DWERP 360接收的答復(fù)通知進程310對象350“存活”的變化。這樣,若答復(fù)表明遠程對象350的“存活”沒有變化,進程310則接收無事件通知??傊?,僅當(dāng)發(fā)生和檢測出對象350“存活”變化的事件,才提供事件通知。
由上述討論可知,分布式弱引用進程包含兩部件功能。第一功能是在事務(wù)的客戶機一側(cè)執(zhí)行的功能,第二功能是在事務(wù)的服務(wù)器一側(cè)執(zhí)行的功能。下面結(jié)合圖4流程圖說明DWERP客戶機一側(cè)功能,再下面結(jié)合圖5流程圖說明服務(wù)器一側(cè)功能。
客戶機側(cè)功能如圖4A和圖4B所示,客戶機側(cè)功能包括2方面登錄和通知。圖4A示出登錄所包含的步驟。首先,客戶機側(cè)DWERP從計算實體接收一登記請求,表明實體希望接收對于所選定遠程對象的狀態(tài)的通知(步驟410)。請求包括對于所選定的遠程對象的強引用或?qū)τ谠搹娨盟幬恢玫囊???蛻魴C側(cè)DWERP接著通過創(chuàng)建對于所選定遠程對象的遠程弱引用登錄該請求(步驟412)。
圖4B示出客戶機側(cè)DWERP的通知方面??蛻魴C側(cè)DWERP周期性但不必與登錄方面保持同步這樣訪問遠程對象的遠程弱引用集合來利用計算實體(即遠程對象的服務(wù)器)的相應(yīng)通知請求識別任何遠程對象位置(步驟420),并將ping隨為此請求過存活更新的遠程對象的信息送至各個識別的服務(wù)器(步驟430)。
客戶機側(cè)DWERP接著利用所登錄的遠程弱引用確定各個遠程對象的“存活”是否有了變化(步驟445),并當(dāng)這種變化發(fā)生過時通知相應(yīng)的所登錄的計算實體(步驟450)。若遠程對象的存活沒有變化(步驟445),客戶機側(cè)DWERP返回至一等待狀態(tài)(步驟460),在此場合保持原樣直到為另一ping周期時間。在一個周期中客戶機側(cè)DWERP會同時利用所登錄的遠程弱引用將ping發(fā)送給所有遠程對象的服務(wù)器,或會利用每一周期將ping僅發(fā)送給一個或有限數(shù)目的服務(wù)器。
但如果檢測出有一事件影響遠程對象的“存活”,便向該相應(yīng)的所登錄的計算實體提供該事件的通知(步驟450)。例如,如果網(wǎng)絡(luò)分區(qū)阻止客戶機發(fā)送ping或接收對所發(fā)生ping的答復(fù),當(dāng)發(fā)生過影響遠程對象“存活”的事件時,客戶機側(cè)DWERP便利用所登錄的接收事件通知的請求向一個或多個計算實體提供一事件通知。同樣,當(dāng)DWERP不接收對于ping的答復(fù)時(這表明與遠程對象服務(wù)器的通信有問題),或當(dāng)服務(wù)器的DWERP用遠程對象已被無用單元收集這種指示來答復(fù)時,DWERP也通知計算實體。
按照此方式,客戶機側(cè)功能一旦接收到所選定遠程對象的狀態(tài)信息,便對計算實體對遠程對象狀態(tài)的登錄和對那些登錄的計算實體的通知進行處理。
服務(wù)器側(cè)功能如圖5所示,DWERP服務(wù)器側(cè)功能包含從客戶機器接收每一個ping(步驟510),確定服務(wù)器所標(biāo)識的本地對象的“存活”是否有了變化,例如是否使該對象經(jīng)過無用單元收集(步驟520),并且將包括那對象“存活”的任何變化在內(nèi)的答復(fù)發(fā)送給客戶機器(步驟530)。
盡管本說明書將DWERP客戶機和服務(wù)器功能分開說明,但本領(lǐng)域技術(shù)人員會認(rèn)識到DWERP的兩方面功能很可能會在分布式系統(tǒng)中每一機器上出現(xiàn)來利用本發(fā)明構(gòu)思的全部優(yōu)點。
結(jié)論本發(fā)明系統(tǒng)這樣便實施了一種確定分布式系統(tǒng)中遠程對象存活的變化的方法。總體來說,計算實體登錄請求來接收對于所選定遠程對象存活的變化的通知。周期性地將對于遠程對象的狀態(tài)請求發(fā)送給遠程對象所駐留的服務(wù)器。對遠程對象進行定位,利用對于該遠程對象的遠程弱引用。然后依據(jù)遠程對象存活的變化這一事件的發(fā)生,將對該狀態(tài)請求的答復(fù)提供給所登錄的計算實體。計算實體按此方式可接收對于遠程對象狀態(tài)變化的通知。
為了便于圖示和說明,對實施本發(fā)明進行了如上文所述說明。這并不詳盡,也不是將本發(fā)明限定為所揭示的精確形式。可按照上面的指導(dǎo)進行種種修改和變形,或從本發(fā)明的實施過程中獲得種種修改和變形。例如,所述的實施包括軟件,但也可以將本發(fā)明按硬件和軟件的結(jié)合或單獨按硬件來實施。本發(fā)明可以按面向?qū)ο蠛头敲嫦驅(qū)ο缶幊滔到y(tǒng)來實施。
盡管所說明的本發(fā)明系統(tǒng)和方法工作于示范性分布式系統(tǒng)和Java編程環(huán)境,但本領(lǐng)域技術(shù)人員會理解,本發(fā)明可以實際應(yīng)用于其他系統(tǒng)和編程環(huán)境。此外,所說明的本發(fā)明某些方面可存儲于存儲器中,但本領(lǐng)域技術(shù)人員會理解,這些方面也可存儲在其他類型的計算機可讀介質(zhì)上,例如存儲在如硬盤、軟盤、或CD-ROM這種第二存儲設(shè)備上,或互聯(lián)網(wǎng)載波上,或其他形式的RAM或ROM上。本發(fā)明的保護范圍由權(quán)利要求及其等價物限定。
權(quán)利要求
1.一種包含多平臺的分布式系統(tǒng)中提供與遠程對象相關(guān)的狀態(tài)變化的方法,其特征在于,該方法包括下列步驟提供駐留在這些平臺中一個平臺上的對象;登錄一計算實體的請求,該計算實體相對于對象所駐留的這些平臺中一個平臺來說位于這些平臺中的一個遠程平臺上,來接收對于與該對象相關(guān)的狀態(tài)變化的指示;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)變化;以及依據(jù)該確定向計算實體提供一通知。
2.如權(quán)利要求1所述的方法,其特征在于,依據(jù)確定向計算實體提供一通知的步驟包括僅當(dāng)確定發(fā)生過該事件時才提供通知。
3.如權(quán)利要求1所述的方法,其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括向該對象所駐留的這些平臺中一個平臺發(fā)送一狀態(tài)請求。
4.如權(quán)利要求1所述的方法,其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括確定網(wǎng)絡(luò)分區(qū)是否將與計算實體相關(guān)的平臺和與對象相關(guān)的平臺分開。
5.如權(quán)利要求1所述的方法,其特征在于,對象具有相對應(yīng)的引用指示對象在分布式系統(tǒng)內(nèi)的位置,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括依據(jù)與該對象相對應(yīng)的引用對該對象所駐留的這些平臺中一個平臺進行定位;以及向該定位的平臺發(fā)送一狀態(tài)請求。
6.如權(quán)利要求1所述的方法,其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括從該對象所駐留的這些平臺中一個平臺接收一狀態(tài)指示符。
7.如權(quán)利要求1所述的方法,其特征在于,依據(jù)確定向計算實體提供一通知的步驟包括將對于對象存活的通知返回至該計算實體。
8.如權(quán)利要求1所述的方法,其特征在于,計算實體保留指示對象在分布式系統(tǒng)內(nèi)位置的引用,登錄步驟包括從該計算實體接收對于對象的引用;以及依據(jù)所接收的引用創(chuàng)建與該對象相對應(yīng)的遠程弱引用;以及確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)變化的步驟包括依據(jù)與該對象相對應(yīng)的遠程弱引用對該對象所駐留的這些平臺中一個平臺進行定位;以及向該定位的平臺發(fā)送一狀態(tài)請求。
9.一種包含多地址空間的分布式面向?qū)ο笙到y(tǒng)中確定與對象相關(guān)的狀態(tài)變化的方法,其特征在于,計算實體與地址空間相關(guān)聯(lián)工作,由一處理器執(zhí)行的該方法包括下列步驟提供一與這些地址空間中一個地址空間相關(guān)聯(lián)工作的計算實體;對于一對象提供一引用,該對象相關(guān)的地址空間相對于與該計算實體相關(guān)的地址空間來說處于遠端;登錄來自該計算實體以通知與該對象相關(guān)的狀態(tài)變化的請求;以及確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化。
10.如權(quán)利要求9所述的方法,其特征在于,該確定步驟包括接收一與該對象相關(guān)的狀態(tài)已交替變化的指示。
11.如權(quán)利要求9所述的方法,其特征在于,還包括下列步驟僅當(dāng)確定與對象相關(guān)的狀態(tài)已交替變化時才向計算實體提供一通知。
12.如權(quán)利要求9所述的方法,其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括訪問與該對象相關(guān)的地址空間。
13.如權(quán)利要求9所述的方法,其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括確定網(wǎng)絡(luò)分區(qū)是否將與計算實體相關(guān)的地址空間和與對象相關(guān)的地址空間分開。
14.如權(quán)利要求9所述的方法,其特征在于,對象具有相對應(yīng)的引用指示它們在分布式系統(tǒng)內(nèi)的地址空間,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括依據(jù)與該對象相對應(yīng)的引用對與該對象相關(guān)的地址空間進行定位;以及訪問與該對象相關(guān)的地址空間。
15.如權(quán)利要求9所述的方法,其特征在于,還包括當(dāng)確定與對象相關(guān)的狀態(tài)已交替變化時將一存活通知返回至計算實體。
16.一種包含多平臺的分布式系統(tǒng)中提供與對象相關(guān)的狀態(tài)變化的方法,其特征在于,由這些平臺中一個平臺執(zhí)行的方法包括下列步驟從具有一對于對象的引用的遠程平臺接收一狀態(tài)請求;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化;以及依據(jù)該確定將一通知返回至該遠程平臺。
17.一種分布式系統(tǒng)中提供與對象相關(guān)的狀態(tài)變化的方法,其特征在于,該方法包括下列步驟提供一遠程對象;創(chuàng)建一包括遠程對象位置識別符在內(nèi)的對于該遠程對象的引用;當(dāng)遠程對象已被收集時登錄一接收通知的請求;依據(jù)該遠程對象位置識別符周期性地發(fā)送一狀態(tài)請求;確定遠程對象是形成隊列等待收集還是響應(yīng)收到狀態(tài)請求中的一個而已經(jīng)被收集;以及確定遠程對象形成隊列等待收集或響應(yīng)所登錄的請求而已經(jīng)被收集時提供一通知。
18.一種包含多地址空間的分布式系統(tǒng)中確定遠程對象狀態(tài)變化的方法,其特征在于,該方法包括下列步驟提供一駐留在第一地址空間的遠程對象;創(chuàng)建一包括遠程對象位置識別符在內(nèi)的對于第二地址空間該遠程對象的引用;當(dāng)遠程對象已經(jīng)過無用單元收集時登錄一駐留在第二地址空間的進程接收通知的請求;周期性地向第一地址空間發(fā)送一狀態(tài)請求以確定遠程對象狀態(tài);確定遠程對象是否響應(yīng)第一地址空間收到狀態(tài)請求中的一個而經(jīng)過無用單元收集;以及響應(yīng)所登錄的請求將一遠程對象經(jīng)過無用單元收集的通知提供給該進程。
19.一種包含多平臺的分布式環(huán)境中提供與遠程對象相關(guān)的狀態(tài)變化的系統(tǒng),其特征在于,該系統(tǒng)包括第一平臺,包含具有一對象的存儲器;以及相對于該第一平臺來說處于遠端的第二平臺,包含具有程序指令的存儲器;以及一處理器,配置為利用該程序指令執(zhí)行下列步驟登錄一計算實體接收一對于與該對象相關(guān)狀態(tài)變化的指示的請求;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)變化;以及依據(jù)該確定向該計算實體提供一通知。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,處理器還配置為利用程序指令,僅當(dāng)確定發(fā)生過該事件時才提供通知。
21.如權(quán)利要求19所述的系統(tǒng),其特征在于,處理器還配置為利用程序指令來確定網(wǎng)絡(luò)分區(qū)是否將與計算實體和存儲器相關(guān)的平臺分開。
22.一種包含多地址空間的分布式面向?qū)ο笙到y(tǒng)中確定與對象相關(guān)狀態(tài)變化的裝置,其特征在于,一計算實體與該地址空間中一個地址空間相關(guān)聯(lián)工作,并對與一地址空間相關(guān)的對象提供一引用,該地址空間相對于與該計算實體相關(guān)的地址空間來說處于遠端,該裝置包括一登錄部件,配置為登錄一該計算實體要求通知與該對象相關(guān)的狀態(tài)變化的請求;以及一處理器,配置為確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化。
23.如權(quán)利要求22所述的裝置,其特征在于,處理器包括一接收器,配置為接收與對象相關(guān)的狀態(tài)已交替變化的指示。
24.如權(quán)利要求22所述的裝置,其特征在于,還包括一通知部件,配置為僅當(dāng)確定與對象相關(guān)的狀態(tài)已交替變化時才向計算實體提供一通知。
25.如權(quán)利要求22所述的裝置,其特征在于,處理器包括一配置為訪問與對象相關(guān)的地址空間的部件。
26.如權(quán)利要求22所述的裝置,其特征在于,處理器包括一配置為確定網(wǎng)絡(luò)分區(qū)是否將與計算實體相關(guān)的地址空間和與對象相關(guān)的地址空間分開的部件。
27.如權(quán)利要求22所述的裝置,其特征在于,對象具有相對應(yīng)的引用指示它們在分布式系統(tǒng)內(nèi)的地址空間,處理器包括一配置為依據(jù)與該對象相對應(yīng)的引用對與該對象相關(guān)的地址空間進行定位的部件;以及一配置為訪問與該對象相關(guān)的地址空間的部件。
28.如權(quán)利要求22所述的裝置,其特征在于,還包括一通知部件,配置為當(dāng)確定與對象相關(guān)的狀態(tài)已交替變化時向計算實體返回一存活通知。
29.一種包含多平臺的分布式系統(tǒng)中提供與對象相關(guān)的狀態(tài)變化的系統(tǒng),其特征在于,該系統(tǒng)包括具有程序指令的存儲器;以及一處理器,配置為利用該程序指令執(zhí)行下列步驟從具有一對于對象的引用的遠程平臺接收一狀態(tài)請求;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化;以及依據(jù)該確定返回一通知。
30.一種計算機可讀介質(zhì),所包含的指令用于在包含多平臺的分布式系統(tǒng)中提供與遠程對象相關(guān)的狀態(tài)變化,其特征在于,通過執(zhí)行下列步驟提供駐留在這些平臺中一個平臺上的對象;登錄一計算實體的請求,該計算實體相對于對象所駐留的這些平臺中一個平臺來說位于這些平臺中的一個遠程平臺上,來接收對于與該對象相關(guān)的狀態(tài)變化的指示;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)變化;以及依據(jù)該確定向計算實體提供一通知。
31.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,依據(jù)確定向計算實體提供一通知的步驟包括僅當(dāng)確定發(fā)生過該事件時才提供通知。
32.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括向該對象所駐留的這些平臺中一個平臺發(fā)送一狀態(tài)請求。
33.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括確定網(wǎng)絡(luò)分區(qū)是否將與計算實體相關(guān)的平臺和與對象相關(guān)的平臺分開。
34.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,對象具有相對應(yīng)的引用指示對象在分布式系統(tǒng)內(nèi)的位置,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括依據(jù)與該對象相對應(yīng)的引用對該對象所駐留的這些平臺中一個平臺進行定位;以及向該定位的平臺發(fā)送一狀態(tài)請求。
35.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)變化的步驟包括從該對象所駐留的這些平臺中一個平臺接收一狀態(tài)指示符。
36.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,依據(jù)確定向計算實體提供一通知的步驟包括將對于對象存活的通知返回至該計算實體。
37.如權(quán)利要求30所述的計算機可讀介質(zhì),其特征在于,計算實體保留指示對象在分布式系統(tǒng)內(nèi)位置的引用,登錄步驟包括從該計算實體接收對于對象的引用;以及依據(jù)所接收的引用創(chuàng)建與該對象相對應(yīng)的遠程弱引用;以及確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)變化的步驟包括依據(jù)與該對象相對應(yīng)的遠程弱引用對該對象所駐留的這些平臺中一個平臺進行定位;以及向該定位的平臺發(fā)送一狀態(tài)請求。
38.一種計算機可讀介質(zhì),所包含的指令用于在包含多地址空間的分布式面向?qū)ο笙到y(tǒng)中確定與對象相關(guān)的狀態(tài)變化,其特征在于,通過執(zhí)行下列步驟提供一與這些地址空間中一個地址空間相關(guān)聯(lián)工作的計算實體;對于一對象提供一引用,該對象相關(guān)的地址空間相對于與該計算實體相關(guān)的地址空間來說處于遠端;登錄來自該計算實體以通知與該對象相關(guān)的狀態(tài)變化的請求;以及確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化。
39.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,該確定步驟包括接收一與該對象相關(guān)的狀態(tài)已交替變化的指示。
40.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,還包括下列步驟僅當(dāng)確定與對象相關(guān)的狀態(tài)已交替變化時才向計算實體提供一通知。
41.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括訪問與該對象相關(guān)的地址空間。
42.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括確定網(wǎng)絡(luò)分區(qū)是否將與計算實體相關(guān)的地址空間和與對象相關(guān)的地址空間分開。
43.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,對象具有相對應(yīng)的引用指示它們在分布式系統(tǒng)內(nèi)的地址空間,確定是否發(fā)生過一事件使與對象相關(guān)的狀態(tài)交替變化的步驟包括依據(jù)與該對象相對應(yīng)的引用對與該對象相關(guān)的地址空間進行定位;以及訪問與該對象相關(guān)的地址空間。
44.如權(quán)利要求38所述的計算機可讀介質(zhì),其特征在于,還包括當(dāng)確定與對象相關(guān)的狀態(tài)己交替變化時將一存活通知返回至計算實體。
45.一種包含多平臺的分布式系統(tǒng)中提供與對象相關(guān)的狀態(tài)變化的裝置,其特征在于,包括從具有一對于對象的引用的遠程平臺接收一狀態(tài)請求的裝置;確定是否發(fā)生過一事件使與該對象相關(guān)的狀態(tài)交替變化的裝置;以及依據(jù)該確定返回一通知的裝置。
46.一種存儲器,所存儲的數(shù)據(jù)用于由一處理器執(zhí)行的計算實體所訪問,其特征在于,相對于計算實體來說駐留在遠端位置的對象,并當(dāng)對于對象的一組引用空置時對象變?yōu)榭苫厥眨摯鎯ζ靼▽τ谠搶ο蟮倪h程弱引用與對于該對象的該組引用中的任意引用相區(qū)別,當(dāng)對于該對象的該組引用空置時,在沒有防止該對象收回的情況下,該遠程弱引用使得該計算實體獲得與對象相關(guān)的事件的相應(yīng)信息。
全文摘要
本發(fā)明的系統(tǒng),所具有的方法和裝置用于在分布式系統(tǒng)中有選擇地提供與遠程對象相關(guān)的狀態(tài)變化。該方法包含對來自一計算實體以接收對于與遠程對象相關(guān)狀態(tài)變化的通知的請求進行登錄。對通知請求的登錄致使包括該遠程對象位置的識別符在內(nèi)的對于遠程對象的遠程弱引用的創(chuàng)建。依據(jù)該遠程弱引用的識別符,周期性地將一請求發(fā)送至一位置。當(dāng)確定發(fā)生過與遠程對象相關(guān)的狀態(tài)變化時,便通知所登錄的計算實體。
文檔編號G06F17/30GK1298507SQ99805377
公開日2001年6月6日 申請日期1999年2月24日 優(yōu)先權(quán)日1998年2月26日
發(fā)明者A·M·沃爾蕾斯, P·C·瓊斯 申請人:太陽微系統(tǒng)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
双柏县| 安义县| 平泉县| 深水埗区| 山西省| 关岭| 鸡西市| 天全县| 开化县| 海丰县| 文安县| 丰宁| 额敏县| 凤台县| 仪征市| 洛宁县| 凤阳县| 文山县| 海口市| 吴堡县| 阿图什市| 新民市| 宿州市| 沙洋县| 册亨县| 漯河市| 谢通门县| 开封市| 郓城县| 万年县| 航空| 南京市| 孟连| 曲松县| 临颍县| 剑川县| 开封县| 集贤县| 盖州市| 景洪市| 邵阳县|