專利名稱:用于管理分布式資產(chǎn)和元數(shù)據(jù)的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于對多個設(shè)備、服務(wù)器和系統(tǒng)之間的數(shù)據(jù)進(jìn)行管理的架構(gòu)、服務(wù)和方法。具體地,本發(fā)明涉及提供與用戶數(shù)據(jù)相關(guān)的資產(chǎn)的邏輯上統(tǒng)一且聚合的視圖,所述資產(chǎn)包括來自任何系統(tǒng)節(jié)點或設(shè)備的元數(shù)據(jù)。
背景技術(shù):
數(shù)據(jù)相關(guān)的資產(chǎn)包括圖像、視頻和音樂文件,這些資產(chǎn)被創(chuàng)建并被下載到個人計算機(jī)(PC)的存儲器中以進(jìn)行個人娛樂。一般而言,如今的數(shù)據(jù)相關(guān)的資產(chǎn)經(jīng)常都是數(shù)字格式的(即,“數(shù)字資產(chǎn)”),即使在它們起初并非是以數(shù)字格式的。通常,僅在需要查看、收聽或播放時才訪問這些數(shù)字資產(chǎn)。各種設(shè)備和因特網(wǎng)服務(wù)提供并利用這些數(shù)字資產(chǎn),包括個人數(shù)字助理(PDA)、數(shù)碼相機(jī)、個人計算機(jī)(PC)、媒體服務(wù)器、終端和網(wǎng)站。存儲在這些設(shè)備或服務(wù)提供者上的資產(chǎn)的集合通常是松耦合或者根本不耦合,并且當(dāng)前的同步過程通常發(fā)生在兩個設(shè)備之間,例如媒體播放器與PC之間。許多現(xiàn)有的解決方案通過復(fù)制每個資產(chǎn)(即通過復(fù)制與每個資產(chǎn)相關(guān)聯(lián)的數(shù)據(jù)文件)到每個節(jié)點上來提供對分布式數(shù)字資產(chǎn)集合的聚合的查看。Syncplicity、 Sharpcast公司的SugarSync和微軟公司的Live Mesh是當(dāng)前市場上提供使用這種復(fù)制技術(shù)的示例。這種系統(tǒng)的一個缺點是它們的存儲效率低。當(dāng)將新的資產(chǎn)添加到其他節(jié)點時, 在每個節(jié)點上都需要額外的存儲能力,而不管該節(jié)點對被存儲的資產(chǎn)的需要。將新的資產(chǎn)復(fù)制到每個節(jié)點上的上述系統(tǒng)的另一缺點是在用戶等待要被上傳的資產(chǎn)時,用戶體驗受到明顯的影響。由于許多公共工作流(例如,共享或打印)都需要上傳感興趣的資產(chǎn),所以當(dāng)上傳操作完成時,用戶體驗被顯著延遲了。傳統(tǒng)系統(tǒng)的又一缺點涉及限制訪問之前共享的資產(chǎn)的能力。一旦已經(jīng)與另一用戶共享了共享資產(chǎn),則該共享資產(chǎn)就也被復(fù)制到接收方的節(jié)點上。大部分的現(xiàn)有解決方案都不允許當(dāng)資產(chǎn)的新的、相同的副本存在于接收方的節(jié)點或計算機(jī)上時,初始共享者刪除該副本。其他傳統(tǒng)的解決方案通過使得存儲資產(chǎn)的每個節(jié)點能夠向請求節(jié)點廣播被請求資產(chǎn)的一個版本來提供對分布式數(shù)字資產(chǎn)集合的聚合查看。一個示例是Orb系統(tǒng)。安裝在接入節(jié)點的每個點上的客戶端應(yīng)用程序根據(jù)被請求的要求(例如,分辨率標(biāo)準(zhǔn))將被請求的資產(chǎn)以流的形式移動到其他節(jié)點上。這種類型的系統(tǒng)的缺點是當(dāng)接入點沒有連接到該系統(tǒng)(即,離線狀態(tài))時不能進(jìn)行訪問。另外,離線節(jié)點實際上不能提供僅與本地存儲的資產(chǎn)相關(guān)的值。而且,另一局限性在于,如果正在存儲資產(chǎn)的節(jié)點是離線的,則另一系統(tǒng)中的其他節(jié)點都不會意識到被存儲的資產(chǎn)的存在。現(xiàn)有系統(tǒng)的另一缺點是,識別被新引入到集合中的資產(chǎn)已經(jīng)存在于該集合中的能力是有限的;因此,該系統(tǒng)經(jīng)常在所述集合中產(chǎn)生不必要的重復(fù),這由于要求額外的資源 (例如,存儲空間或者處理時間)進(jìn)行操作而對該系統(tǒng)造成了影響。它還影響了或許沒有意識到該系統(tǒng)包括同一資產(chǎn)的多個副本的用戶。
4
最后,分布式數(shù)字資產(chǎn)集合的傳統(tǒng)的聚合查看的另一缺點在于,擁有者在本地組織她的資產(chǎn)時所創(chuàng)建的信息(例如,用于組織圖片的Windows文件夾系統(tǒng))會被破壞或者被忽略。因此,在該技術(shù)中存在克服與當(dāng)今存在的傳統(tǒng)分布式數(shù)字資產(chǎn)集合系統(tǒng)相關(guān)聯(lián)的缺陷和局限性的需要。
發(fā)明內(nèi)容
描述了一種用于管理網(wǎng)絡(luò)中的分布式數(shù)字資產(chǎn)和相關(guān)元數(shù)據(jù)的系統(tǒng)的本發(fā)明滿足了上述需要,該系統(tǒng)包括若干互連的節(jié)點,每個互連的節(jié)點都經(jīng)由用戶控制的存儲器和高速緩存子系統(tǒng)來提供對分布式數(shù)字資產(chǎn)的可訪問性,從而對資產(chǎn)和相關(guān)元數(shù)據(jù)的管理是基于預(yù)定標(biāo)準(zhǔn)的。每個互連的節(jié)點都包括高速緩存子系統(tǒng)、元數(shù)據(jù)存儲器、控制器、用戶控制的資產(chǎn)存儲器部件以及用于在每個節(jié)點之間進(jìn)行通信的聯(lián)網(wǎng)子系統(tǒng)?;ミB的節(jié)點為客戶端應(yīng)用程序的平臺操作提供支持。本發(fā)明還提供一種用于通過在監(jiān)控的斷開連接的節(jié)點處確定添加的資產(chǎn)以及評估該被添加的資產(chǎn)是否是現(xiàn)有資產(chǎn)的副本來確定重復(fù)的數(shù)據(jù)資產(chǎn)的方法。在添加的資產(chǎn)立即被評估為是副本的情況下,將添加的資產(chǎn)歸類為額外副本。當(dāng)在斷開連接的節(jié)點處沒有發(fā)現(xiàn)重復(fù)資產(chǎn)的情況下,然后,在該節(jié)點重新連接時,聯(lián)系所有其他已知的用戶節(jié)點以確定在那些節(jié)點處是否存在重復(fù)資產(chǎn)。如果存在,則將那個重復(fù)資產(chǎn)歸類為額外副本。當(dāng)在已知用戶節(jié)點處不存在添加的資產(chǎn)時,則將該添加的資產(chǎn)歸類為新資產(chǎn)。本發(fā)明的另一方面包括使該系統(tǒng)的一個用戶與第二用戶共享資產(chǎn)的能力,這種能力使得第二用戶能夠看到該資產(chǎn)并看到對該資產(chǎn)及其元數(shù)據(jù)做出的改變并且能夠改變該資產(chǎn)及其元數(shù)據(jù),如果資產(chǎn)的擁有者有權(quán)利這樣做的話。因此,公開了一種在多個用戶之間提供對數(shù)據(jù)資產(chǎn)的訪問的方法,包括提供用于至少在第一用戶與第二用戶之間共享數(shù)據(jù)資產(chǎn)的網(wǎng)絡(luò)的步驟。第二步驟為發(fā)起共享數(shù)據(jù)資產(chǎn)的邀請。該邀請從第一用戶發(fā)送給第二用戶。第三步驟使得該邀請能夠被第二用戶接受;因此此后,使得產(chǎn)生與共享的數(shù)據(jù)資產(chǎn)相對應(yīng)的共享元數(shù)據(jù)。另一步驟將元數(shù)據(jù)的副本發(fā)送給第二用戶,以便能夠在第一用戶和第二用戶之間共享數(shù)據(jù)資產(chǎn)。最后的步驟是在共享的元數(shù)據(jù)已經(jīng)被改變的情況下將共享的元數(shù)據(jù)進(jìn)行同步,以便至少反映最近的元數(shù)據(jù)改變。
圖1示出了根據(jù)本發(fā)明的示例性全分布式系統(tǒng),其中,一組節(jié)點通過對等網(wǎng)絡(luò)進(jìn)行互連;圖2示出了單個節(jié)點的部件;圖3示出了在用戶之間共享資產(chǎn)以及對該資產(chǎn)中的改變進(jìn)行同步的示例性步驟;圖3a示出了版本矢量的組分;圖4示出了在具有斷開連接的節(jié)點的情況下的副本檢測的示例性步驟;圖5示出了對存儲同一元數(shù)據(jù)的節(jié)點進(jìn)行同步的示例性步驟;圖6示出了對具有不同元數(shù)據(jù)級別(從較高能力到較低能力)的節(jié)點進(jìn)行同步的示例性步驟;圖7示出了對具有不同元數(shù)據(jù)級別(從較低能力到較高能力)的節(jié)點進(jìn)行同步的示例性步驟;圖8示出了對具有相同元數(shù)據(jù)級別(填充有局部同步)的節(jié)點進(jìn)行同步的示例性步驟。
具體實施例方式這里描述了一種根據(jù)本發(fā)明的分布式數(shù)字資產(chǎn)管理系統(tǒng)。分布式數(shù)字資產(chǎn)管理系統(tǒng)有時被稱為聯(lián)合資產(chǎn)管理系統(tǒng)。在本發(fā)明的上下文中,分布式數(shù)字資產(chǎn)管理系統(tǒng)以一種對于該系統(tǒng)的用戶而言看起來好像是該數(shù)據(jù)都被存儲在一起的方式來組合來自不同源的數(shù)據(jù)。這些源包括例如個人計算機(jī)、服務(wù)器、移動電話、游戲設(shè)備等。所述數(shù)據(jù)包括數(shù)字?jǐn)?shù)據(jù)、音頻數(shù)據(jù)、成像數(shù)據(jù)等。因此,在本發(fā)明的上下文中,“資產(chǎn)”指的是初始被數(shù)字化的或者將被轉(zhuǎn)換成數(shù)字格式的圖像、視頻、音樂、其他音頻數(shù)據(jù)和文件。本發(fā)明若干方面中的一個方面提供了聚合地查看(跨越一個或多個節(jié)點)和訪問被擁有和共享的所有媒體資產(chǎn)。由用戶擁有或共享的所有數(shù)字/媒體資產(chǎn)都被聚集并被稱為用戶的虛擬集合。本發(fā)明描述了一種分布式系統(tǒng),用于管理該用戶的與該虛擬集合相關(guān)聯(lián)的所有或者被選數(shù)量的數(shù)字資產(chǎn)和元數(shù)據(jù),該虛擬集合包括運行于該用戶或許希望使用的或者該用戶的資產(chǎn)可以駐留于其上的并且可以與其他節(jié)點進(jìn)行通信的各種節(jié)點上的一組軟件服務(wù)。根據(jù)本發(fā)明的示例性分布式數(shù)字資產(chǎn)管理系統(tǒng)(下文中通常稱為“該系統(tǒng)”)包括如圖1所示的一組節(jié)點(1、4、5和6)。節(jié)點1、4、5和6包括運行于計算機(jī)上的一個軟件服務(wù)或一組服務(wù)。該計算機(jī)可以是屬于用戶的工作站,但是這些節(jié)點還可以是個人數(shù)字助理 (PDA)或者其他能夠聯(lián)網(wǎng)的設(shè)備,諸如移動電話或游戲設(shè)備。節(jié)點1、4、5和6通過使用對等鏈路2在網(wǎng)絡(luò)上彼此進(jìn)行通信。該網(wǎng)絡(luò)通常是因特網(wǎng),但也可以包括基于其他協(xié)議(諸如藍(lán)牙 )的自組織(ad-hoc)子網(wǎng)絡(luò)。一些節(jié)點將與應(yīng)用程序3進(jìn)行通信。典型的應(yīng)用程序允許用戶(也稱為成員)查看、共享以及以其他方式處理他們的虛擬集合以及屬于該集合的所有資產(chǎn)和元數(shù)據(jù),包括他們的駐留于其他節(jié)點上的虛擬集合中的資產(chǎn)。給定計算機(jī)上的每個節(jié)點都支持使用該計算機(jī)的所有用戶。該分布式系統(tǒng)的實現(xiàn)將優(yōu)選地包括中央節(jié)點 5。中央節(jié)點5駐留在一組網(wǎng)絡(luò)服務(wù)器上。中央節(jié)點5幫助該分布式系統(tǒng)上的不同用戶彼此進(jìn)行初始的聯(lián)系,支持網(wǎng)絡(luò)應(yīng)用程序以及支持外部服務(wù)(諸如照相洗印服務(wù))。中央節(jié)點 5還能夠為需要被確??捎玫馁Y產(chǎn)提供高速緩存存儲器。對于該分布式系統(tǒng)的大多數(shù)用戶而言,主要是與非中央(邊緣)節(jié)點進(jìn)行交互和通信以及在非中央(邊緣)節(jié)點之間進(jìn)行交互和通信。示例性節(jié)點的內(nèi)部結(jié)構(gòu)如圖2所示。典型的節(jié)點包括通過彼此傳遞消息10來進(jìn)行通信的多個部件。在一些系統(tǒng)上,這些消息忽略由微軟的MSMQ或者類似軟件實施的異步隊列,但是這些部件仍然還能夠直接傳遞消息。應(yīng)用程序接口(API)部件11使得用戶應(yīng)用程序能夠訪問該用戶的虛擬集合以及與該虛擬集合有關(guān)的對應(yīng)的信息。網(wǎng)絡(luò)接口 12允許每個節(jié)點通過收發(fā)消息來與所有其他節(jié)點進(jìn)行通信。用戶控制的存儲器/存儲裝置部件13 對用戶控制的資產(chǎn)進(jìn)行管理。典型地,由用戶控制的存儲器/存儲裝置部件13管理的資產(chǎn)包括駐留在該節(jié)點處的計算機(jī)上的文件。然而,用戶控制的存儲器/存儲裝置部件13還能夠管理遠(yuǎn)程網(wǎng)絡(luò)站點(諸如Flickr )處的資產(chǎn)。重資產(chǎn)(heavy asset)高速緩存器14包括臨時存儲在該節(jié)點上的資產(chǎn)以及其他文件??刂破?5運行工作流,所述工作流執(zhí)行由該節(jié)點從事的任務(wù)。這些工作流由存儲在節(jié)點數(shù)據(jù)庫17中的工作流描述和策略進(jìn)行控制??梢酝ㄟ^改變這些工作流描述和策略來獨立地配置這些節(jié)點。例如,PDA將具有與工作站非常不同的工作流。由該控制器使用的工作流和策略包括掌控重資產(chǎn)高速緩存器的管理的策略。元數(shù)據(jù)存儲器16包括與用戶的集合中的資產(chǎn)相對應(yīng)的元數(shù)據(jù)。通常,給定用戶的元數(shù)據(jù)存儲器16將包括針對那個用戶的集合中的所有資產(chǎn)的元數(shù)據(jù)。與資產(chǎn)相對應(yīng)的縮略圖(例如,圖像和音頻剪輯)也被認(rèn)為是該分布式系統(tǒng)中的元數(shù)據(jù)。這些縮略圖存儲在縮略圖高速緩存器18中。本發(fā)明的其他實施例可以將這些縮略圖存儲在元數(shù)據(jù)存儲器16 中。存儲在給定節(jié)點上的元數(shù)據(jù)的數(shù)量將足夠多,以便用戶能夠瀏覽整個集合來并對整個集合來進(jìn)行一些動作,即使在該計算機(jī)與網(wǎng)絡(luò)隔離的情況下。在每個節(jié)點上存儲其資產(chǎn)元數(shù)據(jù)的確切規(guī)范由存儲在節(jié)點數(shù)據(jù)庫17中的標(biāo)準(zhǔn)確定。網(wǎng)絡(luò)接口 12負(fù)責(zé)管理節(jié)點之間的對等連接。網(wǎng)絡(luò)接口 12在節(jié)點之間傳遞消息和文件,并發(fā)現(xiàn)哪些節(jié)點在線。網(wǎng)絡(luò)接口 12由兩個部分構(gòu)成。一個部分稱為網(wǎng)絡(luò)發(fā)送器/ 接收器(talker/listener),其接收來自其余節(jié)點的消息。那些消息是該系統(tǒng)專用的,并且具有獨立于傳送的格式。那些消息指向特定節(jié)點上的特定用戶。以不引用特定網(wǎng)絡(luò)地址的方式來指定該節(jié)點的標(biāo)識。第二部分是由發(fā)送器/接收器用來收發(fā)消息的接口。由網(wǎng)絡(luò)發(fā)送器/接收器使用的傳輸接口封裝有關(guān)對該系統(tǒng)可用的各種傳輸?shù)乃行畔?。用于在?jié)點之間進(jìn)行傳遞的最優(yōu)選的機(jī)制在由路由器和防火墻分離的家庭系統(tǒng)之間傳遞數(shù)據(jù)。理想地,網(wǎng)絡(luò)接口 12應(yīng)當(dāng)在不要求用戶在他們的路由器或者防火墻中開口的情況下對此進(jìn)行執(zhí)行。出于這個原因,在該系統(tǒng)的一個實施例中最經(jīng)常使用的、用于在節(jié)點之間傳輸數(shù)據(jù)和元數(shù)據(jù)的方法使用由谷歌(Google)開發(fā)的稱為Iibjingle的軟件包。該軟件包將用于在計算機(jī)之間發(fā)送消息的聊天機(jī)制與能夠通過消費者網(wǎng)絡(luò)路由器傳遞數(shù)據(jù)的對等文件傳輸機(jī)制進(jìn)行組合。用于在計算機(jī)之間建立對等連接的其他公知的方法也能夠與該系統(tǒng)一起使用。另外,位于單個家庭網(wǎng)絡(luò)中的節(jié)點能夠使用簡單的基于TCP/IP的協(xié)議來進(jìn)行通信,這不需要使用外部聊天服務(wù)器。用戶通過應(yīng)用程序來訪問該系統(tǒng),該應(yīng)用程序提供了允許用戶查看/編輯所述集合的圖形用戶界面(即,⑶I)。這些應(yīng)用程序使用由本地資產(chǎn)管理節(jié)點提供的服務(wù)來獲取對屬于用戶的分布式集合的訪問,而不需該應(yīng)用程序知道與該資產(chǎn)或者該資產(chǎn)的元數(shù)據(jù)的位置相關(guān)的任何細(xì)節(jié)。該應(yīng)用程序使用作為該系統(tǒng)的應(yīng)用程序的一部分而被分布并被加載的庫。該庫與該系統(tǒng)的本地節(jié)點上的應(yīng)用程序接口(API)部件11進(jìn)行通信。該庫通過使用標(biāo)準(zhǔn)進(jìn)程間通信方法向API部件11發(fā)送消息來進(jìn)行通信。該系統(tǒng)API部件11通過與該系統(tǒng)節(jié)點的其他部件進(jìn)行通信來對來自該應(yīng)用程序的消息進(jìn)行響應(yīng)。應(yīng)用程序能夠使用該系統(tǒng)API來讀取并寫入系統(tǒng)元數(shù)據(jù)(例如,成員信息、集合信息以及資產(chǎn)信息)。該應(yīng)用程序還能夠訂閱針對狀態(tài)和錯誤信息的通知以及訂閱何時對該應(yīng)用程序外部的集合做出改變的通知。該應(yīng)用程序使用系統(tǒng)服務(wù)來訪問重資產(chǎn)高速緩存器 14中的重資產(chǎn)(即,全分辨率(full resolution)資產(chǎn)文件)??梢酝ㄟ^請求針對該資產(chǎn)的本地路徑或者通過打開到該資產(chǎn)的流來對重資產(chǎn)進(jìn)行訪問。系統(tǒng)服務(wù)將提供可用的本地路徑或流,而不管該重資產(chǎn)的實際存儲位置。在中央節(jié)點5上,API需要適合網(wǎng)絡(luò)環(huán)境。因特網(wǎng)API的最常使用的協(xié)議是簡單對象訪問協(xié)議(SOAP)和表示狀態(tài)傳輸(representational state transfer, REST)協(xié)議, 上述每一個協(xié)議都涉及傳送HTTP分組內(nèi)部的API參數(shù)和響應(yīng)。中央節(jié)點5上的API處理器對REST命令進(jìn)行響應(yīng)。通過該API請求重資產(chǎn)的請求將該資產(chǎn)的副本移動到中央重資產(chǎn)高速緩存器14,并返回能夠用于從中央重資產(chǎn)高速緩存器14中取得該資產(chǎn)的代理URL。根據(jù)本發(fā)明的系統(tǒng)元數(shù)據(jù)包括與所述集合中的資產(chǎn)相關(guān)的信息以及用戶信息 (例如,口令、文件名、視頻預(yù)覽、資產(chǎn)創(chuàng)建日期以及用戶提供的標(biāo)簽)和系統(tǒng)操作的狀態(tài)/ 狀況(例如,文件復(fù)制、文件共享)。資產(chǎn)信息包括從諸如Exif標(biāo)簽之類的文件中提取的信息、由用戶添加的信息(諸如,標(biāo)題)以及使用圖像智能操作從資產(chǎn)內(nèi)容中提取的信息。針對資產(chǎn)的元數(shù)據(jù)還包括針對該資產(chǎn)的縮略圖,例如從該資產(chǎn)中提取的、允許用戶容易地從視覺上識別該資產(chǎn)的小的圖像。針對資產(chǎn)的元數(shù)據(jù)還包括對那個資產(chǎn)的所有已知副本的引用以及對根據(jù)那個資產(chǎn)創(chuàng)建的所有其他資產(chǎn)的引用。如果該系統(tǒng)知道給定資產(chǎn)是從哪個資產(chǎn)獲得的,則資產(chǎn)元數(shù)據(jù)還包括對從其獲得給定資產(chǎn)的原始資產(chǎn)的引用。針對資產(chǎn)的訪問控制信息還是針對該資產(chǎn)的元數(shù)據(jù)的一部分。系統(tǒng)元數(shù)據(jù)被組織為具有特性的主題,其中, 主題和特性自身都是元數(shù)據(jù)的片段。在一個節(jié)點上生成的元數(shù)據(jù)通過節(jié)點同步過程被傳遞給其他節(jié)點。在本發(fā)明的上下文中,給定的系統(tǒng)節(jié)點不是具有與使用那個節(jié)點的用戶的集合相關(guān)聯(lián)的每條元數(shù)據(jù)。然而,每個節(jié)點都將存儲該節(jié)點認(rèn)為是“訪問關(guān)鍵”的元數(shù)據(jù)。訪問關(guān)鍵元數(shù)據(jù)是在節(jié)點離線時允許本地應(yīng)用程序工作所需的元數(shù)據(jù)。關(guān)于什么是“訪問關(guān)鍵元數(shù)據(jù)”,每個節(jié)點可以具有不同的觀點,例如,蜂窩電話可以僅保存資產(chǎn)ID的列表。PC可以具有更大的組,包括資產(chǎn) ID、日期、標(biāo)題、描述等。作為節(jié)點同步過程的一部分,每個節(jié)點都將它認(rèn)為是“訪問關(guān)鍵”的元數(shù)據(jù)的特定組傳遞給其他節(jié)點。還可以存在著分離的元數(shù)據(jù)存儲器16,其保存僅與本地節(jié)點相關(guān)的元數(shù)據(jù)。例如,分離的元數(shù)據(jù)存儲器16保存與事情的本地狀態(tài)相關(guān)的項目。集合元數(shù)據(jù)可以包括引用以及值。例如,一條資產(chǎn)元數(shù)據(jù)是該資產(chǎn)的特性。位于不同節(jié)點上的資產(chǎn)的各種副本也是資產(chǎn)的特性,并且對那些副本的引用存儲在元數(shù)據(jù)存儲器中。該系統(tǒng)將這些引用存儲為系統(tǒng)統(tǒng)一資源標(biāo)識符(URI)。除了識別系統(tǒng)資源,系統(tǒng)URI 還提供了通過描述資源的主要訪問機(jī)制(例如,資源的網(wǎng)絡(luò)“位置”)來定位該資源的方式, 所以其也是系統(tǒng)統(tǒng)一資源定位符(URL)。該URL能夠被如此使用的原因是其包括系統(tǒng)網(wǎng)絡(luò)節(jié)點ID,該系統(tǒng)網(wǎng)絡(luò)節(jié)點ID是唯一地標(biāo)識每個節(jié)點并能夠由網(wǎng)絡(luò)接口部件進(jìn)行解釋的全球唯一標(biāo)識符(GUID)。如果某個節(jié)點被請求其本地未存儲的元數(shù)據(jù)或資產(chǎn),則該節(jié)點能夠使用系統(tǒng)URL來找到哪些節(jié)點確實具有被請求的數(shù)據(jù),并向那些節(jié)點發(fā)送請求的期望數(shù)據(jù)的消息。元數(shù)據(jù)存儲器16能夠包括各種數(shù)據(jù)庫技術(shù)。許多的集合元數(shù)據(jù)被存儲在實現(xiàn)資源描述框架(RDF)的數(shù)據(jù)庫中。RDF是語義網(wǎng)(semantic web)用來提供公共框架的一種方式,該公共框架允許數(shù)據(jù)跨越應(yīng)用程序、公司和社團(tuán)邊界而被共享和被再次使用。另外, 許多以往和正在進(jìn)行的語義網(wǎng)工作涉及與使用RDF表示的數(shù)據(jù)相關(guān)的“推理”。對元數(shù)據(jù)進(jìn)行共享、再次使用以及推理對于該系統(tǒng)而言是重要的,因此開放式接口和圖像智能的使用也是重要的。RDF優(yōu)于傳統(tǒng)關(guān)系數(shù)據(jù)庫的另一優(yōu)點是其能夠容易地將新類型的信息添加到該設(shè)計中。然而,也存在著與RDF相關(guān)聯(lián)的成本,并且對于某些種類的數(shù)據(jù)(諸如Exif文件)而言,關(guān)系數(shù)據(jù)庫是更好的選擇。因此,本發(fā)明的一個實施例使用數(shù)據(jù)庫的組合。每種類型的元數(shù)據(jù)都與存儲器類型相關(guān)聯(lián)。當(dāng)元數(shù)據(jù)存儲器16需要訪問特定類型的元數(shù)據(jù)時, 它查看它的針對那種類型的元數(shù)據(jù)的存儲模式來確定要選擇哪個數(shù)據(jù)庫。節(jié)點上的節(jié)點控制器15控制對系統(tǒng)元數(shù)據(jù)和資產(chǎn)的訪問。它的操作由與該節(jié)點的存儲在節(jié)點數(shù)據(jù)存儲器17中的能力相關(guān)的信息來控制。節(jié)點控制器15使用工作流管理器來控制其大部分的處理。存在著許多的工作流,其可以在認(rèn)為消息處理完成之前,需要對來自其他系統(tǒng)部件的消息進(jìn)行一系列的收發(fā)操作。工作流管理器負(fù)責(zé)管理所有這些工作流。工作流管理器還負(fù)責(zé)通過將描述狀態(tài)的參數(shù)保存在節(jié)點數(shù)據(jù)存儲器17中來維護(hù)消息之間的工作流的狀態(tài)。工作流管理器是受策略驅(qū)動的。該部件具有與其操作于其上的節(jié)點類型相關(guān)的信息,并且在建立和執(zhí)行與節(jié)點的能力和需求一致的工作流中使用該信息。工作流管理器還使用一些元數(shù)據(jù)來發(fā)現(xiàn)沒有被本地存儲的資產(chǎn)和元數(shù)據(jù)。這些工作流自身由業(yè)務(wù)流程執(zhí)行語言(BPEL)中的語句來指定。節(jié)點控制器15在節(jié)點數(shù)據(jù)存儲器17中存儲BPEL工作流描述,并通過使用作為節(jié)點控制器15的一部分的執(zhí)行引擎來對它們進(jìn)行執(zhí)行。由于針對該節(jié)點的工作流存儲在該節(jié)點上,所以這些工作流從一個節(jié)點到另一節(jié)點是可以變化的,因此在具有不同能力級別的節(jié)點上是可以不同的。每個節(jié)點上的系統(tǒng)存儲器包括那個節(jié)點上的所有資產(chǎn)。資產(chǎn)存儲器由資產(chǎn)管理器來管理。這些資產(chǎn)管理器與該系統(tǒng)的其他部件進(jìn)行通信,并向分布式系統(tǒng)提供訪問和管理這些資產(chǎn)的方式。每個資產(chǎn)管理器都接受用于控制或者請求與其負(fù)責(zé)的數(shù)據(jù)相關(guān)的信息的消息。它們在該系統(tǒng)與該系統(tǒng)能夠支持的各種類型的資產(chǎn)存儲器之間提供標(biāo)準(zhǔn)接口。存在著三種與資產(chǎn)存儲器的類型相對應(yīng)的基本類型的資產(chǎn)管理器。1)用戶資產(chǎn)管理器(UAM)——UAM管理存儲在本地計算機(jī)上的、被定位和被組織 (但是用戶需要已經(jīng)選擇對它們進(jìn)行存儲和組織)的各種資產(chǎn)文件。已經(jīng)安裝系統(tǒng)軟件的用戶告訴UAM本地資產(chǎn)文件位于哪里,但是不需要將這些本地資產(chǎn)移動到任何特定的位置或者根據(jù)任何特定的分層來對它們進(jìn)行組織。用戶具有完全的自由來通過使用本地計算機(jī)文件系統(tǒng)工具來添加、刪除或者移動那些文件。由于這個原因,由UAM管理的存儲器稱為用戶控制的存儲器。2)縮略圖資產(chǎn)管理器(TAM)——TAM對縮略圖高速緩存器進(jìn)行管理,該縮略圖高速緩存器包括針對個人的虛擬集合中的所有資產(chǎn)的縮略圖文件。每個節(jié)點上的縮略圖高速緩存器完全由運行在那個節(jié)點上的系統(tǒng)服務(wù)來控制。3)高速緩存資產(chǎn)管理器(CAM)——CAM對重資產(chǎn)高速緩存器進(jìn)行管理,該重資產(chǎn)高速緩存器由節(jié)點上的系統(tǒng)控制器使用來存儲該控制器已經(jīng)從其他節(jié)點復(fù)制的資產(chǎn)的副本。CAM完全由運行在那個節(jié)點上的系統(tǒng)服務(wù)來控制。UAM還在虛擬集合與各種類型的實際資產(chǎn)存儲器之間提供一致性的接口。添加新類型的UAM使得該系統(tǒng)擴(kuò)展成未來類型的資產(chǎn)存儲介質(zhì)。特別地,用戶資產(chǎn)管理器負(fù)責(zé)向用戶的資產(chǎn)管理虛擬集合中提供資產(chǎn)數(shù)據(jù)。UAM典型地包括對它管理的目錄中的資產(chǎn)的添加、刪除和改變進(jìn)行檢測的文件嗅探器或者一些其
9他方式。當(dāng)UAM檢測到對資產(chǎn)的改變時,它向節(jié)點控制器發(fā)送消息。節(jié)點控制器通過啟動工作流來對該消息作出反應(yīng)。對于新發(fā)現(xiàn)的資產(chǎn),該工作流確定該資產(chǎn)是新的還是現(xiàn)有資產(chǎn)的副本。對于新的資產(chǎn),該工作流提取包括在資產(chǎn)文件中所有元數(shù)據(jù),創(chuàng)建資產(chǎn)縮略圖, 并將與該資產(chǎn)相關(guān)的所有元數(shù)據(jù)都存儲在元數(shù)據(jù)存儲器中。使得創(chuàng)建縮略圖的工作流還能夠使得以不同的分辨率來創(chuàng)建若干個縮略圖。該工作流是否對此進(jìn)行執(zhí)行依賴于在各個節(jié)點上實施的工作流策略??s略圖資產(chǎn)管理器對由節(jié)點存儲的縮略圖進(jìn)行管理。這些縮略圖中的一些縮略圖可能已經(jīng)在本地生成,并且已經(jīng)由對新資產(chǎn)的發(fā)現(xiàn)進(jìn)行掌控的工作流移動到縮略圖高速緩存器中;由控制與其他節(jié)點的元數(shù)據(jù)同步的工作流將其他縮略圖移動到縮略圖高速緩存器中。當(dāng)用戶移除資產(chǎn)時,控制資產(chǎn)移除的工作流移除該縮略圖。高速緩存資產(chǎn)管理器對節(jié)點上的臨時存儲器進(jìn)行控制。高速緩存資產(chǎn)管理器對本地重資產(chǎn)高速緩存器14中的資產(chǎn)進(jìn)行管理。該臨時存儲器包括已經(jīng)被復(fù)制到該節(jié)點并且正在被臨時存儲到該節(jié)點的來自其他節(jié)點的資產(chǎn)。高速緩存資產(chǎn)管理器跟蹤本地高速緩存器中的資產(chǎn)副本并將在需要時移除這些副本,以對該高速緩存器的盤空間配額進(jìn)行管理。 工作流策略控制來自該高速緩存器的資產(chǎn)的移除。例如,直到經(jīng)由同步或者經(jīng)由本地工作流將修改應(yīng)用到已經(jīng)被修改的資產(chǎn)的至少一個其他副本(如果本地副本存在的話)之后才移除該已經(jīng)被修改的資產(chǎn)。作為另一示例,“受歡迎的”資產(chǎn)(即與許多其他用戶共享的資產(chǎn))可以比不太受歡迎的資產(chǎn)更優(yōu)先地保留在該高速緩存器中。類似地,高度需要的資產(chǎn)(即用戶經(jīng)常訪問的資產(chǎn))可以被優(yōu)先保留。在另一示例中,被確定為丟失風(fēng)險更高的資產(chǎn)(即備份副本更少、被存儲在具有更低存儲可靠性的設(shè)備(類似于蜂窩電話)上的資產(chǎn))可以比被確定為丟失風(fēng)險更低的資產(chǎn)(即備份副本更多、被存儲在可靠的在線服務(wù)上的資產(chǎn))更優(yōu)先地被保留。用于從高速緩存器中移除資產(chǎn)的工作流在節(jié)點之間可以不同。如果CAM檢測到它的高速緩存器中的資產(chǎn)已經(jīng)被改變,則它會通知工作流管理器。工作流管理器之后發(fā)起適當(dāng)?shù)牟襟E來處理這種修改。重資產(chǎn)高速緩存器14初始是空的。當(dāng)工作流要求存儲在另一節(jié)點上的資產(chǎn)也被本地存儲時,重資產(chǎn)被添加到重資產(chǎn)高速緩存器。將資產(chǎn)的副本存儲在該高速緩存器中的理由有許多。一個原因是,一些節(jié)點上的應(yīng)用程序希望訪問其副本全都位于其他節(jié)點上的資產(chǎn)。在這種情況下,節(jié)點控制器15將該資產(chǎn)移動到本地高速緩存器中,并之后向該應(yīng)用程序提供訪問該新的本地副本的權(quán)限。使用重資產(chǎn)高速緩存器14的更感興趣的理由是考慮到便利性、性能、安全性或者可用性。對用戶而言,一些資產(chǎn)比其他資產(chǎn)更重要。個人或許會將該資產(chǎn)標(biāo)記為重要??商鎿Q地,可以從涉及該資產(chǎn)的用戶動作的記錄中來獲得資產(chǎn)的重要性,或者從對該資產(chǎn)內(nèi)容的分析中獲得該資產(chǎn)的重要性。在這兩種情況下,資產(chǎn)(例如,特定的圖片)的重要性成為那個圖片的元數(shù)據(jù)特性。如果用戶已經(jīng)指示應(yīng)當(dāng)避免意外刪除該資產(chǎn),則該分布式系統(tǒng)能夠確保在不止一個位置中存在該資產(chǎn)的副本。如果重要資產(chǎn)的唯一副本位于僅間歇性在線的機(jī)器上,則本文的分布式系統(tǒng)能夠?qū)⒃撝匾Y產(chǎn)移動到更可靠地在線的節(jié)點上,或者移動到總是在線的中央節(jié)點5上。在這些情況下,被選的圖片將被移動到其他節(jié)點上的重資產(chǎn)高速緩存器中。甚至有可能節(jié)點上的工作流策略將指示將該資產(chǎn)的副本移動到另一節(jié)點上的用戶控制的存儲器中。此外,工作流對這些資產(chǎn)的移動進(jìn)行控制。工作流可以由通過系統(tǒng)的API傳遞的用戶動作發(fā)起,并且還可以由同步命令發(fā)起,因為同步周期的完成表示用戶集合的狀態(tài)已經(jīng)改變。為了方便這些工作流,存在著與每個節(jié)點相關(guān)聯(lián)的節(jié)點可用性元數(shù)據(jù)。將該節(jié)點可用性元數(shù)據(jù)與對該節(jié)點進(jìn)行聯(lián)系的其他節(jié)點進(jìn)行共享。節(jié)點可用性元數(shù)據(jù)允許節(jié)點知道是否應(yīng)當(dāng)出于可用性原因而將資產(chǎn)推送給另一節(jié)點。該系統(tǒng)在系統(tǒng)節(jié)點上存儲系統(tǒng)成員數(shù)據(jù)的副本(復(fù)制品),這些系統(tǒng)節(jié)點在任何特定時刻可以是在線或者離線的。該系統(tǒng)向每個節(jié)點提供將其數(shù)據(jù)與其他節(jié)點上的數(shù)據(jù)相一致的方式,以便該分布式系統(tǒng)作為整體是處于自相一致的狀態(tài)。該系統(tǒng)使得成員能夠與其集合一起工作來確定它們當(dāng)前是否在線。這意味著當(dāng)不能更新其他節(jié)點時,數(shù)據(jù)有時也能夠在節(jié)點上改變。還有可能是同一數(shù)據(jù)的不同副本被施加了不同的改變。同步是該系統(tǒng)用來通過使同一數(shù)據(jù)的副本之間的差異性(其可以存在于不同的節(jié)點上)相一致來使所有系統(tǒng)節(jié)點之間的成員數(shù)據(jù)都處于一致狀態(tài)的過程。系統(tǒng)數(shù)據(jù)與許多常規(guī)的復(fù)制系統(tǒng)是不同的,因為不同的節(jié)點可以存儲與每個資產(chǎn)相關(guān)的或多或少的信息。(常規(guī)的同步機(jī)制是針對完全復(fù)制而設(shè)計的,其中,所有的數(shù)據(jù)都被復(fù)制到所有的節(jié)點上。)如這里所使用的,“更低能力的節(jié)點”指的是不存儲所有元數(shù)據(jù)的節(jié)點。雖然所有的節(jié)點都存儲至少一些元數(shù)據(jù),但是任意數(shù)量的重資產(chǎn)可以位于或者可以不位于任何節(jié)點上。在本發(fā)明中,系統(tǒng)同步的實現(xiàn)方式支持用單個機(jī)制的元數(shù)據(jù)和重資產(chǎn)同步。當(dāng)兩個節(jié)點具有同一數(shù)據(jù)的不同版本時,由于三個不同的原因,這或許是正確的。 第一節(jié)點或許具有最近版本的數(shù)據(jù);第二節(jié)點或許具有最近版本的數(shù)據(jù);或者由于上次節(jié)點被同步了,所以由于每個節(jié)點上的用戶對同一數(shù)據(jù)都作出了改變,使得這兩個節(jié)點都具有同等最近但是不同版本的數(shù)據(jù)。該系統(tǒng)上特別有可能存在最后一種可能性,因為該系統(tǒng)允許節(jié)點離線操作從而它們不能總是被同步。為了允許該系統(tǒng)有效地確定出現(xiàn)了哪種可能性,該系統(tǒng)使用版本矢量。版本矢量和改變列表是該系統(tǒng)用來跟蹤系統(tǒng)節(jié)點上的副本的版本以及系統(tǒng)數(shù)據(jù)的方式,并且是用于確定是否需要進(jìn)行同步的主要機(jī)制。系統(tǒng)改變是對向其分配順序版本號的單個節(jié)點上的系統(tǒng)數(shù)據(jù)作出的一個或多個改變的集合。系統(tǒng)改變的示例包括改變相片的標(biāo)題、將來自應(yīng)用程序的多個編輯進(jìn)行整合以及添加由系統(tǒng)用戶或者資產(chǎn)管理器發(fā)現(xiàn)的多個資產(chǎn)。在同步操作之間可以出現(xiàn)不止一個系統(tǒng)改變。將多個系統(tǒng)改變保存在系統(tǒng)改變列表中。除了在系統(tǒng)改變列表中存儲其自己的改變,每個節(jié)點還在同步期間對接收自其它節(jié)點的改變的副本進(jìn)行存儲。對于特定節(jié)點而言,來自所有系統(tǒng)改變的最高版本號被存儲在該節(jié)點的其各個版本矢量的元素中。系統(tǒng)版本矢量明確地跟蹤對元數(shù)據(jù)的改變以及隱含地跟蹤對重資產(chǎn)副本的改變。版本矢量30 (圖 3a中所示)是包括針對每個節(jié)點的元素31的陣列。在一個示例性實現(xiàn)方式中,存儲元數(shù)據(jù)或資產(chǎn)的每個系統(tǒng)節(jié)點都將僅具有一個針對在該節(jié)點上具有數(shù)據(jù)的每個系統(tǒng)成員的版本矢量。因此,版本矢量將包括針對系統(tǒng)成員在其上存儲數(shù)據(jù)的每個節(jié)點的一個元素。在示例性實施例中,版本矢量僅描述曾經(jīng)對它們的關(guān)聯(lián)元數(shù)據(jù)做出改變的節(jié)點。 該系統(tǒng)使用頂層的版本矢量以及系統(tǒng)改變列表來對所有系統(tǒng)成員節(jié)點之間的系統(tǒng)成員數(shù)據(jù)進(jìn)行跟蹤并同步。每個版本矢量元素31都包括與特定節(jié)點的用戶相對應(yīng)的同步ID 32 (例如,圖3a中的“A”)以及計數(shù)器33 (例如,圖3a中“9”)(即,“邏輯版本”),其中, 每次在針對那個用戶的節(jié)點處的數(shù)據(jù)改變時,軟件對該計數(shù)器進(jìn)行遞增。給定節(jié)點為用戶的系統(tǒng)數(shù)據(jù)保持相同的同步ID,除非它丟失了它的數(shù)據(jù)庫并且不得不被完全更新,或者除非它不能支持常規(guī)的同步,因為其他節(jié)點在它們的改變列表中不再具有它需要的改變的副本。用于特定成員/節(jié)點的版本矢量包括針對那個成員/節(jié)點的當(dāng)前的版本信息以及到出現(xiàn)上次同步為止針對那個成員使用的其他節(jié)點的版本信息。對于每個節(jié)點上的集合的每個被共享的部分而言,還存在著額外版本矢量。同步發(fā)生在至少一對節(jié)點之間。當(dāng)自上一個同步周期開始在某個節(jié)點上已經(jīng)出現(xiàn)了預(yù)定數(shù)量的改變時,或者當(dāng)自上一個同步周期開始預(yù)定數(shù)量的時間已經(jīng)逝去時,同步周期發(fā)生。當(dāng)在某個節(jié)點上發(fā)生同步周期時,該節(jié)點將它的針對用戶的版本矢量與其之前從該用戶的其他節(jié)點接收到的針對那個用戶的版本矢量的副本進(jìn)行比較;并且確定其他節(jié)點中的哪些節(jié)點比它處于更低的版本級別并因此需要用它的數(shù)據(jù)進(jìn)行更新。該節(jié)點向那些其他節(jié)點發(fā)送“需要同步周期”的消息。已經(jīng)接收到該消息的節(jié)點開始與發(fā)送“需要同步周期”的消息的節(jié)點進(jìn)行同步周期。該同步周期從一個節(jié)點(即“請求者”)向另一節(jié)點(即 “源”)發(fā)送其版本矢量開始。該源將請求者中其版本號與源的版本矢量進(jìn)行比較。該源的目的是向請求者發(fā)送自與請求者的上一次同步開始已經(jīng)出現(xiàn)在該源上的所有改變(該改變是基于它的能力級別請求者希望的改變)。如果對版本矢量的比較表明該源應(yīng)當(dāng)向目的地發(fā)送改變,則在給定版本矢量中的版本級別的值的情況下,該源查看它的改變列表以查看需要向請求者發(fā)送哪些改變。一旦完成了同步周期,則請求者更新它的版本矢量來反映它的新改變的級別,并然后對它已經(jīng)接收到的其他同步周期所需的消息進(jìn)行響應(yīng)。圖5、圖6、圖7和圖8示出了針對具有不同的節(jié)點能力組合的節(jié)點的同步周期中的步驟。這些步驟優(yōu)選由處理器、計算機(jī)或者專用集成電路(ASIC)來執(zhí)行。這些步驟可以包括可以存儲在計算機(jī)可讀存儲介質(zhì)中的計算機(jī)程序,計算機(jī)可讀存儲介質(zhì)可以包括例如磁存儲介質(zhì),諸如磁盤(諸如硬盤或者軟盤)或者磁帶;光存儲介質(zhì),諸如光盤、光帶或者機(jī)器可讀條形碼;固態(tài)電子存儲設(shè)備,諸如隨機(jī)存取存儲器(RAM)或者只讀存儲器(ROM);或者用于存儲計算機(jī)程序的任何其他物理設(shè)備或者介質(zhì)。在每種情況下,同步周期都從版本矢量的交換的開始。在圖5中,版本矢量是相同的,因此沒有出現(xiàn)進(jìn)一步的處理。具體地,在步驟501中,描述了節(jié)點2與節(jié)點3之間的交換,節(jié)點2向節(jié)點3發(fā)送具有它的Versi0nvect0r_N2(VV_N2)的開始同步消息。在步驟 502,節(jié)點3將VV_N2與它自己的版本矢量進(jìn)行比較。作為比較的結(jié)果,節(jié)點3檢測改變,并對它所具有的沒有位于節(jié)點2上的改變列表進(jìn)行編譯。在步驟503,節(jié)點3發(fā)送具有VV_N3 的開始同步響應(yīng)消息和改變列表。在步驟504,節(jié)點2將節(jié)點3與它自己的版本矢量進(jìn)行比較。作為比較的結(jié)果,節(jié)點2檢測改變,并查看由節(jié)點3發(fā)送的改變列表。隨后,節(jié)點2檢查在它的改變列表與節(jié)點 3的改變列表之間是否存在著沖突。在該示例中,沒有發(fā)現(xiàn)沖突。在步驟505中,節(jié)點2向節(jié)點3發(fā)送它的改變列表。在步驟506期間,節(jié)點2將節(jié)點3的改變保存到它的數(shù)據(jù)存儲器中,并更新它的改變列表來反映這些額外改變。另外,VV_N2得到了更新。類似地,在步驟507中,節(jié)點3將節(jié)點2的改變保存到它的數(shù)據(jù)存儲器中,并更新它的改變列表來反映這些額外改變;并且VV_N3也得到了更新。在該示例中,在最后的步驟508中,VV_N2和VV_N3 是相同的。在圖6中,一個節(jié)點(節(jié)點0)根據(jù)版本矢量檢測到兩個節(jié)點(節(jié)點0、節(jié)點2)需要被同步。這些節(jié)點交換改變列表,使用所述改變列表來確定哪些元數(shù)據(jù)需要更新,以及交換使兩個節(jié)點同步所需的任何元數(shù)據(jù)。顯而易見地,在步驟601中,節(jié)點2向節(jié)點0發(fā)送具有它的版本versionvector_N2 (VV_N2)的開始同步消息。在步驟602,節(jié)點0將VV_N2與它自己的版本矢量進(jìn)行比較。因此,節(jié)點0看到節(jié)點2具有節(jié)點0將需要的改變,但是節(jié)點 0不具有節(jié)點2需要的改變。在步驟603,節(jié)點0發(fā)送具有VV_N3的開始同步響應(yīng)消息。此后,在步驟604,節(jié)點2將節(jié)點0與它自己的版本矢量進(jìn)行比較。節(jié)點2看到或檢測到存在著將需要發(fā)送給節(jié)點0的改變。因此,在步驟605中,節(jié)點2向節(jié)點0發(fā)送它的改變列表。在步驟606期間,節(jié)點0檢查并評估來自節(jié)點2的每個改變,并確定其是否對由節(jié)點0存儲的任何內(nèi)容產(chǎn)生影響。如果存在著對所存儲資產(chǎn)的影響,則節(jié)點0更新它的存儲器和改變列表。如果不存在對所存儲資產(chǎn)的影響,則節(jié)點0丟棄這些改變并在改變列表中添加空值作為占位符。在最后的步驟即步驟607中,VV_N2和VV_N0是相同的,但是節(jié)點0 已經(jīng)用局部更新標(biāo)志對它的版本矢量進(jìn)行了標(biāo)記。在圖7和圖8中,一個節(jié)點比另一節(jié)點的能力低,即該節(jié)點不包括所有的元數(shù)據(jù)。 位于蜂窩電話上的節(jié)點比位于臺式PC上的節(jié)點的能力低,因為蜂窩電話不能如同臺式PC 那樣存儲針對每個資產(chǎn)的許多的元數(shù)據(jù)。針對蜂窩電話的能力數(shù)據(jù)包括該蜂窩電話節(jié)點不存儲哪些類型元數(shù)據(jù)的描述。這兩幅圖在是更大能力的節(jié)點發(fā)起了同步周期還是更低能力的節(jié)點發(fā)起了同步周期方面是不同的。該過程與針對同等能力的節(jié)點的過程不同,因為更低能力的節(jié)點不更新它的所有數(shù)據(jù)。該圖還示出了在出現(xiàn)同步周期之前和之后的版本矢量。這些版本矢量位于括號內(nèi)。該注釋表明考慮了該節(jié)點知道的所有其他節(jié)點、那些節(jié)點中的每個節(jié)點處于哪個版本級別以及那些節(jié)點中的任何節(jié)點是否已經(jīng)被局部更新。具體地,對于圖7所示的示例性實施例,在步驟701中,節(jié)點3向節(jié)點0發(fā)送具有它的VV_N3的開始同步消息。在步驟702,節(jié)點0將VV_N3與它自己的版本矢量進(jìn)行比較。 節(jié)點0檢測到它具有節(jié)點3需要的改變。節(jié)點3不具有它需要的改變。在步驟703,節(jié)點 0發(fā)送開始同步響應(yīng)消息,該開始同步響應(yīng)消息具有VV_N0以及針對節(jié)點0的版本矢量的 N2:5和N2:6位置處的改變列表。在步驟704,節(jié)點3將節(jié)點0與它自己的版本矢量進(jìn)行比較。節(jié)點3查看存在著它需要發(fā)送給節(jié)點0的改變。在步驟705,節(jié)點3對來自節(jié)點0的改變列表進(jìn)行審查。節(jié)點0查看位置N2:5具有表明節(jié)點0沒有存儲改變的空值。另外,節(jié)點3查看N2:6中的改變,因此用于節(jié)點3的數(shù)據(jù)庫得到更新。顯而易見地,節(jié)點0的版本矢量的N2為“p”,因此,節(jié)點3也為節(jié)點3設(shè)置“P”。在步驟706,VV_N3和VV_N0是相同的,并且都具有節(jié)點2版本矢量,即具有局部更新標(biāo)志的W。在圖8所示的示例性實施例中,在步驟801中,節(jié)點3向節(jié)點0發(fā)送具有它的VV_ N3的開始同步消息。在步驟802,節(jié)點0將VV_N3與它自己的版本矢量進(jìn)行比較,以檢測節(jié)點3需要的改變。在該示例中,節(jié)點3不具有它需要的任何改變。隨后,在步驟804,節(jié)點3 將節(jié)點0與它自己的版本矢量進(jìn)行比較,以檢測是否存在它需要發(fā)送給節(jié)點0的任何改變。 在步驟805,節(jié)點3對來自節(jié)點0的改變列表進(jìn)行審查。在N2:5處,存在著表明節(jié)點0沒有存儲改變的空值。在N2:6處查看改變,因此,相應(yīng)的數(shù)據(jù)庫得到更新。由于節(jié)點0的版本矢量的N2為“p”,因此,節(jié)點3也為節(jié)點3設(shè)置“P”。在最后的步驟806,版本矢量VV_N3 和VV_N0是相同的,并且都具有節(jié)點2版本矢量,即具有局部更新標(biāo)志的W。
以稍微不同的方式來實施用于共享數(shù)據(jù)的同步周期。如果第一用戶在其上具有賬號的節(jié)點包括已經(jīng)與另一用戶共享的數(shù)據(jù),則它將具有與該共享數(shù)據(jù)相對應(yīng)的版本矢量。 如果該共享數(shù)據(jù)在針對第一用戶的特定節(jié)點上改變了,則該節(jié)點將發(fā)起與具有第二用戶的賬號的另一節(jié)點的同步周期。在該第二用戶的節(jié)點被同步之后,它將通過使用常規(guī)的同步過程來將其自身與包括第二用戶的賬號的其他節(jié)點進(jìn)行同步。由于改變列表隨著時間而增加,所以有時需要對它們進(jìn)行精簡。如果所有的節(jié)點都總是在線,則精簡將是容易的——只要給定的改變被傳送給所有其他節(jié)點,則它的改變列表項就將不再需要并且可以被刪除。實際上,隨著一對對的節(jié)點變得同步,該系統(tǒng)作為整體確實基本上變得同步了,因為大部分的節(jié)點彼此同步了。例外情況是離線節(jié)點,離線節(jié)點在它們在線之前不能被同步。如果在預(yù)定長的時間內(nèi)某個節(jié)點是離線的,則其他節(jié)點將不等待該節(jié)點接收它們的改變,而是對傳遞到所有其他能夠找到的節(jié)點的改變刪除改變列表項。該刪除過程稱為精簡。一旦找不到的節(jié)點回到在線狀態(tài),它將再次參與與其他節(jié)點的同步周期。那些同步周期將不能常規(guī)地進(jìn)行,因為在該節(jié)點進(jìn)入離線狀態(tài)之后,由于已經(jīng)出現(xiàn)的精簡,使得其他節(jié)點將不再具有與出現(xiàn)在那些節(jié)點上的改變相對應(yīng)的改變列表項。因此,之前找不到的節(jié)點隨后參與修正的同步周期。首先,它將在其離線時作出的改變發(fā)送給第二節(jié)點。所有這些離線的改變都被假設(shè)是潛在地沖突的,并且要求用戶來確定這些改變是否應(yīng)當(dāng)被接受。然后,在這些沖突已經(jīng)被解決之后,之前離線的節(jié)點根據(jù)它向其發(fā)送它的改變的同一第二節(jié)點來對它的整個元數(shù)據(jù)存儲器以及改變列表進(jìn)行更新。一個簡單的示例是,當(dāng)新的節(jié)點變得在線并且所有其他節(jié)點都已經(jīng)對它們的改變列表進(jìn)行了精簡。該新的節(jié)點將根據(jù)另一節(jié)點來更新它的整個元數(shù)據(jù)存儲器。顯而易見地,在這種情況下,該新的節(jié)點將非常有可能不具有任何改變。數(shù)字資產(chǎn)管理中的共享意味著,其他用戶(有時稱為“共享接收方”)能夠訪問用戶的集合中的數(shù)字資產(chǎn)。其他用戶具有的訪問的數(shù)量受到擁有這些資產(chǎn)的用戶的控制。 僅部分可信的共享接收方或許被授予對該資產(chǎn)的一些元數(shù)據(jù)的讀取訪問的權(quán)限,而完全可信的共享接收方能夠被授予自己修改該資產(chǎn)的權(quán)限。由一個用戶發(fā)起或者提供共享,并將該共享指向另一用戶。通知第二用戶共享邀請,并且通過生成了返回的響應(yīng)消息允許該第二用戶接受或者拒絕該共享邀請。該消息傳遞使用與其他的節(jié)點間通信相同的對等網(wǎng)絡(luò)。 如果共享邀請被接受,則也發(fā)起了將與共享資產(chǎn)相關(guān)的信息添加到元數(shù)據(jù)中并通過向用戶進(jìn)行提供來跟蹤被共享的資產(chǎn)的工作流。此外,共享資產(chǎn)的擁有者控制對于該共享資產(chǎn)而言向共享接收方授予多少權(quán)限。在該系統(tǒng)的示例性實施例中,共享者向每個共享接收方分配角色。被分配的角色以及共享接收方的身份被存儲在用于該共享者的元數(shù)據(jù)存儲器16 中。節(jié)點控制器15使用該被分配的角色來確定是否允許共享接收方讀取或者改變該共享資產(chǎn)。為了與第二用戶共享資產(chǎn),提供用戶首先需要將該第二用戶放在它的聯(lián)系列表上。該系統(tǒng)網(wǎng)絡(luò)中的任何節(jié)點都能夠通過向中央節(jié)點5詢問來發(fā)現(xiàn)其他用戶是否可用,因為所有的用戶都與中央節(jié)點5進(jìn)行聯(lián)系。如果中央節(jié)點5不可用,則節(jié)點至少能夠向它正在聯(lián)系的節(jié)點詢問它們的用戶。一旦系統(tǒng)成員已經(jīng)獲得了潛在聯(lián)系的列表,則該成員就能夠選擇向其發(fā)送邀請與其進(jìn)行聯(lián)系的消息的用戶。該消息(類似于其他用戶消息)被發(fā)送給已知包括該消息的收件人的賬號的至少一個節(jié)點,并被經(jīng)由同步過程傳遞給包括那個用戶的其他節(jié)點。一旦第二用戶已經(jīng)做出了聯(lián)系,則提供用戶就能夠與其共享資產(chǎn)。提供用戶向潛在的共享接收方發(fā)送用戶消息,以邀請共享接收方來共享選定的資產(chǎn)。一旦共享接收方接受了共享邀請,則該共享接收方正工作于其上的節(jié)點就將向其中一個提供用戶的節(jié)點請求對資產(chǎn)進(jìn)行描述的元數(shù)據(jù),并將那個元數(shù)據(jù)添加到它的集合元數(shù)據(jù)中,該元數(shù)據(jù)具有表明其被共享的額外屬性。圖3在涉及“Bob”和“Ted”的說明性流程圖300中,示出了對共享資產(chǎn)進(jìn)行同步時涉及到的步驟。這些步驟優(yōu)選由處理器、計算機(jī)或者專用集成電路(ASIC)來執(zhí)行。這些步驟可以包括可以存儲在計算機(jī)可讀存儲介質(zhì)中的計算機(jī)程序,計算機(jī)可讀存儲介質(zhì)可以包括例如磁存儲介質(zhì),諸如磁盤(諸如硬盤或者軟盤)或者磁帶;光存儲介質(zhì),諸如光盤、光帶或者機(jī)器可讀條形碼;固態(tài)電子存儲設(shè)備,諸如隨機(jī)存取存儲器(RAM)或者只讀存儲器 (ROM);或者用于存儲計算機(jī)程序的任何其他物理設(shè)備或者介質(zhì)。在初始步驟310,Bob與Ted共享資產(chǎn)“A”。在步驟315,該系統(tǒng)將共享資產(chǎn)A的元數(shù)據(jù)復(fù)制到Ted的集合中,并將Bob識別為擁有者。在步驟320,Bob修改針對資產(chǎn)A和B 的元數(shù)據(jù)。在步驟325,該系統(tǒng)將資產(chǎn)A和B的改變同步到Bob的所有節(jié)點上。另外,該系統(tǒng)將資產(chǎn)A的改變同步到Ted的所有節(jié)點上。在步驟330,Ted修改資產(chǎn)A和C的元數(shù)據(jù)。在步驟335,系統(tǒng)將A和C的改變同步到Ted的所有節(jié)點上,同時還將涉及資產(chǎn)A 的改變同步到Bob的所有節(jié)點上。在步驟340,Ted將他的節(jié)點與分布式系統(tǒng)斷開(即,變?yōu)殡x線)。在步驟345,Ted修改資產(chǎn)A的元數(shù)據(jù),同時斷開與Bob的連接。隨后,在步驟350, Ted重新將他的節(jié)點連接到分布式系統(tǒng)。在步驟355,該系統(tǒng)將A的改變同步到Ted的所有節(jié)點以及Bob的所有節(jié)點上。在步驟360,Ted決定編輯資產(chǎn)A的圖像數(shù)據(jù)(Bob已經(jīng)授權(quán)Ted如此做)。在步驟 365,該系統(tǒng)使用Ted的虛擬集合中的資產(chǎn)A的元數(shù)據(jù)來找到副本,并復(fù)制該副本以在Ted 的系統(tǒng)高速緩存器中創(chuàng)建新的副本來供Ted編輯。該系統(tǒng)更新資產(chǎn)A的元數(shù)據(jù),以包括新創(chuàng)建的副本。在步驟370,該系統(tǒng)將A的元數(shù)據(jù)改變同步到Ted的所有節(jié)點以及Bob的所有節(jié)點上。在步驟375,Ted編輯資產(chǎn)A的圖像數(shù)據(jù)。在步驟380,該系統(tǒng)將圖像改變同步到資產(chǎn)A的所有副本。在步驟385,Ted再次斷開與分布式系統(tǒng)的連接。在最后的步驟即步驟 390, Ted在他自己的打印機(jī)上打印來自資產(chǎn)A的圖像數(shù)據(jù)(該系統(tǒng)使用資產(chǎn)文件的高速緩存的副本)。在本發(fā)明的進(jìn)一步特征中,當(dāng)節(jié)點上的UAM檢測到新的資產(chǎn),則該系統(tǒng)需要確定該資產(chǎn)是全新的資產(chǎn)還是該系統(tǒng)已知資產(chǎn)的副本。如果該資產(chǎn)是該系統(tǒng)已知資產(chǎn)的副本, 則該分布式系統(tǒng)能夠?qū)⒃撡Y產(chǎn)文件歸類為現(xiàn)有資產(chǎn)的副本,而不是新的資產(chǎn)。存在著用于確定在該節(jié)點已經(jīng)包括針對那個資產(chǎn)的元數(shù)據(jù)的情況下該資產(chǎn)是否是唯一的已知的方式。 然而,由于本文描述的分布式系統(tǒng)可以由離線節(jié)點使用,因此以下情況是可能的,即彼此不聯(lián)系的兩個節(jié)點能夠都添加同一資產(chǎn)以便直到在這兩個副本已經(jīng)被獨立地添加到集合數(shù)據(jù)庫中之后才能檢測到副本。當(dāng)這些節(jié)點開始聯(lián)系之后,需要有效的方法來在這些節(jié)點之間確定是否存在著需要被識別為副本的任何資產(chǎn)。本發(fā)明的分布式系統(tǒng)通過將由離線節(jié)點發(fā)現(xiàn)的新的資產(chǎn)記錄為“臨時新資產(chǎn)”而解決了對副本進(jìn)行識別的問題。該分布式系統(tǒng)通過將稱為“臨時新資產(chǎn)特性”的資產(chǎn)元數(shù)據(jù)類型分配給離線節(jié)點上的新發(fā)現(xiàn)的資產(chǎn)來實現(xiàn)這個目的。該臨時新資產(chǎn)特性提供了尚未結(jié)束針對資產(chǎn)的副本檢查并且仍然需要進(jìn)行檢查的明確的指示符。圖4以被標(biāo)記為“我的圖片”的文件為例,在示例性流程圖400中示出了分配并使用臨時新資產(chǎn)特性的說明性步驟。這些步驟優(yōu)選由處理器、計算機(jī)或者專用集成電路(ASIC)來執(zhí)行。這些步驟可以包括可以存儲在計算機(jī)可讀存儲介質(zhì)中的計算機(jī)程序,計算機(jī)可讀存儲介質(zhì)可以包括例如磁存儲介質(zhì),諸如磁盤(諸如硬盤或者軟盤)或者磁帶;光存儲介質(zhì),諸如光盤、光帶或者機(jī)器可讀條形碼;固態(tài)電子存儲設(shè)備,諸如隨機(jī)存取存儲器(RAM)或者只讀存儲器(ROM);或者用于存儲計算機(jī)程序的任何其他物理設(shè)備或者介質(zhì)。在步驟410,用戶將文件“我的圖片”添加到他們的系統(tǒng)虛擬集合中。在步驟420, 該系統(tǒng)創(chuàng)建資產(chǎn)(ID、類型、縮略圖等)和副本(ID、類型、縮略圖等)元數(shù)據(jù),并將其添加到該用戶的虛擬集合元數(shù)據(jù)中。在步驟430,該系統(tǒng)將“臨時新資產(chǎn),,特性添加到用戶的集合中的新添加資產(chǎn)的元數(shù)據(jù)中。在步驟440,該系統(tǒng)通過向當(dāng)前連接的所有用戶節(jié)點進(jìn)行詢問來應(yīng)用副本檢測方法。在步驟445中,執(zhí)行查詢來確定是否已經(jīng)發(fā)現(xiàn)了任何的副本。如果已經(jīng)發(fā)現(xiàn)了副本,則在步驟450中將“我的圖片”標(biāo)記為現(xiàn)有資產(chǎn)的副本。在步驟460,使得該系統(tǒng)將針對新添加資產(chǎn)的副本元數(shù)據(jù)移動到現(xiàn)有資產(chǎn)中。換言之,現(xiàn)有資產(chǎn)獲得了額外的副本。在步驟470,該系統(tǒng)在完成該工作流之前移除來自用戶的集合的針對新添加資產(chǎn)的剩余元數(shù)據(jù)。否則,如果沒有發(fā)現(xiàn)副本,則當(dāng)該節(jié)點重新連接時,在步驟475中,向所有用戶的節(jié)點進(jìn)行詢問來為副本進(jìn)行額外查詢。如果已經(jīng)詢問了所有用戶的節(jié)點,則在步驟480中, 該資產(chǎn)被認(rèn)為是新的,并且在完成該工作流之前移除臨時特性指定。當(dāng)沒有對所有的用戶節(jié)點都進(jìn)行詢問時,則在步驟485中,額外查詢確定特定節(jié)點是否在線并且繼續(xù)對在線狀態(tài)進(jìn)行輪詢。在步驟490,當(dāng)在重復(fù)周期期間向新連接的節(jié)點詢問副本時,使得該系統(tǒng)應(yīng)用副本檢測方法。當(dāng)曾經(jīng)離線的節(jié)點開始聯(lián)系時,用于檢測副本資產(chǎn)的可替換的方法如下所述。當(dāng)節(jié)點開始聯(lián)系時,他們將對他們的元數(shù)據(jù)進(jìn)行同步。該過程將使得添加在一個節(jié)點上的資產(chǎn)被添加到另一節(jié)點的元數(shù)據(jù)中。由于兩個節(jié)點的同步涉及那些節(jié)點之間的資產(chǎn)改變列表的交換,而且由于針對某個節(jié)點的改變列表能夠指示哪些資產(chǎn)是新的,所以能夠根據(jù)同步期間交換的資產(chǎn)改變列表來推斷是否需要針對特定節(jié)點執(zhí)行副本檢測。元件列表1 節(jié)點2對等鏈路3應(yīng)用程序5中央節(jié)點10進(jìn)行通信的部件IlAPI 部件12網(wǎng)絡(luò)接口13存儲器部件14資產(chǎn)高速緩沖器15節(jié)點控制器
16元數(shù)據(jù)存儲器
17節(jié)點數(shù)據(jù)庫
18 i宿略圖高速緩存器
30版本矢量
31版本矢量元素
32同步ID
33版本計數(shù)器
300流程圖
310初始步驟
315步驟
320步驟
325步驟
330步驟
335步驟
340步驟
345步驟
350步驟
355步驟
360步驟
365步驟
370步驟
375步驟
380步驟
385步驟
390步驟
501步驟
502步驟
503步驟
504步驟
505步驟
506步驟
507步驟
508步驟
601步驟
602步驟
603步驟
604步驟
605步驟
606步驟
607步驟
701步驟
702步驟
703步驟
704步驟
705步驟
706步驟
801步驟
802步驟
803步驟
804步驟
805步驟
806步驟
權(quán)利要求
1.一種用于對網(wǎng)絡(luò)中的分布式數(shù)字資產(chǎn)以及相關(guān)元數(shù)據(jù)進(jìn)行管理的系統(tǒng),包括多個互連的節(jié)點,每個所述互連的節(jié)點都經(jīng)由用戶控制的存儲器和高速緩存子系統(tǒng)來提供對分布式資產(chǎn)的可訪問性,從而對所述資產(chǎn)和相關(guān)元數(shù)據(jù)的管理是基于預(yù)定標(biāo)準(zhǔn)的; 其中,所述多個互連的節(jié)點中的每個節(jié)點都包括高速緩存子系統(tǒng)、元數(shù)據(jù)存儲器、控制器、 用戶控制的資產(chǎn)部件、用于在每個節(jié)點之間進(jìn)行通信的聯(lián)網(wǎng)子系統(tǒng),并且其中,所述多個互連的節(jié)點為客戶端應(yīng)用程序的平臺操作提供支持。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,用于所述分布式數(shù)字資產(chǎn)的管理的所述預(yù)定標(biāo)準(zhǔn)包括節(jié)點可用性、節(jié)點能力、資產(chǎn)受歡迎度以及需要、資產(chǎn)安全性需要、以及資產(chǎn)可用性優(yōu)先級需要。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述多個互連的節(jié)點中的每個節(jié)點被獨立地配置。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述控制器為所述客戶端應(yīng)用程序提供應(yīng)用程序接口(API)以訪問和管理所述分布式數(shù)字資產(chǎn)以及相關(guān)元數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,一個或多個互連的節(jié)點之間的同步因至少一個節(jié)點的改變而被發(fā)起。
6.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,對所述相關(guān)元數(shù)據(jù)的管理還包括對一個或多個節(jié)點進(jìn)行同步,以便根據(jù)獨立地掌控與每個互連的節(jié)點相關(guān)聯(lián)的行為的所述預(yù)定標(biāo)準(zhǔn)使所述相關(guān)元數(shù)據(jù)相一致。
7.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,對所述資產(chǎn)的管理還包括對一個或多個節(jié)點進(jìn)行同步,以便根據(jù)獨立地掌控與每個互連的節(jié)點相關(guān)聯(lián)的行為的所述預(yù)定標(biāo)準(zhǔn)使所述資產(chǎn)相一致。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其中,大量的節(jié)點對彼此同步。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,當(dāng)已經(jīng)離線了預(yù)定的時間量的節(jié)點回到在線狀態(tài)時,該節(jié)點用新的元數(shù)據(jù)對其自身進(jìn)行更新。
10.一種在多個用戶之間提供對數(shù)據(jù)資產(chǎn)的訪問的方法,該方法包括以下步驟 提供網(wǎng)絡(luò),用于在至少第一用戶與第二用戶之間共享所述數(shù)據(jù)資產(chǎn);啟用共享所述數(shù)據(jù)資產(chǎn)的邀請,所述邀請從所述第一用戶發(fā)送給所述第二用戶; 使得所述邀請被所述第二用戶接受; 使得產(chǎn)生對應(yīng)于共享數(shù)據(jù)資產(chǎn)的共享元數(shù)據(jù);發(fā)送所述共享元數(shù)據(jù)的副本以使得能夠在所述第一用戶與所述第二用戶之間共享所述數(shù)據(jù)資產(chǎn);以及在所述共享元數(shù)據(jù)已經(jīng)改變時同步所述共享元數(shù)據(jù),以便至少反映最近元數(shù)據(jù)的改變。
11.根據(jù)權(quán)利要求10所述的方法,還包括以下步驟 所述第二用戶請求數(shù)據(jù)資產(chǎn)的副本;確定是否至少一個具有所請求的數(shù)據(jù)資產(chǎn)的副本的節(jié)點是可用的; 向所述第二用戶傳遞數(shù)據(jù)資產(chǎn)的新副本;以及對位于特定節(jié)點處的額外數(shù)據(jù)資產(chǎn)的存在進(jìn)行記錄,以反映數(shù)據(jù)資產(chǎn)的所述新副本。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述的同步步驟包括定位所有的副本。
13.根據(jù)權(quán)利要求11所述的方法,其中,數(shù)據(jù)資產(chǎn)的所述新副本位于高速緩存器中。
14.一種用于確定重復(fù)數(shù)據(jù)資產(chǎn)的方法,包括以下步驟在監(jiān)控的斷開連接的節(jié)點處確定添加的資產(chǎn);評估所述添加的資產(chǎn)是否是現(xiàn)有資產(chǎn)的副本;將在所述監(jiān)控的斷開連接的節(jié)點處的任何發(fā)現(xiàn)的重復(fù)資產(chǎn)歸類為額外副本;在所述斷開連接的節(jié)點處沒有發(fā)現(xiàn)重復(fù)資產(chǎn)的情況下,則在所述斷開連接的節(jié)點重新連接時;聯(lián)系所有其他已知的用戶節(jié)點以確定在那些節(jié)點處是否存在所述重復(fù)資產(chǎn);將在其他已知的用戶節(jié)點處的任何發(fā)現(xiàn)的重復(fù)資產(chǎn)歸類為額外副本;以及在所述已知的用戶節(jié)點處不存在所述添加的資產(chǎn)的情況下,將所述添加的資產(chǎn)歸類為新資產(chǎn)。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述已知的用戶節(jié)點中的一些節(jié)點是離線的, 并且所述添加的資產(chǎn)被記錄為臨時的新資產(chǎn)。
16.根據(jù)權(quán)利要求15所述的方法,其中,當(dāng)每個已知的用戶節(jié)點都回到在線狀態(tài)時,還包括在返回在線狀態(tài)的已知用戶節(jié)點處確定所述重復(fù)資產(chǎn)的存在性的步驟。
17.根據(jù)權(quán)利要求16所述的方法,還包括將檢測到的重復(fù)資產(chǎn)歸類為副本的步驟。
18.一種用于在多個節(jié)點之間管理與共享的數(shù)字資產(chǎn)相關(guān)聯(lián)的元數(shù)據(jù)的系統(tǒng),包括a)節(jié)點控制器,用于控制對與共享的資產(chǎn)相關(guān)聯(lián)的元數(shù)據(jù)以及所述共享的數(shù)字資產(chǎn)的訪問;b)元數(shù)據(jù)存儲器,用于保存與本地節(jié)點相關(guān)并且對應(yīng)于用戶的集合中的資產(chǎn)的元數(shù)據(jù);以及c)工作流管理器,用于控制所述節(jié)點控制器的處理。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,與共享的資產(chǎn)相關(guān)聯(lián)的所述元數(shù)據(jù)包括與用戶的分布式數(shù)字集合中的資產(chǎn)相關(guān)的信息。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,通過節(jié)點同步處理將在任意一個節(jié)點上生成的元數(shù)據(jù)傳送到其他節(jié)點,并且其中,所述元數(shù)據(jù)包括作為縮略圖的圖像和音頻剪輯,以及口令。
全文摘要
一種用于管理網(wǎng)絡(luò)中的分布式數(shù)字資產(chǎn)和相關(guān)元數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括若干互連的節(jié)點,每個互連的節(jié)點都經(jīng)由用戶控制的存儲器和高速緩存子系統(tǒng)來提供對分布式數(shù)字資產(chǎn)的可訪問性,從而對資產(chǎn)和相關(guān)元數(shù)據(jù)的管理是基于預(yù)定標(biāo)準(zhǔn)的。每個節(jié)點都包括高速緩存子系統(tǒng)、元數(shù)據(jù)存儲器、控制器、用戶控制的資產(chǎn)部件以及用于在每個節(jié)點之間進(jìn)行通信的聯(lián)網(wǎng)子系統(tǒng)?;ミB的節(jié)點為客戶端應(yīng)用程序的平臺操作提供支持。
文檔編號G06F17/30GK102365634SQ201080005044
公開日2012年2月29日 申請日期2010年1月15日 優(yōu)先權(quán)日2009年1月30日
發(fā)明者A·C·魯爾克, C·E·帕里, J·O·施雷肯加斯特, L·C·布盧姆斯泰特, L·J·薩凱, M·S·施瓦茨, W·斯萬貝克 申請人:伊斯曼柯達(dá)公司