專利名稱:在分布式系統(tǒng)中租用組成員資格的方法、裝置和產(chǎn)品的制作方法
相關(guān)發(fā)明本申請是美國專利申請?zhí)?8/729,421(1996年10月11日申請)的部分續(xù)展申請,并作為參考資料在此引入。
現(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”)(標注有代理人案卷號No.:06502.0011-01000)的美國專利申請U.S.Ser.No.:09/044,923。
上述相同日期申請的發(fā)明名稱為“用于在分布式系統(tǒng)中租用委派證的方法、裝置和產(chǎn)品”(“Method,Apparatus,and Product for Leasing ofDelegation Certificates in a Distributed System”)(標注有代理人案卷號No.:06502.0011-02000)的美國專利申請U.S.Ser.No.:09/044,838。
上述相同日期申請的發(fā)明名稱為“故障檢測的租用”(“Leasing forFailure Detection”)(標注有代理人案卷號No.:06502.0011-04000)的美國專利申請U.S.Ser.No.:09/044,916。
上述相同日期申請的發(fā)明名稱為“基于事件的系統(tǒng)中用于傳輸行為的方法”(“Method for Transporting Behavior in Event Based System”)(標注有代理人案卷號No.:06502.0054-00000)的美國專利申請U.S.Ser.No.:09/044,933。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中對象的延遲重組和事件通知的遠程裝載”(“Deferred Reconstruction of Objects and Remote Loadingfor Event Notification in a Distributed System”)(標注有代理人案卷號No.:06502.0062-01000)的美國專利申請U.S.Ser.No.:09/044,919。
上述相同日期申請的發(fā)明名稱為“用于遠程定義法調(diào)用的方法和裝置”(“Methods and Apparatus for Remote Method Invocation”)(標注有代理人案卷號No.:06502.0102-00000)的美國專利申請U.S.Ser.No.:09/044,938。
上述相同日期申請的發(fā)明名稱為“用于確定性散列識別遠程定義法的方法和系統(tǒng)”(“Method and System for Deterministic Hashes to identify RemoteMethods”)(標注有代理人案卷號No.:06502.0103-00000)的美國專利申請U.S.Ser.No.:09/045,652。
上述相同日期申請的發(fā)明名稱為“用于確定分布式系統(tǒng)內(nèi)遠程對象狀態(tài)的方法和裝置”(標注有代理人案卷號No.:06502.0104-00000)的美國專利申請U.S.Ser.No.:09/044,790。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于執(zhí)行與遠程進程調(diào)用相關(guān)聯(lián)的處理的可下載靈巧代理”(“Downloadable Smart Proxies forPerforming Processing Associated with a Remote Procedure Call in aDistributed System”)(標注有代理人案卷號No.:06502.0105-00000)的美國專利申請U.S.Ser.No.:09/044,930。
上述相同日期申請的發(fā)明名稱為“遠程定義法的暫停和繼續(xù)”(“Suspension and Continuation of Remote Methods”)(標注有代理人案卷號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”)(標注有代理人案卷號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”)(標注有代理人案卷號No.:06502.0108)的美國專利申請U.S.Ser.No.:09/044,839。
上述相同日期申請的發(fā)明名稱為“數(shù)據(jù)庫中用于類型安全屬性匹配的方法和系統(tǒng)”(“Method and System for Typesafe Attribute Matching in aDatabase”)(標注有代理人案卷號No.:06502.0109-00000)的美國專利申請U.S.Ser.No.:09/044,945。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中動態(tài)查詢服務”(“DynamicLookup Service in a Distributed System”)(標注有代理人案卷號No.:06502.0110-00000)的美國專利申請U.S.Ser.No.:09/044,931。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中提供可下載代碼用于與一設備通信的裝置和方法”(“Apparatus and Method for ProvidingDownloadableCode for Use in Communicating with a Device in a Distributed System”)(標注有代理人案卷號No.:06502.0112-00000)的美國專利申請U.S.Ser.No.:09/044,939。
上述相同日期申請的發(fā)明名稱為“便于存取查找服務的方法和系統(tǒng)(Method and system for Facilitating Access to a Lookup Service”),(標注有代理人案卷號No.:06502.0113-00000)的美國專利申請U.S.Ser.No.:09/044,826。
上述相同日期申請的發(fā)明名稱為“分布式系統(tǒng)中用于動態(tài)驗證信息的裝置和方法”(“Apparatus and Method for Dynamically Verifying Informationin a Distributed System”)(標注有代理人案卷號No.:06502.0114-00000)的美國專利申請U.S.Ser.No.:09/044,932。
1998年2月26日申請的發(fā)明名稱為“用于網(wǎng)絡上動態(tài)分布式計算的方法和裝置”(“Method and Apparatus for Dynamic Distributed Computing Overa Network”)的美國專利申請U.S.Ser.No.:09/030,840。
上述相同日期申請的發(fā)明名稱為“永久性共享存儲空間的交互設計工具”(“An Interactive Design Tool for Persistent Shared Memory Spaces”)(標注有代理人案卷號No.:06502.0116-00000)的美國專利申請U.S.Ser.No.:09/044,936。
上述相同日期申請的發(fā)明名稱為“基于多形態(tài)令牌的控制”(“PolymorphicToken-Based Control”)(標注有代理人案卷號No.:06502.0117-00000)的美國專利申請U.S.Ser.No.:09/044,934。
上述相同日期申請的發(fā)明名稱為“基于堆棧的訪問控制”(“Stack-BasedAccess Control”)(標注有代理人案卷號No.:06502.0118-00000)的美國專利申請U.S.Ser.No.:09/044,915。
上述相同日期申請的發(fā)明名稱為“基于堆棧的安全要求”(“Stack-BasedSecurity Requirements”)(標注有代理人案卷號No.:06502.0119-00000)的美國專利申請U.S.Ser.No.:09/044,944。
上述相同日期申請的發(fā)明名稱為“安全要求的全定義法指定”(“Per-Method Designation of Security Requirements”)(標注有代理人案卷號No.:06502.0120-00000)的美國專利申請U.S.Ser.No.:09/044,837。
A.發(fā)明領(lǐng)域本發(fā)明通常涉及數(shù)據(jù)處理系統(tǒng),并且特別涉及在數(shù)據(jù)處理系統(tǒng)中租用對象的組成員資格(group membership)。
B.相關(guān)技術(shù)的描述適當資源管理對于有效使用計算機是一個重要方面。一般,資源管理包括響應于請求分配資源(例如,存儲器)以及在適當?shù)臅r候(例如,當該請求者不再要求資源時)除去分配資源。一般,資源包括在計算機中執(zhí)行的計算實體(例如,應用、程序、小應用程序,等等)所參照的數(shù)據(jù)。
實踐中,當在計算機上執(zhí)行的應用尋求參照資源時,計算機必須首先分配或指定資源,從而應用可適當?shù)貐⒄账鼈?。當應用不再參照資源,那么計算機可以去分配或回收資源重新使用。在計算機中,每個資源具有唯一“句柄(handle)”,通過該句柄可參照該資源??赏ㄟ^各種方法(諸如,地址、陣列索引、唯一值、指針,等等)來實施該句柄。
資源管理對于單個計算機來說相對簡單,因為容易確定指示何時可回收資源的事件(諸如,何時應用不再參照它們或者在掉電之后)。對于連接多個計算機的分布式系統(tǒng)而言,資源管理就較難一些了,因為在幾個不同計算機中的應用都可應用相同的資源。
在分布式系統(tǒng)中的斷開可能導致不適當和過早回收資源或者回收資源失敗。例如,在分布式系統(tǒng)中的不同計算機上操作的多個應用可參照位于其他機器上的資源。如果在設有資源的計算機與參照那些資源的應用之間的連接被中斷,那么計算機可能過早地回收資源。另一方面,盡管應用不能訪問資源的時間很長,但是計算機還是可永久地保持該資源。
這些困難導致發(fā)展系統(tǒng)來管理網(wǎng)絡資源,其中之一被稱為“分布式垃圾收集”。該術(shù)語描述了由用于分布式系統(tǒng)的語音或運行期系統(tǒng)提供的能夠自動管理由在網(wǎng)絡中的不同計算機上的應用或應用組所用到的資源的功能(facility)。
一般,垃圾收集運用當任一應用部分不再參照資源時可釋放它們以供將來使用的概念。分布式垃圾收集擴展這一概念到分布式計算領(lǐng)域,當沒有應用在任何計算機上引用它們時,回收資源分布式垃圾收集必須在分配資源和引用這些資源之間保持完整性。換句話說,當在網(wǎng)絡中的任一計算機上運行的應用繼續(xù)參照該資源時,不能允許該系統(tǒng)去分配或釋放資源。這種參照資源結(jié)合(reference-to-resourcebinding)(被稱為“參照完整性”)不保證該參考總是允許訪問它所參照的資源。例如,網(wǎng)絡故障可導致該訪問不可行。然而,完整性保證了如果可用該參考來獲得對任一資源的訪問,那么它將是首先參照的相同的資源。
運用垃圾收集的分布式系統(tǒng)還必須回收在有限的將來不再參照的資源。換句話說,系統(tǒng)必須提供沒有“存儲漏洞”的保證。存儲漏洞通常在所有應用撤消對資源的參考時發(fā)生,但是由于例如錯誤地確定一些仍然參照該資源的應用,所以系統(tǒng)不能回收資源來重新使用。
參照完整性故障和存儲漏洞通常導致在參照該資源的應用和管理這些資源的分配和去分配的垃圾收集系統(tǒng)之間斷開。例如,斷開在參照資源的應用和管理該資源的垃圾收集系統(tǒng)之間的網(wǎng)絡連接可能阻止垃圾收集系統(tǒng)確定是否以及何時回收資源。另一方面,垃圾收集系統(tǒng)可能錯誤地確定由于應用不在預定時間內(nèi)訪問資源,所以它可收集該資源。以用大量技術(shù)來通過嘗試保證這種機理在沒有存儲漏洞的條件下保持參照完整性,提高分布式垃圾收集機理。一種傳統(tǒng)的方法用參考計數(shù)(reference counting)形式,其中對于參考每個資源的應用數(shù)進行計數(shù)。當資源的計數(shù)到了零時,垃圾收集系統(tǒng)可回收資源。然而,這種資源計數(shù)方法只有在用相應的參考計數(shù)器來產(chǎn)生資源時才有用。在這種情況下,當附加應用參考該資源時,垃圾收集系統(tǒng)遞增資源的參考計數(shù),而當應用不再參考該資源時便遞減計數(shù)。
然而,特別在分布式系統(tǒng)中可能發(fā)生故障的情況下,參考計數(shù)方法就有問題。這種故障可采取計算機或應用故障或網(wǎng)絡故障的形式,它們阻止傳遞通知垃圾收集系統(tǒng)一個資源不再參考的消息。如果由于網(wǎng)絡斷開而不傳遞消息,那么垃圾收集系統(tǒng)不知道何時回收資源。
為了阻止這種故障,一些傳統(tǒng)參考計數(shù)方法包括“保持活性(keepalive)”消息,它們還被稱為“砰回(ping back)”。根據(jù)該方法,在網(wǎng)絡中的應用把消息發(fā)送到監(jiān)督資源的垃圾收集系統(tǒng),并指示應用仍可傳播。這些消息阻止垃圾收集系統(tǒng)丟失對資源的參考。不能接收到這種“保持活性”消息意味著垃圾收集系統(tǒng)可遞減對于資源的參考計數(shù),并當計數(shù)到零時,垃圾收集系統(tǒng)可回收該資源。然而,這仍可導致在由于網(wǎng)絡故障而不能接收“保持活性”消息發(fā)生的參考計數(shù)達到零之后過早回收資源。這破壞了參考完整性需求。
解決在垃圾收集系統(tǒng)中的參考完整性問題的另一個建議方法是不僅保持參考計數(shù),而且還保持與參考資源的每個計算實體相對應的標識符。參見A.Birrell等人所著的“對于網(wǎng)絡對象的分布式垃圾收集”(號116,數(shù)字系統(tǒng)研究中心,1993年12月15日)。這種方法存在著于參考計數(shù)方法相同的問題。此外,該方法要求對于參考每個資源的每個計算實體的附加唯一標識符,添加開銷,這導致在分布式系統(tǒng)中不必要地增加通信以及增加存儲要求(即,與參考每個資源的應用相對應的標識符表)。
發(fā)明概述根據(jù)本發(fā)明,通過在分布式系統(tǒng)中的各方(例如,保持參考資源的應用和管理該資源的垃圾收集系統(tǒng))同意保證資源和對該資源的參考期間租用資源,保證參考完整性而沒有昂貴的存儲漏洞。在租用日期結(jié)束時,對參考資源的保證將繼續(xù),允許垃圾收集系統(tǒng)回收資源。由于保持參考資源的應用以及管理該資源的垃圾收集系統(tǒng)同意有限的保證租用時期(period),所以這兩者都可知道租用和保證何時期滿。這保證了在參考租用持續(xù)時間內(nèi)的參考完整性,并避免了由于網(wǎng)絡差錯而不能釋放資源的情況。
根據(jù)本發(fā)明的另一個實施例(如在下面將具體描述),提供了一種租用組成員資格的方法。該方法包括下列步驟接收來自遠程對象的特定激活組和租用日期的租用請求,并確定將遠程對象與在激活組中的其他對象(如果有的話)相同的地址空間相關(guān)聯(lián)并在其中運行的租用日期。
附圖簡述加入并構(gòu)成本說明書一部分的附圖示出了本發(fā)明的實施例,并于說明書一起用來解釋本發(fā)明的優(yōu)點和原理。在附圖中,
圖1是根據(jù)本發(fā)明的實施方法由應用調(diào)用處理器執(zhí)行的步驟的流程圖;圖2是根據(jù)本發(fā)明的實施方法由服務器調(diào)用處理器執(zhí)行的處理骯臟調(diào)用的步驟的流程圖;圖3是根據(jù)本發(fā)明的實施方法由服務器調(diào)用處理器執(zhí)行的處理清除調(diào)用(clear call)的步驟的流程圖;圖4是根據(jù)本發(fā)明的實施方法由服務器調(diào)用處理器執(zhí)行的啟動垃圾收集處理的步驟的流程圖5是在分布式處理系統(tǒng)中較佳調(diào)用流的示圖;圖6是根據(jù)本發(fā)明的實施方法調(diào)用(invocation)服務的組件的方框圖;圖7是可用在本發(fā)明的實施過程中的分布式處理系統(tǒng)的示圖;圖8是根據(jù)本發(fā)明的實施方法在分布式處理系統(tǒng)的平臺中的各軟件組件(component)的示圖;圖9是使用本發(fā)明的另一個實施例使用的數(shù)據(jù)處理系統(tǒng)的示圖;圖10是根據(jù)本發(fā)明的另一個實施例,當改變激活組時由對象執(zhí)行的步驟的流程圖;圖11是由圖9的激活影子進程(daemon)執(zhí)行的步驟的流程圖;和圖12是根據(jù)本發(fā)明的另一個實施例,當遠程對象要求到激活組的成員資格時由激活組執(zhí)行的步驟的流程圖。
詳細描述下面,詳細描述在附圖中所示的本發(fā)明的實施方法。其中,在附圖和下面的說明中用相同標號表示相同或相似的部分。
由以傳統(tǒng)分布式處理系統(tǒng)體系結(jié)構(gòu)組成的計算機實施本發(fā)明。然而,實施本發(fā)明的體系結(jié)構(gòu)和步驟不是傳統(tǒng)的,因為對于它們提供保證參考完整性并消除存儲漏洞的分布式垃圾收集方案。
A.概觀位于分布式處理系統(tǒng)中的每個計算機中的方法調(diào)用(MI)組件實施本發(fā)明的分布式垃圾收集方案。MI組件可包括最好以JAVATM編程語言編寫的多個軟件模塊。
一般,無論何時在分布式處理系統(tǒng)中的應用通過名稱查詢作為對一些其他調(diào)用的返回值或另一種方法和搜尋存取資源獲得對分布式資源的參照,應用調(diào)用資源或管理該資源的MI組件。該MI組件(稱為管理MI組件)留意對該資源的未完結(jié)(outstanding)參考的數(shù)量。當對一資源(參考)的參照數(shù)是零時,管理MI組件可回收資源。通常將對一資源的參考數(shù)的計數(shù)稱為“參考計數(shù)”,而且還將遞增參考計數(shù)的調(diào)用稱為“骯臟調(diào)用(dirty call)”。
當應用不再要求分布式資源時,它把不同調(diào)用發(fā)送到該資源或管理MI組件。一旦接收到該調(diào)用,管理MI組件遞減對于該資源的參考計數(shù)??蓪⑦@種丟失參考的調(diào)用稱為“清除調(diào)用(clean call)”。
根據(jù)本發(fā)明的實施方法,骯臟調(diào)用可包括用于參考資源的請求時間間隔,被稱為租用日期。一旦接收到骯臟調(diào)用,管理MI組件發(fā)出表示允許租用的時期的返回調(diào)用。管理MI組件跟蹤用于那些參考的租用日期以及未完結(jié)參考的數(shù)量。結(jié)果,當對資源的參考計數(shù)到零時或當對于資源的租用日期期滿時,管理MI組件可回收資源。
B.過程在MI組件中的應用調(diào)用處理器執(zhí)行如圖1所式的應用調(diào)用過程100的步驟。在管理MI組件中的服務器調(diào)用處理器分別執(zhí)行如圖2-4所示的過程200、300和400的步驟,管理MI組件的垃圾收集器根據(jù)服務器調(diào)用處理器的指令,執(zhí)行傳統(tǒng)的過程來回收前面必定參照的資源。因此,不解釋對于垃圾回收器的傳統(tǒng)過程。
1.應用調(diào)用處理器圖1是過程100的流程圖,其中MI組件的應用調(diào)用處理器用該過程100來處理對于參考由分布式處理系統(tǒng)中的相同或另一個MI組件管理的資源的應用請求。
在應用已獲得對資源的參考之后,應用調(diào)用處理器把骯臟調(diào)用,包括資源的參考和所請求的租用日期,發(fā)送到對于該資源的管理MI組件(步驟110)??砂洋a臟調(diào)用發(fā)送到資源本身或管理MI組件。
于是,應用調(diào)用處理器等待和接收來自管理MI組件(步驟120)的返回調(diào)用。返回調(diào)用包括準許租用日期,在該時期內(nèi)管理MI組件保證骯臟調(diào)用的參考將該資源結(jié)合。換句話說,管理MI組件不同意在準許時期(grant period)內(nèi)收集與骯臟調(diào)用的參考相對應的資源。如果管理MI組件不提供準許時期,或者拒絕租用請求,那么應用調(diào)用處理器將必須發(fā)出另一個骯臟調(diào)用直至它接收到準許時期。
應用調(diào)用處理器監(jiān)視該應用對參考的運用,而且或者當應用清楚地通知應用調(diào)用處理器不再需要該參考或者當應用調(diào)用處理器本身作出這個決定(步驟130)時,應用調(diào)用處理器向管理MI組件發(fā)出清除調(diào)用(步驟140)。通過類似于用于骯臟調(diào)用的方法,可將清除調(diào)用直接送到參考的資源,而且管理MI組件將處理清除調(diào)用。后來,應用調(diào)用處理器從該應用所用到的參考表中去除該參考(步驟150)。
如果用該參考該應用還未做完(步驟130),但是應用調(diào)用處理器確定該參考的準許時期大約期滿(步驟160),于是應用調(diào)用處理器重復步驟110和120以保證由代表該應用的管理MI組件保持對該資源的參考。
2.服務器調(diào)用處理器MI組件的服務器調(diào)用處理器執(zhí)行三個主要過程(1)處理骯臟調(diào)用;(2)處理輸入(incoming)清除調(diào)用;和(3)啟動垃圾收集循環(huán)以在適當?shù)臅r候回收資源。
(ⅰ)骯臟調(diào)用圖2是過程200的流程圖,其中MI組件的服務器調(diào)用處理器用該過程來處理MI軟件組件管理的參考資源的請求,即,骯臟調(diào)用。這些請求來自分布式處理系統(tǒng)中的MI組件的應用調(diào)用處理器,包括相同MI組件的應用調(diào)用處理器作為處理請求的服務器調(diào)用處理器。
首先,服務器調(diào)用處理器接收骯臟調(diào)用(步驟210)。服務器調(diào)用處理器確定可接受的準許時期(步驟220)。準許時期可于請求的租用日期或一些其他時間時期相同。服務器調(diào)用處理器根據(jù)大量條件(包括所請求的資源量和前面對于相同資源準許的其他準許時期數(shù))確定適當?shù)臏试S時期。
當服務器調(diào)用處理器確定不分配資源用于參考骯臟調(diào)用(步驟230),服務器調(diào)用處理器分配所需的資源(步驟240)。
于是,服務器調(diào)用處理器遞增與骯臟調(diào)用的參考相對應的參考計數(shù)(步驟250),設定用于參考資源結(jié)合的可接受準許時期(步驟260)和以準許時期把返回調(diào)用發(fā)送到應用調(diào)用處理器(步驟270)。通過這種方法,服務器調(diào)用處理器控制關(guān)于在它的控制下的資源參考的輸入骯臟調(diào)用。
應用可通過在當前租用期滿之前請求延長而發(fā)送骯臟調(diào)用來延長租用。如過程200所示,將延長租用的請求視為如同初始請求租用。延長只意味著在一些附加時間間隔內(nèi)不回收資源,除非參考計數(shù)到零。
(ⅱ)清除調(diào)用MI組件的服務器調(diào)用處理器還處理來自應用調(diào)用處理器的輸入清除調(diào)用。當在分布式處理系統(tǒng)中的應用不再要求參考資源時,它通知管理所參考的資源的MI組件,從而可回收資源來重新使用。圖3是帶有MI組件的服務器調(diào)用處理器用來處理清除調(diào)用的步驟的過程300的流程圖。
當服務器調(diào)用處理器接收帶有MI組件管理的資源參考的清除調(diào)用時(步驟310),服務器調(diào)用處理器遞減相應的參考計數(shù)(步驟320)??砂亚宄{(diào)用發(fā)送到該資源,同時服務器調(diào)用處理器監(jiān)視資源并執(zhí)行過程300來處理調(diào)用。結(jié)果,服務器調(diào)用處理器將返回調(diào)用發(fā)送到MI組件,它發(fā)送清除調(diào)用以確認接收(步驟330)。根據(jù)本發(fā)明的實施方法,不能重新使用丟失參考的清除調(diào)用,但是必須確認它。
(ⅲ)垃圾收集服務器調(diào)用處理器還啟動垃圾收集循環(huán)來回收資源,為此它確定是對該資源不做任何參考還是對于該資源的同意租用日期已期滿。如圖4所示的過程400包括服務器調(diào)用處理器用來啟動垃圾收集循環(huán)的步驟的流程圖。
服務器調(diào)用處理器監(jiān)視參考計數(shù)以及準許的租用日期,并確定對于MI組件所管理的資源,參考計數(shù)是否為零,或者對于該參考的準許時期是否已期滿(步驟410)。當任一條件存在時,服務器調(diào)用處理器啟動該資源的垃圾收集(步驟420)。否則,服務器調(diào)用處理器繼續(xù)監(jiān)視參考計數(shù)和準許租用日期。
C.調(diào)用流程圖5是示出在分布式處理系統(tǒng)中的MI組件之間的調(diào)用流程圖。管理MI組件525通過監(jiān)視對那些資源530的參考來管理資源530(參見垃圾收集505)。由于管理MI組件525管理資源,所以管理MI組件525的服務器調(diào)用處理器執(zhí)行該調(diào)用流程描述的操作。
圖5還分別示出應用510和540具有相應的MI組件515和545。每個應用510和540都獲得對一個資源530的參考,并尋求獲得訪問資源530之一,從而必定對相應的資源做參考。為了獲得訪問,應用510和540分別調(diào)用它們的相應MI組件515和545,以分別將骯臟調(diào)用551和571發(fā)送到MI組件525。由于MI組件515和525處理應用請求來訪問另一個MI組件(諸如,管理MI組件525)管理的資源530,所以MI組件515和545的應用調(diào)用處理器執(zhí)行該調(diào)用流程描述的操作。
響應于骯臟調(diào)用551和571,管理MI組件525分別把返回調(diào)用552和572發(fā)送到每個MI組件515和545。骯臟調(diào)用包括用于骯臟調(diào)用551和571的參考的準許租用日期。
類似地,圖5還示出MI組件515和545,它們分別把清除調(diào)用561和581發(fā)送到管理MI組件525。清除調(diào)用561和581通知管理MI組件525應用510和540分別不再請求訪問在清除調(diào)用561和581規(guī)定的資源。管理MI組件525分別以返回調(diào)用562和582響應于清除調(diào)用561和581。返回調(diào)用562和582與返回調(diào)用552和572的不同之處在于返回調(diào)用562和582是來自接收到的清除調(diào)用561和581的M1組件525的簡單確認。
應用510和540都請求訪問相同的資源。例如,應用510可請求訪問“RESOURCE(1)”,同時前面準許應用540訪問該資源。MI組件525通過在同意的租用日期內(nèi)使該資源對應用510和540都可用來處理這種情況。于是,MI組件525將不啟動垃圾收集循環(huán)來回收“RESOURCE(1)”直至應用510和540都丟下它們對該資源的參考或者最近的同意時期已期滿,任何一種情況都首次發(fā)生。
通過允許多于一個應用同時訪問相同資源,本發(fā)明還允許應用在它把清除調(diào)用發(fā)送到管理MI組件以丟下對資源的參考之后,訪問資源。發(fā)生這種情況是因為仍由另一個應用參考該資源或者參考的租用還沒有期滿,從而管理MI組件525還不回收資源。然而,在有限時期之后,或者當不再有任何應用租用或當最后租用期滿時,回收資源。
D.MI組件圖6是根據(jù)本發(fā)明的實施方法的MI組件600的模塊的方框圖。MI組件600可包括對于上述每個參考監(jiān)控的參考組件605、應用調(diào)用處理器640、服務器調(diào)用處理器650和垃圾收集器660。
參考組件605最好用參考數(shù)據(jù)部分610、參考計數(shù)620和準許時期寄存器630構(gòu)成一張表格或可比較結(jié)構(gòu)。MI組件600將參考計數(shù)620和準許時期630用于在相應參考數(shù)據(jù)部分610中規(guī)定的每個參考,來確定何時啟動垃圾收集器660回收相應資源。
應用調(diào)用處理器640是執(zhí)行圖1中的過程100的步驟的軟件模塊。服務器調(diào)用處理器650是執(zhí)行圖2-4中的過程200、300和400的步驟的軟件模塊。垃圾收集器660是響應于來自服務器調(diào)用處理器650的指令回收資源的軟件模塊,如上所述。
E.分布式處理系統(tǒng)圖7示出可用來執(zhí)行本發(fā)明的分布式處理系統(tǒng)50。在圖7中,分布式處理系統(tǒng)50包括以由網(wǎng)絡云(network cloud)55表示的網(wǎng)絡結(jié)構(gòu)連接的三個獨立和異構(gòu)平臺100、200和300。由圖7中的云55表示的網(wǎng)絡結(jié)構(gòu)的組合和協(xié)議并不重要,只要它允許在平臺700、800和900之間進行信息傳播。此外,用三個平臺僅僅是為了說明而不是將本發(fā)明局限于用特定數(shù)量的平臺。此外,特定為了體現(xiàn)結(jié)構(gòu)對于本發(fā)明并不關(guān)鍵。例如,可根據(jù)本發(fā)明使用的另一種網(wǎng)絡體系結(jié)果可將一個平臺用作所有其他平臺連接到其上的網(wǎng)絡控制器。
在分布式處理系統(tǒng)50的實施方法中,平臺700、800和900中的每個平臺都分別包括處理器710、810和910和存儲器750、850和950。包括在每個處理器710、810和910中的分別是應用720、820和920;操作系統(tǒng)740、840和940以及MI組件730、830和930。
應用720、820和920可以是前面被寫入并修正以根據(jù)本發(fā)明工作或者特別被寫入以利用由本發(fā)明提供的服務的程序。應用720、820和920啟動操作以根據(jù)本發(fā)明執(zhí)行。
MI組件730、830和930對應于參照圖6所述的MI組件600。
操作系統(tǒng)740、840和940分別是依靠相應處理器710、810和910的標準操作系統(tǒng)。平臺700、800和900可以是異構(gòu)。例如,平臺700具有SunMicrosystem Corp.制造的UltraSparc微處理器作為處理器710,并用Solaris操作系統(tǒng)740。平臺800具有由Silicon Graphics Corps制造的MIPS微處理器作為處理器810并用Unix操作系統(tǒng)840。最后,平臺900具有由IntelCorp.制造的Pentium微處理器作為處理器910并運用Microsoft Windows95操作系統(tǒng)940。本發(fā)明并不局限于此,還可容納同構(gòu)平臺。
Sun,Sun Microsystem、Solaris、Java和Sun Logo是Sun Microsystems,Inc.在美國和其他國家的商標或已登記商標。許可使用UltraSparc和所有其他SPARC商標,而且是SPARC International Inc.在美國和其他國家的商標。帶有SPARC商標的產(chǎn)品是根據(jù)Sun Microsystems,Inc.開發(fā)的體系結(jié)構(gòu)。
存儲器750、850和950具有幾個功能,諸如用于相關(guān)平臺的通用存儲器。另一個功能是分別在處理器710、810和910執(zhí)行之前存儲應用720、820和920;MI組件730、830和930以及操作系統(tǒng)740、840和940。此外,存儲器部分750、850和850可構(gòu)成網(wǎng)絡50中的所有平臺700、800和900可用的共享存儲器。
E.MI服務可用客戶/服務器模式實施本發(fā)明??蛻舢a(chǎn)生請求,諸如骯臟調(diào)用和清除調(diào)用,而且服務器響應該請求。
如圖7所示的每個MI組件730、830和930最好包括客戶組件和服務器組件。圖8示出了客戶平臺100和服務器平臺110的方框圖,它采用了圖7中的平臺700、800和900的任意兩個。
平臺1000和1100分別包括存儲器1050和1150以及處理器1010和1110。在平臺1000和1100中的元件起到類似于上面參照圖7所述的元件的功能。在該例子中,處理器1010執(zhí)行客戶應用1020和處理器1110執(zhí)行服務器應用1120。處理器1010和1110還分別執(zhí)行操作系統(tǒng)1040和1140以及MI組件1030和1130。
MI組件1030和1130都包括服務器調(diào)用處理器1031和1131;應用調(diào)用處理器1032和1132和垃圾收集器1033和1133。每個MI組件1030和1130還包括參考組件,它們分別包含對于各MI組件1030和1130監(jiān)視的每個參考的參考數(shù)據(jù)部分1034和1134;參考計數(shù)1035和1135以及準許時期寄存器1036和1136。
應用調(diào)用處理器1032和1132表示客戶服務并分別與表示服務器服務的服務器調(diào)用處理器1031和1131進行通信。由于平臺1000和1100包括服務器調(diào)用處理器、應用調(diào)用處理器、垃圾收集器和參考組件,平臺可作為客戶或服務器。
然而,為了討論下列情況,平臺1000被指定為客戶平臺和平臺1100被指定為服務器平臺。在該例子中,客戶應用1020獲得對分布式資源的參考,并用MI組件1030來把骯臟調(diào)用送到由服務器平臺1100的MI組件1130管理的資源。
此外,服務器平臺1100可執(zhí)行服務器應用1120。服務器應用1120還可用MI組件1130來發(fā)送骯臟調(diào)用,其中當MI組件1130管理那些骯臟調(diào)用的資源時,可由MI組件1130處理上述骯臟調(diào)用。另一方面,服務器應用1120可用MI組件1130來把骯臟調(diào)用發(fā)送到由MI組件1030管理的資源。
因此,對于客戶平臺1000的MI組件1030的服務器調(diào)用處理器1031、垃圾收集器1033和參考計數(shù)1035不是活動的,因此在圖8用陰影線表示。同樣,服務器平臺1100的MI組件1130的應用調(diào)用處理器1132也用陰影線表示因為它還處于靜止狀態(tài)。
當客戶應用1020獲得與資源相對應的參考時,應用調(diào)用處理器1032發(fā)送服務器調(diào)用處理器1131接收到的骯臟調(diào)用。骯臟調(diào)用包括請求租用日期。服務器調(diào)用處理器1131遞增對于在骯臟調(diào)用中的參考的參考計數(shù)1135,并確定準許時期。作為響應,服務器調(diào)用處理器1131在準許時期內(nèi)把返回調(diào)用發(fā)送到應用調(diào)用處理器1030。應用調(diào)用處理器1032用準許時期來更新記錄的準許時期1035,并確定何時回收與它的骯臟調(diào)用相對應的資源。
服務器調(diào)用處理器1131還監(jiān)視與對它管理的資源參考相對應的參考計數(shù)和準許時期。當它的參考計數(shù)1135之一是零時,或者當對于參考的準許時期1135期滿時,無論首先發(fā)生哪種情況,服務器調(diào)用處理器1131都啟動垃圾收集器1133來回收與具有參考計數(shù)零或期滿準許時期的參考相對應的資源。
根據(jù)本發(fā)明的實施方法的租用參考方案不要求包含在協(xié)議內(nèi)的平臺1000和1100上的時鐘同步。該方案只要求它們的可比較時期增加。租用不在特定時刻到期,但是在特定時間間隔之后到期。只要在時間間隔上大致一致,平臺1000和1100將對于準許租用日期大致一致。此外,由于對計算機而言,租用時間是很長的,所以時鐘速率的微小差別的影響不大或沒有影響。
骯臟調(diào)用的傳輸時間可影響協(xié)議。如果MI組件1030保持租用參考并等待直至在租用期滿之前請求更新,那么租用可在MI組件1130接收請求之前期滿。如果是這樣的話,MI組件1130可在接收到更新請求之前回收資源。于是,考慮到發(fā)送到處理骯臟調(diào)用的平臺的時間,當發(fā)送骯臟調(diào)用時,發(fā)送者應把時間因子添加到請求的租用日期,從而可在資源租用日期到期之前更新骯臟調(diào)用。
F.總結(jié)根據(jù)本發(fā)明,分布式垃圾收集方案通過提供對應于在分布式處理系統(tǒng)中的資源參考的準許租用日期,保證參考完整性并消除存儲漏洞,從而當準許的租用日期到期時,對資源的參考也到期。于是,可收集資源。當在分布式處理系統(tǒng)中的處理參照分配給資源參考的計數(shù)器不再參考資源時,還可收集資源。
本發(fā)明的另一個實施例如上所述,租用技術(shù)與垃圾收集相關(guān)。然而,本發(fā)明的另一個實施例,如下所述,可用來管理在激活組(activation group)中的對象成員資格。
在利用JavaTM編程環(huán)境(“示例分布式系統(tǒng)”)的分布式系統(tǒng)中,對象包含可遠程調(diào)用的方法??捎煽蛻暨\用JavaTM遠程方法啟動系統(tǒng)(RMI)(作為Mountain View,CA的Sun Microsystem,Inc.制造的Java Software開發(fā)套件部分售出)調(diào)用這些方法。在示例分布式系統(tǒng)中,當客戶對遠程對象調(diào)用一種方法時,該對象可能不在遠程機器上的存儲器中。在這種情況下,在遠程機器上的已知為激活影子進程的RMI組件啟動JavaTM虛擬機(JVM)然后激活該對象。Java虛擬機還作為Java軟件開發(fā)套件部分提供,并在Lindholm和Yellin中詳細描述。Java虛擬機說明書(Addison-Wesley(1997)),并作為參考資料在此引入?!凹せ顚ο蟆笔沟脤ο髱У捷o助存儲器的存儲空間并調(diào)用所要求的方法。應注意,該對象和JVM都在單個地址空間中運行。每次客戶調(diào)用已不在存儲器中的用于遠程對象的一種方法,都重復該處理。在待批美國專利申請?zhí)朹_(發(fā)明名稱為“在分布式系統(tǒng)中的動態(tài)查找服務”,作為參考資料在此引入)中詳細描述了示例分布式系統(tǒng)。
將對象帶到它們自己的地址空間一次一個的缺點在于它不充分。由于將每個對象裝入分開的地址空間,所以要求裝入的對象跨過處理邊界來訪問另一個裝入的對象,它要求充分的處理時間。因此,可以將相關(guān)對象裝入相同地址空間以避免跨過處理邊界并促進參考的局域性,因為相關(guān)對象通常趨于相互訪問。在另一個實施例中,把相關(guān)對象組成對象組或者一組對象。因為在一組中的對象相互相關(guān),所以它們足以在相同JVM上運行,且后來在相同地址空間中運行。通過在相同地址空間中在相同JVM上運行,相關(guān)對象可充分地相互訪問(即,直接,而不必跨過處理邊界)。
在相關(guān)對象成組的情況下,當客戶程序?qū)h程對象調(diào)用一種方法時,激活進程確定該遠程對象是否是已知為激活組的一組遠程對象的成員。如果該對象屬于激活組且還沒有將該組裝入存儲器,那么激活進程將啟動JVM并將該對象裝入JVM的地址空間中。后來調(diào)用對激活組中的其他對象的方法將導致激活進程將這些對象裝入相同地址空間。一旦將所要求的對象裝在JVM上,激活影子進程將激活該對象,而且調(diào)用所請求的方法。
在JVM中將相關(guān)對象組成在一起的缺點是特定對象可能獨占激活組的可用資源從而損害了其他組成員。例如,在帶有多個對象的白板(white-board)程序運用光標對象想要畫顯示器的公共區(qū)域,將光標對象裝入想用它的激活對象組。當想用它的對象允許光標對命令作出快速響應時,把光標對象設置在相同的地址空間,因為在沒有跨過處理邊界的情況下訪問光標對象。然而,當特殊對象獨占光標對象的時間如此之長以至于負面影響想用光標對象的其他對象時,會產(chǎn)生問題。
另一個實施例通過對位于激活組中的對象采用租用技術(shù)來消除獨占的威脅。租用保證了在激活組中沒有任何對象可獨占另一個對象。例如,每個對象必須請求租用來加入激活組(即,獲得進入激活組的成員資格)。激活組本身確定準許租用的時間有多長。對于白板程序,激活組可準許很短的租用。這保證了沒有對象可獨占光標對象,因為在每個對象的租用時間到期時,便從激活組中將它抽出。
在另一個實施例中,對象請求租用是激活組的成員。對象必須規(guī)定它希望成員資格持續(xù)的時間(租用日期),而且由對象(激活組對象)表示和管理的激活組確定準許租用的時間多長。除了時間時期之外,租用請求包括對象是否要確切租用的指示。當要求租用時,對象可請求確切的租用日期。在這種情況下,激活組只準許租用該對象,如果準許的租用日期是所請求的整個租用日期。
每個對象由租用管理到激活組中的。即使租用到期,還可為該對象提供到它自己的激活組中的成員資格,直至它要求成為不同激活組的成員。
一旦對象要求從激活組租用,激活組就向該對象返回租用對象,它包括確定租用持續(xù)時間、更新租用以及取消租用的方法。租用對象是可以多種方法擴展以提供更多功能性的那種實例,但是將基本類定義如下interface Lease{public long getDuration();public void cancel()throws UnknownleaseException,RemoteException;public void renew (long renewDuration)throwsLeaseDeniedException,UnkownLeaseException,RemoteException;}這類包括getDuration方法、取消方法和更新方法。調(diào)用“getDuration”方法使對象具有準許租用日期長度。該時期代表激活組準許的最近租用。然而,對象的責任是確定租用的未完結(jié)時間。
“更新”方法允許遠程對象更新租用,要求更多時間,而不必重新啟動原來的租用請求。對象可能希望更新租用的情況包括何時原始租用證明是不充分的(即,遠程對象要求附加成員資格)或者何時只準許部分租用(即,小于所要求的租用)。
對象可采用更新方法來請求附加租用日期,或者對象可繼續(xù)調(diào)用更新方法多次,直至準許多個附加租用日期。更新方法沒有返回值,如果準許更新,那么可在進行調(diào)用的租用對象中反映出新租用日期。如果激活組不能或不愿意更新租用,那么在進行調(diào)用的租用對象中要提出理由。
當對象希望從激活組收回但是仍然有剩余時間來租用時,對象調(diào)用“取消”方法。取消方法允許激活組從激活組中去除對象,從而該對象可能不再訪問激活組中的任一個對象沒有交叉處理范圍。相反,一旦租用結(jié)束(即,自然終止),那么激活組知道要抽出該對象。在這種情況下,一旦租用自然終止,對象沒有義務通知激活組。
圖9示出適于本發(fā)明的另一個實施例使用的數(shù)據(jù)處理系統(tǒng)9000。數(shù)據(jù)處理系統(tǒng)9000包括通過網(wǎng)絡9006連接到第二個計算機系統(tǒng)9004的計算機系統(tǒng)9002。網(wǎng)絡9006可以是局域網(wǎng)、廣域網(wǎng)或因特網(wǎng)。
計算機系統(tǒng)9002包括存儲器9008、輔助存儲裝置9010、中央處理單元(CPU)9012、輸入裝置9016和視頻顯示器9014。存儲器9008還包括JavaTM運行時間系統(tǒng)9042,它包括Java虛擬機(JVM)9044、RMI9046和激活組9040。激活組9040可具有與它相關(guān)的不能被激活但仍位于輔助存儲裝置9010上的一些對象9048。此外,存儲器9008包括Java運行時間系統(tǒng)9022和Java運行時間系統(tǒng)9102,其中Java運行時間系統(tǒng)9022包括JVM9024、RMI9026和激活組9018,而Java運行時間系統(tǒng)9102包含激活影子進程9100、JVM9104和RMI9106。激活影子進程9100負責通過將它們帶到作為激活組9040或激活組9018部分的存儲器中來激活對象9048。
計算機系統(tǒng)9004包括存儲器9050、輔助存儲裝置9052、CPU9054、輸入裝置9058和視頻顯示器9056。存儲器9050還包括Java運行時間系統(tǒng)9062,它包括JVM9064、RMI9066和可通過調(diào)用到RMI9066來請求調(diào)用遠程對象(例如,一個對象9048)的方法的客戶程序9040。熟悉本技術(shù)領(lǐng)域的人員可理解數(shù)據(jù)處理系統(tǒng)9000和計算機9002和9004可包括附加和不同的組件。
雖然將另一個實施例的方面描述為存儲在存儲器中,但是熟悉本技術(shù)領(lǐng)域的人員應理解還可將這些方面存儲在其他計算機可讀媒體(諸如,硬盤、軟盤或CD-Rom(光盤)、因特網(wǎng)的載波或RAM或ROM的其他形式之類的輔助存儲裝置)上或從中讀取它。此外,雖然將另一個實施例描述為在JavaTM編程環(huán)境中操作,但是熟悉本技術(shù)領(lǐng)域的人員應理解另一個實施例可在其他環(huán)境中操作。
圖10示出對象成為新激活組的一個成員的過程中執(zhí)行的步驟的流程圖。例如,在激活組9040中的對象可能想要成為激活組9018的成員。對象想要這樣做是因為它計劃執(zhí)行可與激活組9018相關(guān)的處理(例如,關(guān)于圖象處理)并希望通過在具有執(zhí)行圖象操作的對象的激活組中運行來獲得參考局域性的好處。為了成為新建立組的成員,對象把租用請求發(fā)送到激活組9018(步驟10004)。在該步驟中對象把租用請求發(fā)送到激活組,它是經(jīng)過包含所請求的租用日期的多個參數(shù)的對象。
在發(fā)送租用請求之后,對象通過確定它是否接收到租用對象來確定租用是否成功(步驟10006)。如果租用成功,那么對象通知激活進程9100它與調(diào)用組9018的新關(guān)系(步驟1008)。當通知激活影子進程時,對象提供租用對象的拷貝,其中激活影子進程可用它來確定租用日期的長度。在通知激活影子進程之后,對象作為激活組9108的一部分運行(步驟10010)。在該步驟中,如果激活對象,那么它將在Java運行時間系統(tǒng)9022中執(zhí)行。一些時間以后,對象確定它是否需要更多的時間來作為激活組的一部分來運行(步驟10012)。如果對象需要更多時間,那么該對象對通過租用請求返回的租用對象調(diào)用更新方法(步驟10014)。于是,對象確定更新請求是否成功(步驟10016)。如果是,那么處理繼續(xù)到步驟10010。否則,處理結(jié)束。
如果對象不需要更多的時間,那么該對象對租用對象調(diào)用取消方法來終止租用(步驟10018)。該步驟取消租用,以后取消對象在激活組中的成員資格。接著,對象獲得對另一個激活組的租用,也許是它來自的那個激活組9040(步驟10020)。應注意,如果對象不加入另一個激活組,那么下一次激活它激活影子進程使它成為它自己激活組的成員。
圖11示出當請求調(diào)用對象諸如當客戶程序9060調(diào)用RMI9066對遠程對象調(diào)用方法(例如,對象之一9048)時,調(diào)用影子進程執(zhí)行的步驟的流程圖。調(diào)用影子進程9100執(zhí)行的第一步驟是從RMI9106接收請求(步驟11002)??梢哉{(diào)用RMI9106作為從客戶9060遠程方法調(diào)用的結(jié)果。當客戶9060調(diào)用遠程方法時,它通過RMI9066做到。在RMI9066調(diào)用遠程方法之后,用于調(diào)用的(代碼)存根(stub)包括該對象用來進行通信以及參考它的激活影子進程9100的網(wǎng)絡端口。于是,當接收調(diào)用遠程方法的請求時,RMI9066首先嘗試通過它的對象的網(wǎng)絡端口調(diào)用該方法。如果成功,那么對象保持活動并保持在存儲器中,因為通過RMI9066最后調(diào)用它的方法之一。然而,如果失敗,那么由于需要激活該對象,所以RMI9066通過RMI9106向激活影子進程9100發(fā)出請求。
在接收到來自RMI9106的請求之后,激活影子進程確定租用對象是否已到期(步驟11004)。在另一個實施例中,每個對象都是激活組的成員,而且通常具有未完結(jié)租用。激活影子進程9100保持將計算機9002中的所有對象映射到與它們相關(guān)的相應激活組。如果激活影子進程確定租用已到期,那么激活影子進程把所請求的對象設置它自己的激活組中(步驟11006)。在該步驟中,激活影子進程存儲請求對象是他自己的激活組中的成員的指示。在把該對象設置在它自己的激活組中之后,激活影子進程啟動JVM并激活該對象(步驟11008)。在該步驟中,激活影子進程啟動JVM并將該對象從輔助存儲器9010裝入JVM的地址空間。此外,激活影子進程對該對象調(diào)用所請求的方法。
如果激活影子進程確定租用不到期,那么激活影子進程確定該對象是其中成員之一的激活組是否當前正在JVM中運行(步驟11010)。如果不是,那么激活影子進程啟動對于激活組的JVM(步驟11012),而且激活影子進程激活該對象(步驟10014)。在該步驟中,激活影子進程把該對象從輔助存儲器帶到存儲器(啟動JVM的地址空間)并調(diào)用所請求的方法。
圖12示出當對象請求租用時激活組(例如,9018)所執(zhí)行的步驟的流程圖。由激活組執(zhí)行的第一步驟是檢查租用請求的參數(shù)以證實請求的性能(步驟12004)。如上所述,參數(shù)包括請求的租用日期和確切的租用指示。
在檢查參數(shù)之后,激活組確定該請求是否適當(步驟12006)。例如,激活組證實規(guī)定所需租用日期,而且如果請求確切的租用,那么激活組確定它可準許該請求。例如,激活組可能不情愿地準許租用一段時間,而在這段時間內(nèi)該對象已請求確切租用了。如果激活組確定租用請求是不適當?shù)?,那么激活組返回表示錯誤的例外對象(步驟12008)且處理結(jié)束。
如果請求是適當?shù)?,那么激活組確定充分的租用日期(步驟12010)。激活組產(chǎn)生租用對象并把它返回到遠程對象(步驟12012)。
上述描述本發(fā)明的實施方法用于說明。它不是窮舉且本發(fā)明并不局限于此。根據(jù)上述交易可對它進行修正和變化并可通過實踐本發(fā)明來獲得。例如,所述實施方法包括軟件,但是可實施本發(fā)明作為硬件和軟件的組合或者只用軟件實施。本發(fā)明的范圍由所附權(quán)利要求書來限定。
權(quán)利要求
1.一種在處理系統(tǒng)中的方法,其特征在于,包括下列步驟從遠程對象接收租用請求,所述租用請求規(guī)定對象的激活組以及所請求的租用日期;和確定所述遠程對象成為所述激活組中成員的租用日期。
全文摘要
提供一種在分布式處理系統(tǒng)中租用組成員的系統(tǒng)。根據(jù)該系統(tǒng),遠程對象請求激活組在一段時間內(nèi)成為該激活組中的成員。響應于該請求,激活組確定遠程對象成為激活組的成員的適當租用日期并在于激活組中的其他對象相同的地址空間內(nèi)運行。
文檔編號G06F9/46GK1298510SQ99805397
公開日2001年6月6日 申請日期1999年2月17日 優(yōu)先權(quán)日1998年2月26日
發(fā)明者J·H·瓦爾多, A·M·沃爾蕾斯, R·謝夫勒, K·C·R·C·阿諾德 申請人:太陽微系統(tǒng)公司