專利名稱:用于在對等系統(tǒng)中對事務(wù)進行所有權(quán)轉(zhuǎn)移的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在對等(peer-to-peer)網(wǎng)絡(luò)中執(zhí)行變更的所有權(quán)轉(zhuǎn)移的方法。
該變更是在所述對等網(wǎng)絡(luò)中的各種設(shè)備之間轉(zhuǎn)移的。
本發(fā)明也涉及一種用于執(zhí)行該方法計算機系統(tǒng)。
本發(fā)明還涉及一種用于執(zhí)行該方法的計算機程序產(chǎn)品。
另外,本發(fā)明涉及一種用于變更的所有權(quán)轉(zhuǎn)移的協(xié)議。
本發(fā)明還涉及一種相當(dāng)于對等體的設(shè)備,所述對等體屬于所述對等網(wǎng)絡(luò)。
該發(fā)明還涉及一種包括存儲在計算機可讀介質(zhì)上以執(zhí)行所述方法的代碼裝置的計算機程序產(chǎn)品。
WO 02/39305揭示了借助于代理控制(delegated control)的信息管理。一種信息管理系統(tǒng)在數(shù)據(jù)集上采用代理控制。所述信息管理系統(tǒng)包括相交互來存儲信息的多個軟件和多個計算機。所述代理控制是從委托系統(tǒng)(作為所謂的“委托方”)到代理系統(tǒng)對所述數(shù)據(jù)集進行臨時或部分的轉(zhuǎn)移。
眾所周知的是,在分布式數(shù)據(jù)庫中提交事務(wù)或代理控制是很困難的。當(dāng)前在本領(lǐng)域中有三種可供選擇的基本事務(wù)模型第一,發(fā)起部分發(fā)送更新到中央事務(wù)服務(wù)器,這個服務(wù)器負責(zé)更新所有相關(guān)部分并提交變更。
第二,發(fā)起部分將更新傳播到數(shù)據(jù)庫相關(guān)的所有部分,并且它一從所有相關(guān)部分獲得消息它們接到了該更新,就提交變更。
第三,這種提交不被顯式地執(zhí)行。存在只是傳播變更并假定提交的協(xié)議,例如所謂的“gossip(會話)協(xié)議”(參見下面的參考)。
David Kempe、Jon M.Kleinberg、以及Alan J.Demers的Spatialgossip and resource locations(空間會話和資源定位),在ACM Symposium on Theory of Computing(關(guān)于計算理論的ACM討論會)中的第163-172頁(2001)。
Alan Demers、Dan Greene、Carl Houser、Wes Irish、以及JohnLarson的Epidemic algorithms for replicated databasemaintenance(用于復(fù)制的數(shù)據(jù)庫維護的流行算法),SIGOPS,22(1)8-32,1987。
使用這種服務(wù)器的第一種選擇是個難題,因為不是所有分布式數(shù)據(jù)庫都具有控制例如P2P(對等peer to peer)系統(tǒng)中的所有事務(wù)的中央處理器。而在這樣情況下,第一個選擇就存在問題問題。
另外,一些分布式數(shù)據(jù)庫具有不總是和所有相關(guān)部分和/或中央事務(wù)服務(wù)器相聯(lián)系的部分,即,ad-hoc連接,而在這樣情況下第二選擇就存在問題。結(jié)果,發(fā)起部分也許就不能提交變更。
在許多情況下,不顯式地提交并不是一種選擇方案,因為這意味著關(guān)于提交存在不確定性。在這種情況下,第三選擇就存在問題。
這樣就在對等通信中提出了沒有足夠可靠/健壯的事務(wù)模型的問題,也即,這樣的一個問題例如對數(shù)據(jù)庫、文件等等的變更的事務(wù)(其中該數(shù)據(jù)庫、該文件等駐留在不同于希望使得變更得到執(zhí)行的對等體之外的其它對等體之上),在一些場合中就不被執(zhí)行。因而,所述文件、數(shù)據(jù)庫等等就保持未被更新的狀態(tài)-更糟的是-所述變更的請求者并不知道這個情況。
大家從本領(lǐng)域技術(shù)可知的是對等是一種通信模型,其中每一方(即每一個對等體)都具有相同能力,并且每一方也能啟動通信會話。可與對等通信模型形成對照的其它模型包括客戶機/服務(wù)器模型和主/從模型,這二者在本領(lǐng)域都是公知的。在一些情況中,對等通信是通過賦予每個通信節(jié)點服務(wù)器和客戶機這兩種能力來實現(xiàn)的。在最近的應(yīng)用中,對等已涉及描述這樣的應(yīng)用,其中用戶能夠使用因特網(wǎng)來與彼此直接或通過一個居中服務(wù)器來交換文件、更新數(shù)據(jù)庫。
在因特網(wǎng)上,對等(稱為P2P)是一種瞬時因特網(wǎng)網(wǎng)絡(luò)類型,其允許一組具有相同聯(lián)網(wǎng)程序的計算機用戶(對等體)與彼此相連,并直接從另一方的硬件設(shè)備訪問文件。Napster和Gnutella是這種類型的對等軟件的代表。一些公司正著眼于P2P的優(yōu)勢,將其用作員工共享文件、更新和訪問公用數(shù)據(jù)庫、信息等等而不涉及維護集中服務(wù)器的開支的方式,以及用作企業(yè)彼此直接交換信息的方式。
當(dāng)應(yīng)用因特網(wǎng)P2P之時,在本領(lǐng)域中大家都知道用戶必須首先下載并執(zhí)行一個對等聯(lián)網(wǎng)程序,例如,Gnutella-net是這些分散式P2P程序中最受歡迎的程序之一,因為它允許用戶交換所有類型的文件。在啟動該程序之后,用戶輸入另一屬于該網(wǎng)絡(luò)的計算機的IP地址,典型地,用戶獲得下載的Web頁會列出幾個IP地址作為開始的位置。一旦該計算機發(fā)現(xiàn)另一網(wǎng)絡(luò)成員在線,它就會連在那個用戶的連接上,其已經(jīng)從另一用戶的連接獲得它們的IP地址等等。
在本領(lǐng)域中大家還都知道,對等的用戶能夠選擇一次尋找多少個成員連接,并確定他們想要共享、更新或密碼保護哪些文件、數(shù)據(jù)庫、信息項,但是所述問題還有待解決。
但是,在本發(fā)明的所述方法包括圖4中所述的步驟之時,所述問題被這一方法解決了。
因此本發(fā)明的優(yōu)點在于分別提出的方法和協(xié)議能夠?qū)崿F(xiàn)對提交變更的責(zé)任進行代理。
該發(fā)明還具有這樣的優(yōu)點,即使變更的啟動者(如所要求的第一設(shè)備)不再連接著,也能夠?qū)崿F(xiàn)對變更進行的提交。
在大多數(shù)情況下,分布式數(shù)據(jù)庫的完整性能夠得到維護和保證。此外,由于沒有中央服務(wù)器,所以使對等網(wǎng)絡(luò)能夠不怎么會受到攻擊,并且還使數(shù)目任意多的對等體的通信能夠?qū)崿F(xiàn),即該網(wǎng)絡(luò)能夠擴大或縮小且仍具有所述優(yōu)點。
出于之前相對于該方法所描述的相同原因,所述系統(tǒng)、協(xié)議和設(shè)備分別提供相同的優(yōu)點并且解決相同的問題。
下面將與優(yōu)選實施例結(jié)合并參考附圖來更充分地說明該發(fā)明,其中
圖1示出了與系統(tǒng)相聯(lián)系的對等體把一個更新的責(zé)任轉(zhuǎn)移到一個與該系統(tǒng)持久聯(lián)系的對等體的各種方式。
圖2示出了隨著提交狀態(tài)變量的狀態(tài)變更而進行的責(zé)任轉(zhuǎn)移。
圖3示出了一個設(shè)備網(wǎng)絡(luò);圖4示出了一種在對等網(wǎng)絡(luò)中執(zhí)行變更的所有權(quán)轉(zhuǎn)移的方法;圖5示出了在事務(wù)所有權(quán)轉(zhuǎn)移期間提交狀態(tài)變量的變更。
貫穿本發(fā)明的說明書,將事務(wù)理解為如下在計算機程序設(shè)計中,事務(wù)通常表示信息交換和相關(guān)工作(例如數(shù)據(jù)庫或文件的更新)的序列,為了滿足請求的目的和為了保證數(shù)據(jù)庫或文件的完整性,該序列被作為一個單元來處理。對于要完成的事務(wù),以及要變?yōu)槌志眯缘臄?shù)據(jù)庫或文件的變更來說,該事務(wù)必須要在整體上完成。典型的商業(yè)事務(wù)可以是由客戶打進電話并由客戶代表輸入計算機的目錄商品訂單。該訂單事務(wù)包括檢查存貨數(shù)據(jù)庫,確認(rèn)該項目是有的,下訂單,以及確認(rèn)該訂單已經(jīng)下了和出貨的預(yù)期時間。如果這被認(rèn)為是單個事務(wù),那么所有步驟都必須在該事務(wù)成功之前完成,并且數(shù)據(jù)庫被實際變更以反映該新訂單。如果在該事務(wù)成功完成之前發(fā)生某事,對數(shù)據(jù)庫的任何變更都必須被記住,以便可以撤消(例如,回滾)它們。
圖1示出了與系統(tǒng)相聯(lián)系的對等體將更新的責(zé)任轉(zhuǎn)移到一個與該系統(tǒng)持久聯(lián)系的對等體的各種方式。
在該圖中,參考數(shù)字(a)示出了與系統(tǒng)臨時聯(lián)系的對等體將更新(黑點)的責(zé)任(正方形)轉(zhuǎn)移到一個與該系統(tǒng)持久聯(lián)系的對等體。
參考數(shù)字(b)示出了第二對等體是怎樣接受以及發(fā)起者是怎樣進行臨時提交(白點)的。
參考數(shù)字(c)示出了接受者將該變更傳播到其它相關(guān)部分。
參考數(shù)字(d)示出了其它對等體如何確認(rèn)收到該變更并且示出了該變更被提交(灰點)了。
參考數(shù)字(e)示出了如果該發(fā)起者再次和系統(tǒng)相聯(lián)系,它就會檢查該變更的狀態(tài)。
參考數(shù)字(f)示出了在該系統(tǒng)中接受者確認(rèn)收到該提交。
圖2示出了隨著提交狀態(tài)變量的狀態(tài)變更而進行的責(zé)任轉(zhuǎn)移。
這個圖示出了與圖1的三個差別1)原始接受者將該責(zé)任傳播到其它對等體(原因可能是3)。
2)該發(fā)起者假定真實提交(commit)而不是臨時提交。
3)對等體的范圍受到更大的限制。
參考數(shù)字(a)示出了一個與系統(tǒng)臨時聯(lián)系的對等體將更新(黑點)的責(zé)任(正方形)轉(zhuǎn)移到一個與系統(tǒng)持久聯(lián)系的對等體。參考數(shù)字(b)示出第二對等體接受了并且示出了發(fā)起者假定它能夠進行真實提交(灰點)。參考數(shù)字(c)示出了接受者將傳播該變更(黑點)以及與它相聯(lián)系的其它相關(guān)對等體的責(zé)任(正方形)。參考數(shù)字(d)示出了兩個接受對等體都接受了責(zé)任并且原始接受者進行真實提交。參考數(shù)字(e)示出了代理接受者將該更新傳播到更進一步的對等體。參考數(shù)字(f)示出了最后的更新接收對等體確認(rèn)在它們的系統(tǒng)中收到所述提交,并且代理接受者也這樣做。后者還分解該更新任務(wù)。
相對于狀態(tài)過渡,提出了三種類型提交,這些提交在具有各種狀態(tài)(即真實提交狀態(tài)、臨時提交狀態(tài)或假定提交狀態(tài))的提交狀態(tài)變量中相應(yīng)地得到反映,但是假定提交不是一種獨立的狀態(tài),即,它與真實提交是相同的狀態(tài),不過是通過不同過渡到達的。
假定提交狀態(tài)是沒有被確認(rèn)的真實提交。初始狀態(tài)不被提交。最終狀態(tài)被提交。這與真實提交狀態(tài)完全相同。不同點就在于真實提交獲得居間確認(rèn)。注意,假定提交狀態(tài)可能會存在危險,因為如果更新沒有被其它對等體提交,那么即使假定了該更新要發(fā)生,它也會導(dǎo)致不一致。出于這個原因可以應(yīng)用臨時提交狀態(tài)。所以,假定提交狀態(tài)和臨時提交狀態(tài)之間的不同點在于在后一種情況中,還有一個指示該提交(臨時狀態(tài))未得到確認(rèn)的標(biāo)志(或相似的指示)。如果該確認(rèn)后來才有,這個標(biāo)志就可以除去,也就是,該提交狀態(tài)變?yōu)?真實)提交,即真實提交狀態(tài)。所以,臨時提交狀態(tài)被看作這樣的‘真實’提交,對于其而言,預(yù)計確認(rèn)會晚來到。
所以,關(guān)于提交,提交狀態(tài)變量就存在四種狀態(tài)。僅著眼于提交,0和3之間并沒有不同,即數(shù)據(jù)庫在一個更新狀態(tài)下使用3種,不過沒有任何更新處于掛起(0)沒有更新掛起=?jīng)]有關(guān)于提交的狀態(tài)(1)未提交的=更新掛起;(2)臨時提交=更新被提交到該數(shù)據(jù)庫,但是未經(jīng)確認(rèn);以及(3)真實提交=更新被確認(rèn)(其它提交)或被假定且被提交。
在狀態(tài)(0)中,一個更新請求被接收,這使得它進入狀態(tài)(1)。對等體現(xiàn)在可以等待著直到它獲得一個確認(rèn)(真實提交=狀態(tài)(3))為止,假定確認(rèn)(假定提交=狀態(tài)(3)),或暫時假裝它具有該確認(rèn),因為它期望它稍后將獲得它(臨時提交=狀態(tài)(2))。
如果(最終)確認(rèn)到來,狀態(tài)(2)就變成狀態(tài)(3)。狀態(tài)(3)等于狀態(tài)(0),即,相當(dāng)于沒有更新處于掛起的已更新狀態(tài)。
圖3示出了一種設(shè)備網(wǎng)絡(luò)。所述設(shè)備網(wǎng)絡(luò)是借助于參考數(shù)字30來圖示的。如將在下一個圖中更詳細說明的那樣,第一設(shè)備,參考數(shù)字31會嘗試查找另一個對等體,即第二設(shè)備,參考數(shù)字32,第二設(shè)備將接受提交變更的責(zé)任。因此,所述第二設(shè)備將會把該變更傳播到至少一個另外的設(shè)備,例如參考數(shù)字33和34,假定對于這些設(shè)備來說所述變更是相關(guān)的。在該網(wǎng)絡(luò)中可以有更多的設(shè)備存在,例如參考數(shù)字35、36和37。該網(wǎng)絡(luò)是出于說明性的目的而示出的,任何其它的對等體或設(shè)備的動態(tài)或靜態(tài)拓撲結(jié)構(gòu)或布置方案也都可以應(yīng)用在本發(fā)明中。
所述設(shè)備中的任何一個可以是汽車、車庫、錄像機(VCR)、個人數(shù)字助理(PDA)、手機、氣候系統(tǒng)、電視、燈、咖啡機、收音機、DVD播放器、CD播放器、信息面板、網(wǎng)絡(luò)平板電腦、智能遠端、電話應(yīng)答機或個人電腦。作為一個實例,在原則上,可訪問該網(wǎng)絡(luò)的燈可以把變更(時間表變更)傳送到例如個人數(shù)字助理(PDA)、網(wǎng)絡(luò)平板電腦、智能遠端、電話應(yīng)答機和/或個人電腦,因此就保證了用戶多半會接收到所述時間表變更。
所提及的設(shè)備備選方案可以理解為與在該因特網(wǎng)上找到的類型相似的瞬時網(wǎng)絡(luò)的對等類型中對應(yīng)的對等體,該因特網(wǎng)允許一組具有相同或相似的聯(lián)網(wǎng)程序或協(xié)議的計算機用戶(能夠訪問他們對應(yīng)的對等體或設(shè)備)與彼此相連,并從另一個用戶的硬件設(shè)備、存儲器等等直接訪問和/或更新文件、數(shù)據(jù)庫,等等。對等網(wǎng)絡(luò)只不過是一個對等體的網(wǎng)絡(luò),因特網(wǎng)、Gnutella軟件、計算機都只是具體實現(xiàn)形態(tài)的例子。
所述狀態(tài)變更可以應(yīng)用在用于變更的所有權(quán)轉(zhuǎn)移的協(xié)議中,也就是,該協(xié)議將包括具有不同狀態(tài)(即真實提交和臨時提交)的提交狀態(tài)變量。如果更新請求的發(fā)起者試圖轉(zhuǎn)移提交的責(zé)任,那么它也會傳遞它在該責(zé)任被另一個對等體接受時它所將處的狀態(tài)。該發(fā)起者可能是未被提交的,被提交的或被臨時提交的。第一種情況(即發(fā)起者是未被提交的)根據(jù)本發(fā)明就被避免了,因為接受者需要等待來自發(fā)起者的提交。第二種情況(即發(fā)起者是被提交的)被提交的發(fā)起者不需要來自接受者朝著發(fā)起者的進一步動作。第三種情況(即發(fā)起者被臨時提交的)意味著該接受者需要緊記該發(fā)起者稍后也許會想要確認(rèn)或需要確認(rèn)。
注意,任何類型的提交都是一種狀態(tài)變更,即假定提交不是一種狀態(tài),它是一種狀態(tài)過渡。
該協(xié)議可以應(yīng)用在例如對等網(wǎng)絡(luò)或沒有中央服務(wù)器的類似網(wǎng)絡(luò)中的各種設(shè)備(與對等體相似)之間對變更進行所有權(quán)轉(zhuǎn)移上,實際上它也能夠應(yīng)用在具有中央服務(wù)器的系統(tǒng)中,但是比較沒有意義。
所述變更可以是對數(shù)據(jù)庫和/或?qū)ξ募龀鋈魏巫兏?。附加地或可供選擇地,所述變更可以是對任何信息項做出變更,該信息項是諸如變量、一個或多個參數(shù)、一個或多個狀態(tài)標(biāo)志、字符串變量,等等。
換句話說,所述變更可以具有這樣的效果文本、數(shù)字信息、圖像、視頻、聲音以及它們的組合隨后在文件和/或數(shù)據(jù)庫中得到更新。
該文件和/或數(shù)據(jù)庫可以單獨或分布式存儲在對等網(wǎng)絡(luò)或類似網(wǎng)絡(luò)上通信的任一設(shè)備中。
在下面示出了該發(fā)明的各種實際應(yīng)用,該更新與所述變更類似。
實例1)移動提交Johan把某些圖紙忘在他家里的儲藏室中。他沒有時間去取它們,所以讓Hendrik幫他去取它們。他在他的PDA設(shè)備上變更他家的安全設(shè)置,以使Hendrik能夠進入他的車庫、他的書房以及打開他的儲藏室。但是,出于安全的原因,不能在線變更這些設(shè)置。他將更新這些設(shè)置的責(zé)任轉(zhuǎn)移到他的車,并把他的車鑰匙給了Hendrik。Hendrik使用Johan的車開車到Johan的家。當(dāng)Hendrik到達Johan的家的時候,該車-作為該網(wǎng)絡(luò)中的另一設(shè)備-將安全設(shè)置的更新轉(zhuǎn)移到車庫。該車庫將該變更傳播到家里的其余設(shè)備,這樣Hendrik就能夠取得他要取的東西。當(dāng)Hendrik離開的時候,安全設(shè)置-即新的變更被回復(fù),這樣Hendrik就不能再次進入。該車庫-作為該網(wǎng)絡(luò)中的再另一設(shè)備-向車通知這個更新(即該變更)。Johan回到辦公室后,該車更新Johan的PDA上的設(shè)置,Johan能夠相信一切又都回到常態(tài)。Hendrik把圖紙交給他。
實例2)在許多個對等體或設(shè)備上更新代碼或參數(shù)的射后不理(fire and forget)的方法Pieter邀請Fien來他家做客吃晚餐。出乎意料地,她答應(yīng)了。他使用他的手機-作為該網(wǎng)絡(luò)中的再另一設(shè)備-來為與Fien一起的晚餐準(zhǔn)備他周圍的家。他沒有時間仔細檢查所有需要的變更,但是他的電話應(yīng)答機(作為另一設(shè)備,等等)接受了將這個信息傳播到所有相關(guān)設(shè)備的責(zé)任。當(dāng)他的PVR(作為另一設(shè)備,等等)取得這個消息的時候,它準(zhǔn)備記錄Pieter打算看的實況轉(zhuǎn)播的板球比賽。氣候系統(tǒng)(作為另一設(shè)備,等等)準(zhǔn)備將溫度從通常的18度提高到19.5攝氏度。廚房針對兩個人的某種等級的晚餐檢查它的庫存。它決定定購一些Cajun食品。消息傳送服務(wù)在他的相應(yīng)設(shè)備(例如他的PDA上)重新安排與24小時牙醫(yī)預(yù)約的時間。當(dāng)Pieter到家的時候,他立即知道除了一個變更之外所有由于與Fien的晚餐所引起的變更都是成功的,所以他可以休息一下,期待Fien的到來。有一個障礙,重新安排他的牙醫(yī)的預(yù)約沒有成功,他將不得不親自安排一個新的預(yù)約。Cajun食品將在Fien之前15分鐘到達,所以Pieter有時間將它放在他自己的烹飪器皿中。
其它實例-一組持久性對等體在一定程度上把中央服務(wù)器朝向多個ad-hoc連接的設(shè)備模擬。在家中Wubbo具有幾個一起處理他的日程的持久性對等體。任何一個設(shè)備都可以總是將該日程的項目卸載到所述持久性對等體(即設(shè)備)中的任何一個并信賴正被提交的變更。
-在掛起的關(guān)閉進行之前,快速卸載更新。Carol的智能遠端(作為另一設(shè)備,等等)可以在因功率損失所引起的即將來臨的關(guān)閉之前,不提交所有掛起的變更。它將責(zé)任轉(zhuǎn)移到墻中的應(yīng)答器(作為其它設(shè)備,等等)中的一個。
-一個任務(wù)也許需要一系列設(shè)備,這些設(shè)備每個執(zhí)行一個子任務(wù)。任務(wù)的責(zé)任和該任務(wù)一起傳播。
圖4示出了一種在對等網(wǎng)絡(luò)中執(zhí)行變更的所有權(quán)轉(zhuǎn)移的方法。所述對等網(wǎng)絡(luò)與來自上述圖中的設(shè)備網(wǎng)絡(luò)相似,即該變更的所有權(quán)轉(zhuǎn)移可以在所述網(wǎng)絡(luò)中的設(shè)備之間執(zhí)行。
在下面的步驟之前,假定一個變更始發(fā)于一個設(shè)備。這可以在下一個5中看到,在本方法的描述中也概括地涉及了圖5。在圖5(a)中,所要求的發(fā)起者或第一設(shè)備(對應(yīng)于圖3中的參考數(shù)字31)試圖查找另一個設(shè)備,即第二設(shè)備,參考數(shù)字32,等等。在這一階段,只有第一設(shè)備知道該變更,因為該變更還沒被傳送給任何其它設(shè)備。兩個提交狀態(tài)變量被實例化了,它們(首先)都是由這個發(fā)起者來保存的。第一提交狀態(tài)變量具有局部范圍,表示本地數(shù)據(jù)庫的狀態(tài)(該階段的值‘掛起’)。第二提交狀態(tài)變量具有全局范圍,表示該變更是否已被在所有相關(guān)對等體中提交了(該階段的值‘掛起’)。
第二設(shè)備在前面叫做接受者,因為它可以接受提交所述變更的責(zé)任。
在步驟100(圖1a、圖2a、圖5(b),第一設(shè)備可以嘗試查找將接受提交所述變更的責(zé)任的第二設(shè)備。
該嘗試也許證實為不成功,即所有提交狀態(tài)(提交狀態(tài)變量)保持為‘掛起’,第一設(shè)備將不得不再試一次(以找到另一個設(shè)備來接受提交所述變更的責(zé)任),或者該嘗試證實是成功的,即,下一步。
在步驟200(圖1b、圖2b、圖5(c),所述第一設(shè)備可以在那時將提交該變更的責(zé)任轉(zhuǎn)移到所述第二設(shè)備。這意味著將該變更傳播到接受者(第二設(shè)備)。此外,這意味著保存該全局提交狀態(tài)變量的責(zé)任被轉(zhuǎn)移到第二設(shè)備。這個全局變量的位置將在第二設(shè)備上。
在步驟300,該發(fā)起者,即所述第一設(shè)備可以將它的局部提交狀態(tài)變量設(shè)置為‘臨時的’(圖1b、圖2b,圖5(d2)),這表示該設(shè)備將表現(xiàn)得像該全局向量通過了一樣,但是它隨著把局部提交狀態(tài)變量設(shè)置為‘空的’等待著,直到它得到確認(rèn)全局提交狀態(tài)變量也被設(shè)置為了‘空的’,例如,在所述第一設(shè)備再次進入所述網(wǎng)絡(luò)并檢查全局提交狀態(tài)變量之時就是這樣。
正常的程序是首先檢查數(shù)據(jù)庫的所有部分是否都接受一定的變更,然后將它提交(即,實際把它進行到底)。如果數(shù)據(jù)庫是分布式的,那么設(shè)備不得不將變更傳播到所有相關(guān)部分,并且它們不得不說它們接受該變更。它們通過將帶有那個意思的消息發(fā)送到負責(zé)提交該變更的數(shù)據(jù)庫的部分(正保存全局提交狀態(tài)變量),來執(zhí)行后者。在P2P設(shè)置中,這通常是該發(fā)起者(第一設(shè)備),根據(jù)本發(fā)明,它是接受者(第二設(shè)備)。如果接受者具有來自所有應(yīng)當(dāng)應(yīng)用該變更的對等體(設(shè)備)的確認(rèn)它們將實際應(yīng)用該變更,那么接受者就知道該變更被全局地提交了,所以全局提交狀態(tài)變量可以被設(shè)置為空的。
局部提交狀態(tài)變量指示本地數(shù)據(jù)庫是否已應(yīng)用該變更。
全局提交狀態(tài)變量指示是否所有對等體都已應(yīng)用該變更。
可供選擇地,在步驟310,局部提交狀態(tài)變量可以被設(shè)置為表示真實提交的‘空的’(圖2b,圖5(d1))。
所述第一設(shè)備在重新進入該網(wǎng)絡(luò)之前可能會等待或必須等待一定數(shù)量的時間,因此-處于未連接的情形-資源可以被饋送給與該網(wǎng)絡(luò)通信之外的其它任務(wù),即,當(dāng)所述第一設(shè)備是個人錄像機之時,它可以把它的資源專用于記錄電影。
在步驟400,所述第二設(shè)備可以將所述變更傳播到所述變更相關(guān)到的一個或多個設(shè)備(圖1c、圖2c、圖5(e、f、g、h))。這是當(dāng)提交該變更的責(zé)任被在所述第二設(shè)備上接收和接受之時的情況。
在這里,該方法可以成功完成,即在這里該變更的所有權(quán)轉(zhuǎn)移已經(jīng)被成功轉(zhuǎn)移了。
但是,所述方法還可以包括下面兩個步驟。
在步驟500,所述第一設(shè)備可以將臨時提交的局部提交狀態(tài)變量轉(zhuǎn)換為真實提交。這是當(dāng)所述第一設(shè)備重新進入所述網(wǎng)絡(luò)并從所述第二設(shè)備(圖5(i))接收一個指示成功提交的消息之時的情況。
此外,所述第一設(shè)備還可以在進入該網(wǎng)絡(luò)之前等待一定數(shù)量的時間。所述第一設(shè)備可能會有這樣的經(jīng)歷-根據(jù)前面的情形消耗在未連接上-在第二設(shè)備最后將提供成功提交消息之前它將花費一些時間。
發(fā)起設(shè)備(所述第一設(shè)備)也可以在未連接上之后在預(yù)定數(shù)量的時間內(nèi)將臨時狀態(tài)轉(zhuǎn)換為‘空的’狀態(tài)。
在步驟600,所述第一設(shè)備可以從所述第二設(shè)備接收一個表示提交不成功的消息。這是當(dāng)所述第二設(shè)備沒有成功地執(zhí)行全局提交變更之時的情況,例如,原因在于第二設(shè)備未能聯(lián)系到所有相關(guān)對等體,或原因在于一個或多個對等體拒絕提交該變更(例如,是由于對更新加鎖或使更新沖突所引起的)。所述消息可以在所述第一設(shè)備下一次進入所述網(wǎng)絡(luò)之時接收。
該方法可以在這里成功地結(jié)束;但是所述方法另外還可以包括下面的步驟。
在不偏離該發(fā)明的概念的情況下,變量的值和參數(shù)的名字可以被變更。例如參數(shù)“全局提交狀態(tài)”的值可以是“提交”而不是“空的”,以指示該提交是成功的。
在步驟700,所述第一設(shè)備可以回滾所述變更。這是例如當(dāng)局部提交狀態(tài)(變量)是臨時提交并且步驟600發(fā)生之時的情況。其它對等體(設(shè)備)沒有提交,所以在該發(fā)起者(第一設(shè)備)上的臨時提交需要被回滾。如果步驟600發(fā)生并且發(fā)起者先前已執(zhí)行了一個真實提交,那么就所述變更而言局部提交狀態(tài)變量就不再存在了并且數(shù)據(jù)庫也不一致了。為了補救該情況,發(fā)起者可以再次啟動相同的變更(即重試)或啟動新的變更以抵消第一變更并解除該不一致性。
計算機可讀介質(zhì)可以是磁帶、光盤、數(shù)字化多功能盤(DVD)、壓縮盤(可記錄CD或可寫的CD)、小型盤、硬盤、軟盤、智能卡、PCMCIA卡,等等。
在權(quán)利要求中,任何放在括號之間的附圖標(biāo)記都不應(yīng)該被理解為限定該權(quán)利。單詞“包括”不排除不同于權(quán)利要求中所列出的那些的元件或步驟的存在。在元件之前的“一個”或“一種”不排除多個這樣的元件的存在。
該發(fā)明可以借助于包括幾個有差別元件的硬件來實現(xiàn),以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了幾個裝置的設(shè)備權(quán)利要求中,這些裝置中的幾個可以通過一個且相同的硬件項來加以具體化。在互不相同的從屬權(quán)利要求中記載著某些措施這一事實,并不表明這些措施不能得到有利的應(yīng)用。
權(quán)利要求
1.一種在對等網(wǎng)絡(luò)(30)中執(zhí)行變更的所有權(quán)轉(zhuǎn)移的方法,所述方法包括如下步驟-嘗試(100),借助于第一設(shè)備(31)嘗試去查找將接受提交所述變更的責(zé)任的第二設(shè)備(32);-轉(zhuǎn)移(200),借助于所述第一設(shè)備將提交該變更的責(zé)任轉(zhuǎn)移到所述第二設(shè)備并將該變更傳播到所述第二設(shè)備,其中全局提交狀態(tài)變量也被轉(zhuǎn)移到所述第二設(shè)備并且其中所述全局提交狀態(tài)變量在所述第二設(shè)備上保存著;-設(shè)置(300),當(dāng)所述第一設(shè)備重新進入網(wǎng)絡(luò)并檢查該全局提交狀態(tài)變量的狀態(tài)之時,借助于所述第一設(shè)備將局部提交狀態(tài)變量設(shè)置為“臨時的”,表示該設(shè)備將表現(xiàn)得好像該全局變量通過了一樣,其中所述第一設(shè)備在隨著把該局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’之時,保持等待直到它得到確認(rèn)該全局提交狀態(tài)變量也被設(shè)置為‘空的’;或-設(shè)置(310),借助于所述第一設(shè)備將局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’;以及-傳播(400),當(dāng)在所述第二設(shè)備上接收到并接受提交該變更的責(zé)任之時,借助于所述第二設(shè)備將所述變更傳播到所述變更相關(guān)到的一個或多個設(shè)備(33、34)。
2.如權(quán)利要求1所述的方法還包括如下步驟-轉(zhuǎn)換(500),當(dāng)所述第一設(shè)備重新進入所述網(wǎng)絡(luò)并從所述第二設(shè)備接收到一個指示提交成功的消息之時,借助于所述第一設(shè)備將臨時提交的局部提交狀態(tài)變量轉(zhuǎn)換為真實提交;以及-接收(600),當(dāng)所述第一設(shè)備重新進入所述網(wǎng)絡(luò)之時,如果所述第二設(shè)備沒有成功地執(zhí)行提交該變更,那么就在所述第一設(shè)備上從所述第二設(shè)備接收一個指示提交不成功的消息。
3.如權(quán)利要求2所述的方法,還包括如下步驟-回滾(700),當(dāng)本地提交狀態(tài)變量是臨時提交并且接收步驟(600)的情形發(fā)生之時,借助于所述第一設(shè)備回滾所述變更。
4.如權(quán)利要求1至3之中任何一項所述的方法,其特征在于所述變更是對數(shù)據(jù)庫的變更、對文件的變更和對信息項的變更中的至少一項。
5.如權(quán)利要求1至4之中任何一項所述的方法,其特征在于所述設(shè)備中的任何一個是汽車、車庫、錄像機(VCR)、個人數(shù)字助理(PDA)、手機、氣候系統(tǒng)、電視、燈、咖啡機、收音機、DVD播放器、CD播放器、信息面板、網(wǎng)絡(luò)平板電腦、智能遠端、電話應(yīng)答機、個人電腦,或任何其它電子設(shè)備的其中之一。
6.一種用于變更的所有權(quán)轉(zhuǎn)移的協(xié)議,其特征在于該協(xié)議包括一個具有真實提交和臨時提交中的至少一個狀態(tài)的提交狀態(tài)變量。
7.一種用于執(zhí)行變更的所有權(quán)轉(zhuǎn)移的設(shè)備(31),所述設(shè)備(31)包括-用于嘗試去查找將接受提交所述變更的責(zé)任的第二設(shè)備(32)的裝置;-用于將提交該變更的責(zé)任轉(zhuǎn)移到所述第二設(shè)備(32)并將該變更傳播到所述第二設(shè)備(32)的裝置,以及用于將全局提交狀態(tài)變量轉(zhuǎn)移到所述第二設(shè)備(32)的裝置;-當(dāng)所述設(shè)備(31)重新進入網(wǎng)絡(luò)并檢查該全局提交狀態(tài)變量的狀態(tài)之時,在所述設(shè)備(31)隨著把該局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’并保持等待直到它得到確認(rèn)該全局提交狀態(tài)變量也被設(shè)置為‘空的’之時,用于將局部提交狀態(tài)變量設(shè)置為表示該設(shè)備(31)將表現(xiàn)得好像該全局變量通過了一樣的“臨時的”的裝置;或-用于將局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’的裝置;以及-用于將所述變更傳播到所述變更相關(guān)的一個或多個設(shè)備(33、34)的裝置。
8.如權(quán)利要求7所述的設(shè)備(31),所述設(shè)備(31)還包括-用于將臨時提交的局部提交狀態(tài)變量轉(zhuǎn)換為真實提交的裝置;以及-用于接收一個指示提交不成功的消息的裝置。
9.如權(quán)利要求8所述的設(shè)備(31),所述設(shè)備(31)還包括-用于回滾所述變更的裝置。
10.一種用于執(zhí)行根據(jù)權(quán)利要求1至5之中的任何一項的方法的計算機系統(tǒng)。
11.一種計算機程序產(chǎn)品,包括存儲在計算機可讀介質(zhì)用于在該計算機程序在計算機上運行之時執(zhí)行權(quán)利要求1至5之中任何一項的方法的程序代碼裝置。
全文摘要
本發(fā)明涉及在對等網(wǎng)絡(luò)(30)中執(zhí)行變更的所有權(quán)轉(zhuǎn)移的方法、設(shè)備和協(xié)議。該設(shè)備或?qū)Φ润w可以是汽車、車庫、錄像機(VCR)、個人數(shù)字助理(PDA)、手機、氣候系統(tǒng)、電視、燈、咖啡機、收音機、DVD播放器、CD播放器、信息面板、網(wǎng)絡(luò)平板電腦、智能遠端、電話應(yīng)答機、個人電腦(VCR)。所述方法包括如下步驟嘗試,借助于第一設(shè)備(31)來嘗試查找將接受提交所述變更的責(zé)任的第二設(shè)備(32);轉(zhuǎn)移,借助于所述第一設(shè)備將提交該變更的責(zé)任轉(zhuǎn)移到所述第二設(shè)備并將該變更傳播到所述第二設(shè)備,其中全局提交狀態(tài)變量也被轉(zhuǎn)移到所述第二設(shè)備并且其中所述全局提交狀態(tài)變量在所述第二設(shè)備上保存著;設(shè)置,當(dāng)所述第一設(shè)備重新進入網(wǎng)絡(luò)并檢查該全局提交狀態(tài)變量的狀態(tài)之時,借助于所述第一設(shè)備將局部提交狀態(tài)變量設(shè)置為“臨時的”,表示該設(shè)備將表現(xiàn)得好像該全局變量通過了一樣的,其中所述第一設(shè)備在隨著把該局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’之時,保持等待直到它得到確認(rèn)該全局提交狀態(tài)變量也被設(shè)置為‘空的’;或設(shè)置,借助于所述第一設(shè)備將局部提交狀態(tài)變量設(shè)置為表示真實提交的‘空的’;以及傳播,當(dāng)在所述第二設(shè)備上接收到并接受提交該變更的責(zé)任之時,借助于所述第二設(shè)備將所述變更傳播到一個或多個所述變更相關(guān)的設(shè)備(33、34)。
文檔編號H04L29/08GK1759395SQ200480006705
公開日2006年4月12日 申請日期2004年3月9日 優(yōu)先權(quán)日2003年3月10日
發(fā)明者W·F·J·方蒂恩, A·斯尼特斯恩 申請人:皇家飛利浦電子股份有限公司