欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多客戶端搜索方法和系統(tǒng)的制作方法

文檔序號:6454311閱讀:141來源:國知局
專利名稱:多客戶端搜索方法和系統(tǒng)的制作方法
技術領域
本文檔涉及共享以及搜索方法和系統(tǒng)。
背景技術
隨著數(shù)字化存儲的信息量增加,用戶在想得到他們的數(shù)字信息時定位該數(shù)字信息 變得更加困難和復雜。此外,無論用戶是在其家用計算機上、在工作中使用膝上型電腦、還 是在路上用無線個人數(shù)字助理,用戶都希望能夠訪問其數(shù)字信息。一些當前的系統(tǒng)允許用戶將文件移到同步文件夾,其可以被用來在兩個或多個客 戶端之間傳送文件。然而,為了使該同步發(fā)生,這些系統(tǒng)可能需要明確的用戶動作。在這種 情況下,即使用戶最近已經(jīng)訪問了文件,也不會使該文件同步,除非用戶將該文件移到同步 文件夾。此外,當文件與外部客戶端同步時,可能難以在外部客戶端上定位該文件。在一些 情況中,該文件可能與多個其它文件一起位于外部客戶端上的同步文件夾中。即使用戶能 夠記住同步文件夾位于何處,在外部客戶端上導航到所傳送的文件對用戶來說也可能是困 難的。

發(fā)明內(nèi)容
本文檔公開了幫助計算裝置的用戶加入到在這些裝置上共享及尋找數(shù)據(jù)的方法 和系統(tǒng)。在一個方面中,描述了一種方法。該方法包括使用第一客戶端接收指示用戶已經(jīng) 執(zhí)行的與第一文件相關聯(lián)的動作的事件。該動作與將第一文件傳送到另一個客戶端不相 關。該方法還包括響應于所述事件使用第一客戶端從第一文件自動提取內(nèi)容并且生成與 所述內(nèi)容相關聯(lián)的元數(shù)據(jù),以及如果對等客戶端和第一客戶端當前正在運行并且在網(wǎng)絡上 相互可見,則使用第一客戶端將內(nèi)容和元數(shù)據(jù)傳送到對等客戶端。在接收事件后,自動確定 傳送的時間。在一個示例中,與傳送文件不相關的動作可以是文件訪問或文件保存,并且從第 一文件所提取的內(nèi)容可以是文件的副本或文件的內(nèi)容的副本。該方法也可以包括從服務 器接收服務器被配置為將內(nèi)容傳送到發(fā)出請求的客戶端的指示;以及已經(jīng)接收了指示并且 如果對等客戶端當前沒有與第一客戶端聯(lián)網(wǎng),則將內(nèi)容和元數(shù)據(jù)傳送到服務器。在一些實 現(xiàn)中,該方法進一步包括從服務器接收要求、定位滿足該要求的元數(shù)據(jù)、以及選擇與該元數(shù) 據(jù)相關聯(lián)的內(nèi)容用于傳送到對等客戶端。要求可以包括時間戳值或數(shù)據(jù)位值。此外,該方 法可以包括響應于在第一客戶端上發(fā)生的多個事件而使用第一客戶端從多個文件提取附 加的內(nèi)容,并且基于指定附加的內(nèi)容要被傳送的順序的一個或多個優(yōu)先級算法將附加的內(nèi) 容傳送到對等客戶端。在另一個示例中,將內(nèi)容和元數(shù)據(jù)傳送到對等客戶端可以包括將內(nèi)容和元數(shù)據(jù) 傳送到服務器;第一客戶端從服務器接收服務器被配置為將內(nèi)容和元數(shù)據(jù)傳送到對等客戶 端的指示。將內(nèi)容和元數(shù)據(jù)傳送到對等客戶端可以包括將內(nèi)容和元數(shù)據(jù)傳送到第二客戶端。第一客戶端從第二客戶端接收第二客戶端被配置為將內(nèi)容和元數(shù)據(jù)傳送到對等客戶端 的指示。該方法可以進一步包括在將內(nèi)容傳送到對等客戶端之前對其進行索引,以使得包 括在內(nèi)容中的一個或多個符號被格式化為可用于識別該內(nèi)容的鍵;以及獨立于事件的發(fā)生 從第二文件提取內(nèi)容;對來自第二文件的內(nèi)容進行索引;以及將所索引的內(nèi)容傳送到對等 客戶端。在又一個示例中,從第一文件提取內(nèi)容可以包括將第一文件的內(nèi)容轉(zhuǎn)換為超文本 標記語言(HTML)或文本。此外,提取第一文件的內(nèi)容可以包括生成保留第一文件的原始文 件格式的第一文件的副本。該方法還可以包括如果在第一客戶端接收到在第一客戶端和 對等客戶端之間的網(wǎng)絡連接具有超過預定帶寬值的帶寬的指示,則增加吞吐量閾值,該吞 吐量閾值用于限制在第一客戶端和對等客戶端之間傳遞的內(nèi)容量。在一些實現(xiàn)中,該方法 包括在將內(nèi)容傳送到對等客戶端之前將期滿日與該內(nèi)容相關聯(lián)。在其它的實現(xiàn)中,該方法 包括如果從第一客戶端刪除了內(nèi)容,則傳送用于從對等客戶端刪除該內(nèi)容的請求。在第二個方面中,描述了一種具有一個或多個服務器的計算機系統(tǒng)。該系統(tǒng)包括 表管理器模塊,用于從第一客戶端接收用戶已經(jīng)對文件執(zhí)行與該文件的傳送不相關的動作 的指示。該指示包括從該文件提取的內(nèi)容和分配給該內(nèi)容的元數(shù)據(jù)值。該系統(tǒng)還包括數(shù) 據(jù)表,用于存儲從在第一客戶端上的文件提取的內(nèi)容和元數(shù)據(jù)值;接口,用于從第二客戶端 接收對與在指定的元數(shù)據(jù)值范圍內(nèi)的一個或多個元數(shù)據(jù)值相關聯(lián)的內(nèi)容的請求;以及選擇 模塊,用于如果與內(nèi)容相關聯(lián)的元數(shù)據(jù)值在指定的元數(shù)據(jù)值范圍內(nèi)則發(fā)起內(nèi)容到第二客戶 端的傳送。在一個示例中,元數(shù)據(jù)值可以包括指示對文件執(zhí)行的動作何時發(fā)生的時間戳,并 且元數(shù)據(jù)值范圍包括指示一段時間的時間戳值的連續(xù)范圍。該系統(tǒng)也可以包括活動的客戶 端列表,其包括客戶端的標識符,其中接口已在預定的時間段內(nèi)從所述客戶端接收到對內(nèi) 容的請求。在表管理器模塊發(fā)出用于從數(shù)據(jù)表移除內(nèi)容的刪除命令之前,表管理器模塊使 用所述活動的客戶端列表來確定是否已將內(nèi)容傳送到所有列出的活動的客戶端。該系統(tǒng)可 以包括空間配額,該空間配額包括對用于所接收的內(nèi)容的存儲空間的量的限制,當超出配 額時,該空間配額被用于觸發(fā)從數(shù)據(jù)表刪除至少一部分所述內(nèi)容。在另一個示例中,該系統(tǒng)可以包括源標識符的列表,所述源標識符中的一個指定 從其接收了內(nèi)容的第一客戶端,如果在將內(nèi)容傳送到第二客戶端之前已將內(nèi)容從數(shù)據(jù)表刪 除,則使用該源標識符的列表來發(fā)起從第一客戶端請求內(nèi)容。該系統(tǒng)可以包括認證管理器, 用于將用于第一和第二客戶端的客戶端標識符以及與第一和第二客戶端相關聯(lián)的用戶標 識符傳送到外部服務器,用于如果存儲在數(shù)據(jù)表中的內(nèi)容變得不可訪問則在重構(gòu)內(nèi)容中使 用。在一些實現(xiàn)中,該系統(tǒng)可以包括吞吐量閾值,其包括對在預定的時間段內(nèi)由接口 接收的數(shù)據(jù)量的限制。如果所接收的數(shù)據(jù)量超過該閾值,則接口利用該吞吐量閾值拒絕接 收額外內(nèi)容。在另一個方面中,描述了一種用于在多個客戶端上共享數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括 在第一客戶端的事件監(jiān)聽器,用于接收用戶發(fā)起的與文件相關聯(lián)的動作。該動作與將文件 傳送到第二客戶端不相關。該系統(tǒng)還包括在第一客戶端的提取器,用于響應于所述事件從 所述文件提取內(nèi)容,并且生成與所述內(nèi)容相關聯(lián)的元數(shù)據(jù);以及用于將內(nèi)容和元數(shù)據(jù)從第一客戶端傳送到第二客戶端的裝置。在此描述的系統(tǒng)和技術可以提供以下優(yōu)點中的一個或多個。系統(tǒng)可以增加在多個 計算機之間交換已訪問的文件的便利。而且,系統(tǒng)可以增加用戶定位已交換的內(nèi)容的能力。 系統(tǒng)可以提供使得能夠優(yōu)化(optimistic)刪除客戶端傳送的數(shù)據(jù)的機制。這樣的系統(tǒng)可 以減少在服務器上存儲數(shù)據(jù)的備份副本的需要。系統(tǒng)通過對某些類型的數(shù)據(jù)的傳輸分配優(yōu) 先級可以增加在客戶端之間交換的數(shù)據(jù)的相關性。在下面的附圖和描述中闡明了一個或多個實施例的詳細內(nèi)容。所述實施例的其它 特征、方面和優(yōu)點從描述和圖中、以及從權(quán)利要求中將是顯而易見的。


圖1是示出了用于在多個客戶端裝置上共享和同步內(nèi)容的系統(tǒng)的示意圖。圖2是示出了根據(jù)在圖1中所示的實現(xiàn)的用于在多個客戶端裝置上共享和同步內(nèi) 容的說明性方法的序列圖。圖3是更詳細地示出了在圖1中的系統(tǒng)的框圖。圖4是示出了用于使用混合的對等網(wǎng)絡和客戶端/服務器體系結(jié)構(gòu)來共享和同步 內(nèi)容的系統(tǒng)的示意圖。圖5是示出了用于使用圖4的混合的對等網(wǎng)絡和服務器體系結(jié)構(gòu)來共享和同步內(nèi) 容的說明性方法的序列圖。圖6是示出了用于在離線(offline)的客戶端變?yōu)樵诰€(online)時使用圖4的 混合的對等網(wǎng)絡和服務器體系結(jié)構(gòu)來共享和同步內(nèi)容的說明性方法的另一個序列圖。圖7是更詳細地示出了在圖4中所示的系統(tǒng)的特定組件的框圖。圖8是示出了根據(jù)在圖4中所示的實線的用于在多個客戶端裝置上共享和同步內(nèi) 容的說明性方法的流程圖。圖9是示出了普通計算機系統(tǒng)的示意圖。在不同的圖中相同的參考符號指示相同的元素。
具體實施例方式圖1是示出了用于在多個客戶端裝置上共享和同步內(nèi)容的系統(tǒng)100的示意圖。系 統(tǒng)100可以允許用戶使用第二計算機裝置訪問駐存在第一計算機裝置上的文件的副本(或 文件的內(nèi)容的副本)。在計算機裝置之間的內(nèi)容的交換可以自動發(fā)生,而不用用戶指定應 將該內(nèi)容發(fā)送到另一個計算機裝置。例如,用戶可以在其家用計算機上編輯word文檔文 件。在用戶保存該文檔時,自動提取該文檔的內(nèi)容并且將其傳送到在工作中的用戶的計算 機。當用戶稍后在其工作計算機上搜索已修改的文檔時,向用戶展現(xiàn)該內(nèi)容,即使先前未將 該word文檔存儲在用戶的工作計算機上。這可以具有額外的優(yōu)勢只在用戶的各種計算機 之間傳送用戶最近訪問的文檔。系統(tǒng)100包括客戶端A102、客戶端B104以及服務器106??蛻舳薃102和客戶端 B104表示用戶可以用來管理數(shù)字信息的計算機,例如通過保存或打開文件、或訪問網(wǎng)頁。用 戶可以訪問包括例如在家里的計算機、在工作中的計算機以及諸如個人數(shù)字助理(PDA)和 蜂窩電話的移動計算機的許多計算機。服務器106可以為用戶的文件、文檔、網(wǎng)頁或這些文檔的內(nèi)容提供臨時儲存位置或“投件箱(drop box)”。如果目標計算機是離線的,則投件箱 可以通過存儲所共享的內(nèi)容來使在用戶的計算機之間共享該信息更容易。稍后,當目標計 算機變?yōu)樵诰€時,服務器106可以將該內(nèi)容傳送到目標計算機。在一種實現(xiàn)中,當在客戶端A102的用戶執(zhí)行了文件保存或打開操作時,從該文件 提取客戶端A內(nèi)容108并且將其發(fā)送到服務器106,如箭頭110所指示。例如,用戶可以在 其家用計算機上保存文本文件。將可以包括用戶的文件的副本的客戶端A內(nèi)容108自動地 發(fā)送到服務器106。類似地,當用戶使用客戶端B104來保存或打開存儲在客戶端B104上 的文件時,從存儲在客戶端B104上的文件提取客戶端B內(nèi)容112并且將其發(fā)送到服務器 106,如箭頭114所指示。例如,客戶端B104可以是用戶的工作計算機。因為已將來自客戶 端A102(例如用戶的家用計算機)的內(nèi)容傳送到用戶的工作計算機,所以用戶可以訪問先 前沒有駐存在其工作計算機上的文件。類似地,用戶的家用計算機現(xiàn)在具有先前只駐存在 用戶的工作計算機上的文件。在圖1中所示的實現(xiàn)中,服務器106起用于在用戶的工作計 算機和家用計算機上共享文件內(nèi)容的管道(conduit)的作用。在另一個示例中,客戶端A102和B104可以交換web查看歷史。用戶可以使用安 裝在客戶端B104(例如用戶的工作計算機)上的web瀏覽器來查看網(wǎng)站。當訪問網(wǎng)頁時, 該訪問可以觸發(fā)網(wǎng)頁的內(nèi)容(諸如HTML代碼的副本)的提取。然后可以將所提取的信息 從客戶端B104傳送到服務器106。客戶端B內(nèi)容112可以保留在服務器106,直到客戶端 A102聯(lián)系服務器106進行更新。在客戶端A102連接到服務器106后,服務器106可以將網(wǎng) 頁的內(nèi)容傳送到客戶端A102(例如用戶的家用計算機)。稍后,用戶可以使用諸如Google 桌面搜索應用的搜索應用來定位網(wǎng)頁的內(nèi)容。 例如,用戶可以輸入他所記住的來自他在工作中查看的網(wǎng)站中的文本(諸如“Google擴展 其桌面角色! (Google Expands ItsDesktop Role !) ”)。搜索工具可以使用該文本來定 位從用戶的工作機器傳送的網(wǎng)頁內(nèi)容。服務器106可以使在用戶的計算機之間的內(nèi)容同步更容易。當客戶端A102(例如 用戶的家用計算機)連接到服務器106時,源自客戶端B104的客戶端B內(nèi)容112被自動地 復制到客戶端A102,如箭頭116所指示。在一些實現(xiàn)中,對尚未被存儲在客戶端A102上的 客戶端B內(nèi)容112發(fā)生復制。類似地,無論何時客戶端B104(例如用戶的工作計算機)連 接到服務器106,任何遺漏的客戶端A內(nèi)容108被自動地復制到客戶端B104,如箭頭118所 指示。圖2是示出了根據(jù)在圖1中所示的實現(xiàn)的用于在多個客戶端裝置上共享和同步內(nèi) 容的說明性方法200的序列圖。當事件發(fā)生時,處理可以在步驟202中開始。事件可以發(fā) 出已發(fā)生動作的信號,諸如用戶保存文件或文檔、訪問網(wǎng)頁或打開文件。例如參考圖1,在客 戶端A102的用戶可以在其家用計算機上編輯并且保存其簡歷。該動作可以生成由事件監(jiān) 聽器檢測的事件。在步驟204中,利用內(nèi)容更新索引。例如,在檢測到由動作觸發(fā)的事件后,可以提 取來自與該動作相關聯(lián)的文件的內(nèi)容。所提取的內(nèi)容可以是包括在被保存、被訪問或被修 改的文件中的文本或圖像。在一些實現(xiàn)中,提取可以包括格式轉(zhuǎn)換。例如,提取器可以將 PDF格式的文件的文本轉(zhuǎn)換為純文本或HTML(超文本標記語言)格式的文本。然后可以使 用所提取的內(nèi)容來更新將該內(nèi)容與元數(shù)據(jù)或來自內(nèi)容的關鍵詞相鏈接或相關聯(lián)的索引。在一些實現(xiàn)中,元數(shù)據(jù)是指定何時檢測到動作的時間戳。例如,時間戳可以反映保存文件的時 間,并且在保存文件時提取器可以將該時間鏈接到被提取的內(nèi)容。在一些實現(xiàn)中,使用包括 在Google 桌面搜索應用中的索引器來生成索引。該搜索應用可以使用該索引來定位在用 戶的計算機上的內(nèi)容。在步驟206中,將通過客戶端提取的內(nèi)容投送(post)到服務器。內(nèi)容是待在用戶 的其它計算機上共享的信息。例如,所提取的內(nèi)容可以是客戶端A傳送到服務器106的客 戶端A內(nèi)容108??蛻舳薃內(nèi)容108可以是用戶在其家用計算機上保存的簡歷的文本版本。 將簡歷文本發(fā)送到服務器106。此外,也可以將描述內(nèi)容的元數(shù)據(jù)(諸如保存簡歷的時間) 傳送到服務器106。在步驟208中,將從發(fā)起客戶端接收的內(nèi)容存儲在服務器上。在步驟210中,將在服務器維護的表更新以指示內(nèi)容的接收。例如,在圖1中,服 務器106利用其從客戶端A102接收的客戶端A內(nèi)容108和描述內(nèi)容108的任何相應的元 數(shù)據(jù)來更新數(shù)據(jù)庫表。步驟210可以完成用于使待與其它客戶端共享的內(nèi)容的臨時存儲更 容易的處理。可以執(zhí)行步驟202到步驟210,以提供源自任何客戶端的內(nèi)容的臨時存儲。例如, 參考圖1,可以關于在客戶端B104上的客戶端B內(nèi)容112和該內(nèi)容到服務器106的傳輸來 執(zhí)行步驟202到步驟210。在步驟212中,第二客戶端輪詢表示在其它的客戶端生成的內(nèi)容的更新。例如,參 考圖1,客戶端B104可以向服務器106輪詢新的內(nèi)容。在此,新的內(nèi)容可以是存儲在服務器 106上但還未被客戶端B104接收的客戶端A內(nèi)容108 (例如簡歷文本)。在步驟214中,由服務器接收輪詢請求。例如,在圖1中,服務器106可以從客戶 端B104接收輪詢請求。在步驟216中,服務器向輪詢客戶端指示內(nèi)容更新是可獲得的。例如,在圖1中, 服務器106向客戶端B104通知客戶端B104尚未下載簡歷文本。服務器106將該認知 (knowledge)建立在存儲在表中的時間戳的基礎上。時間戳與服務器106早先從客戶端 A102接收的內(nèi)容(例如簡歷文本)相對應。服務器106將可以指定該內(nèi)容何時被傳送到服 務器106的時間戳與對應于客戶端B104尚未從服務器106接收新的內(nèi)容的時間段的時間 范圍相比較。換句話說,服務器可以確定自客戶端B最后檢查后另一個客戶端是否已生成 新的內(nèi)容。如果服務器106在其表中發(fā)現(xiàn)在指定的時間范圍內(nèi)的時間戳,則服務器B106可 以向客戶端B104通知其具有新的內(nèi)容。在步驟218中,客戶端請求其需要的已更新的內(nèi)容。例如,在圖1中,客戶端B104 為遺漏的客戶端A內(nèi)容108向服務器106發(fā)送請求。該請求可以是基于如上所討論的時間 范圍。在步驟220中,服務器發(fā)送與服務器所請求的時間范圍相對應的已更新的內(nèi)容。 例如,在圖1中,服務器206將客戶端A內(nèi)容108發(fā)送到客戶端B104,其中來自客戶端A的 內(nèi)容是在由客戶端B指定的時間范圍期間生成的。在步驟222中,客戶端本地地存儲內(nèi)容。例如,在圖1中,客戶端B104將客戶端A 內(nèi)容108存儲在諸如在個人計算機中的硬盤的本地存儲裝置上。在步驟224中,客戶端更新其索引,以反映其經(jīng)由服務器從另一個客戶端接收的 內(nèi)容。例如,在圖1中,客戶端B104更新索引(諸如由Google 桌面使用的索引),以反映其接收的客戶端A內(nèi)容108。步驟212到步驟224可以表示由任何的用戶的客戶端使用的同步步驟。例如,參 考圖1,步驟212到步驟224可以表示用來以客戶端B內(nèi)容112更新客戶端A102的同步步
馬聚ο圖3是更詳細地示出了在圖1中的系統(tǒng)100的框圖。系統(tǒng)100包括客戶端A102、 客戶端B104以及服務器106。客戶端A102和客戶端B104每一個表示用戶所使用的計算 機,包括例如在家里的個人計算機、在工作中的計算機以及諸如膝上型計算機、PDA和蜂窩 電話的便攜式計算機。服務器106可以起使在用戶的客戶端之間的同步更容易的臨時存儲 位置的作用。在內(nèi)容在客戶端A102上被改變后,客戶端A102將客戶端A內(nèi)容108投送到 服務器106。例如,當用戶保存文件或文檔時、或當其查看網(wǎng)頁時,發(fā)生客戶端A的內(nèi)容108 的投送。投送可以以所設置的時間間隔發(fā)生,例如每兩分鐘,并且投送率和策略可以是可配 置的。在一些實現(xiàn)中,投送在與由用戶的動作生成的事件相關的時間發(fā)生。例如,投送可以 在保存文檔之后的預定時間發(fā)生。由服務器106接收客戶端A內(nèi)容108并且將其存儲在服務器106中。為了保持其 在本地存儲的內(nèi)容與來自其它客戶端的內(nèi)容同步,客戶端B104周期性地向服務器106發(fā) 出對遺漏的內(nèi)容的請求310。請求310包括識別關于遺漏的內(nèi)容的時間戳的范圍的時間范 圍312參數(shù)。為了使客戶端B104獲得服務器106尚未發(fā)送到客戶端B104的客戶端A內(nèi)容 108,發(fā)出請求310。為了滿足該請求,服務器106使用所指定的時間范圍312定位遺漏的內(nèi) 容的副本(如果存在)。服務器106可以通過檢查存儲在表中的時間戳來定位內(nèi)容。該時 間戳與服務器106早先從客戶端A102接收的內(nèi)容相對應。例如,時間戳可以指示該內(nèi)容何 時被傳送到服務器106、或該內(nèi)容被客戶端何時生成。服務器106將該時間戳與對應于客 戶端B104尚未從服務器106接收新的內(nèi)容的時間段的時間范圍312相比較。如果服務器 106在其表中發(fā)現(xiàn)在指定的時間范圍312內(nèi)的時間戳,則服務器106將在指定的時間范圍 內(nèi)的遺漏的內(nèi)容314發(fā)送到客戶端B104。遺漏的內(nèi)容314包括時間戳落入在時間范圍312 內(nèi)的內(nèi)容。客戶端A102可以包括數(shù)據(jù)和應用兩者。數(shù)據(jù)包括文件316、超文本標記語言 (HTML)文件318以及索引320。應用包括事件監(jiān)聽器322、文件到文本/HTML轉(zhuǎn)換器324以 及安全超文本傳輸協(xié)議(HTTPS)客戶端/服務器326。文件316可以是例如文本文件、由應 用產(chǎn)生的電子表格或文檔。HTML文件318可以是用戶在用戶的各種計算機上查看的網(wǎng)頁, 從而提供web瀏覽歷史。索引320使用諸如Google 桌面的應用來搜索內(nèi)容中的關鍵詞來 使搜索內(nèi)容更容易。事件監(jiān)聽器322監(jiān)聽和檢測諸如保存文件、刪除文件或查看網(wǎng)頁的用 戶動作,其可以要求將關聯(lián)的內(nèi)容客戶端A內(nèi)容108投送到服務器106。文件到文本/HTML 轉(zhuǎn)換器324使將內(nèi)容轉(zhuǎn)換為可以通過客戶端利用簡單的文字處理應用或web瀏覽器查看的 格式(例如其不需要利用生成該內(nèi)容的應用來閱讀內(nèi)容)更容易。例如,可以使用文件到 文本/HTML轉(zhuǎn)換器324來將文件316轉(zhuǎn)換為HTML格式。HTTPS客戶端/服務器326可以被 用作為追蹤web訪問的客戶端,并且可以包含將所查看的網(wǎng)頁與其被用戶訪問的時間相關 聯(lián)的時間戳328。HTTPS客戶端/服務器也可以被用作為用于向?qū)Φ瓤蛻舳颂峁﹥?nèi)容的服 務器,其在下面被更詳細地描述。服務器106可以包含存儲器330、同步管理器332以及認證管理器334。存儲器330可以包含已從用戶的各種客戶端接收的內(nèi)容A、以及內(nèi)容B至內(nèi)容N336。內(nèi)容項的每 一個可以具有關聯(lián)的時間戳TS A、以及TS B至TS N338,其可以識別每一個項被創(chuàng)建的時 間。同步管理器332包含空間配額342和吞吐量閾值344。同步管理器332可以使用時間 戳338來同步存儲在客戶端A102和客戶端B104上并且在客戶端A102和客戶端B104之間 共享的內(nèi)容。它也可以使用時間戳338和空間配額342來清除帶有最舊的時間戳的內(nèi)容, 當達到該客戶端的存儲空間配額時使用例如先進先出(FIFO)方法。同步管理器332可以使用吞吐量閾值344來限制客戶端在指定的時間段內(nèi)接收或 傳送的字節(jié)的數(shù)量。例如,同步管理器332可以向超出指定的最大吞吐率(例如在8小時 內(nèi)2Mb)的接收或傳送內(nèi)容或?qū)?nèi)容的請求的客戶端傳送錯誤消息。最大吞吐率閾值可以 是可配置的。認證管理器334可以提供阻止未授權(quán)的客戶端使用服務器106來存儲和請求 內(nèi)容的安全特征。認證可以是基于例如用于驗證用戶ID和密碼的系統(tǒng)。認證管理器334 可以在客戶端連接到服務器106時檢查客戶端的證書。如果客戶端提供了無效的證書,則 認證管理器可以向客戶端傳送錯誤消息。客戶端A和B102、104兩者都可以包含類似的組件,并且可以以類似的方式接受 和傳送內(nèi)容。例如,兩個客戶端都可以包括文件346、HTML文件348、索引350、事件監(jiān)聽器 352、文件到文本/HTML轉(zhuǎn)換器354以及HTTPS客戶端/服務器356。HTTPS客戶端/服務 器356包含時間戳358,該時間戳可以用來將所查看的網(wǎng)頁內(nèi)容附上其被查看的時間的標 簽。此外,可以將時間戳358附到被傳送到服務器的已生成的內(nèi)容中的每一個,從而提供與 該內(nèi)容相關聯(lián)的傳輸時間。圖4是示出了用于使用混合的對等網(wǎng)絡和客戶端/服務器體系結(jié)構(gòu)來共享和同步 內(nèi)容的系統(tǒng)400的示意圖。在系統(tǒng)400中,仍然可以使用服務器106以類似于圖2的方法 200的方法在客戶端A102、客戶端B104和客戶端C406之間共享內(nèi)容。系統(tǒng)400的對等網(wǎng)絡 方面是在客戶端102、104和406之間直接共享內(nèi)容的附加物,從而繞過服務器106。在對等 客戶端之間的直接內(nèi)容共享可以利用在客戶端的可用資源能力,從而減少在服務器106的 帶寬流量。服務器106仍然可以起用于臨時地(或永久地)存儲源自任何客戶端102、104 或406的客戶端X內(nèi)容410的投件箱的作用。例如,如果在進行第一次嘗試來將新的內(nèi)容 遞送到特定的客戶端時該特定的客戶端是離線的,則可以使用服務器106的投件箱、或存 儲器、容量。雖然圖4在客戶端C406和服務器106之間沒有示出明確的箭頭,但是客戶端 C406可以以類似于客戶端A或B所使用的方法的方式與服務器106進行通信。圖5是示出了用于使用圖4的混合的對等網(wǎng)絡和服務器體系結(jié)構(gòu)來共享和同步內(nèi) 容的說明性方法的序列圖。當發(fā)生事件時處理可以在步驟502中開始。該步驟502可以與 圖2的步驟202類似,其中響應于用戶執(zhí)行的動作(諸如保存文件或文檔、訪問網(wǎng)頁或打開 文件或應用)而生成事件。例如,參考圖4,在客戶端A102的用戶可以在其工作計算機上編 輯并且保存文檔。在步驟504中,將索引更新,以反映在步驟502中發(fā)生的事件。例如,將索引更新, 以反映用戶的文檔的新近保存的版本。諸如Google 桌面的搜索應用可以使用索引來定位 在客戶端上的文件或文件的內(nèi)容的副本。在步驟506中,將在客戶端上發(fā)起的內(nèi)容投送到服務器。內(nèi)容可以包括用戶保存 的文檔(或文檔的內(nèi)容)的副本以及描述信息(諸如數(shù)據(jù)的類型、其源、其何時被保存以及其何時被投送到服務器)的元數(shù)據(jù)。例如,參考圖4,客戶端A102的HTTPS客戶端/服務器 326可以將包含客戶端X內(nèi)容410的HTTP投送命令傳送到服務器106。在步驟508中,服務器存儲從發(fā)起客戶端接收的內(nèi)容,并且將該內(nèi)容傳播到第二 客戶端。例如,在圖4中,服務器106將客戶端X內(nèi)容410存儲在存儲裝置上,然后將客戶 端X內(nèi)容410傳送到客戶端B104。在步驟510中,將從服務器接收的內(nèi)容存儲在第二客戶端的本地存儲裝置上。例 如,參考圖4,客戶端B104存儲其從服務器106接收的客戶端X內(nèi)容410。在可替選的實施例中,步驟506可以將內(nèi)容投送到對等客戶端而不是服務器,如 從步驟506指向步驟510的虛線箭頭所示。該實施例通過將內(nèi)容直接投送到對等客戶端而 可以支持系統(tǒng)400體系結(jié)構(gòu)的對等網(wǎng)絡方面。例如,參考圖4,可以將客戶端X內(nèi)容410從 客戶端A102直接發(fā)送到客戶端B104,從而繞過服務器106。在對等網(wǎng)絡客戶端的“雛菊鏈 (daisy chain) ”中,內(nèi)容可以在第一客戶端上發(fā)起并且被直接發(fā)送到第二客戶端,后者進 而將內(nèi)容傳播到第三客戶端等等。而且,在一些實現(xiàn)中,可以將內(nèi)容從第一客戶端傳送到第 二客戶端,并且然后傳送到可以將內(nèi)容分布到其它客戶端的服務器。使用該“雛菊鏈”技術 的一個可能的優(yōu)點是通過委托在多個客戶端或服務器之間上傳數(shù)據(jù),而不是要求單個客戶 端將內(nèi)容上傳到所有發(fā)出請求的客戶端或服務器,來節(jié)約用戶的上行帶寬。系統(tǒng)400可以使用多種算法或規(guī)則來優(yōu)化對于在各種對等客戶端之間同步內(nèi)容 所需要的資源的使用。因為可以限制在服務器106上以及在客戶端102和104上的帶寬,并 且用戶動作可能一次傳送或請求大量的數(shù)據(jù),所以內(nèi)容共享可能落后于要求。例如,用戶可 能將非常大的文檔(例如維護手冊)存儲在客戶端A102上,并且在短時間后,同一用戶在 客戶端B104上清空數(shù)碼相機。同一天,用戶可能去工作并且在客戶端C406上更新小的辦 公備忘錄。雖然服務器106可以按用戶訪問其的順序接收所有三個數(shù)據(jù)項的內(nèi)容,但是服 務器106也可以通過為其分配優(yōu)先級來處理數(shù)據(jù)項。服務器106可以首先處理較高優(yōu)先級 的數(shù)據(jù)項,并且稍后保存較低優(yōu)先級的數(shù)據(jù)項。在一種實現(xiàn)中,優(yōu)先級基于諸如其的大小、 類型或時齡(age)的屬性,其每一個都與分值相關聯(lián)??梢韵蜉^低的組合分值分配較高的 優(yōu)先級。例如,小的文檔(例如辦公備忘錄)將基于大小接收較低的分值,從而具有較高的 優(yōu)先級。類似地,大的文檔(例如維護手冊)和數(shù)碼照片將接收較高的分值(以及較低的 優(yōu)先級)。數(shù)據(jù)項的時齡也將影響其優(yōu)先級,將較高的優(yōu)先級分配給更新的數(shù)據(jù)項。數(shù)據(jù)項 的類型也可以被用來計算其優(yōu)先級,因為例如辦公環(huán)境可以將較高的優(yōu)先級置于工作相關 的數(shù)據(jù)項(諸如由Microsoft Word 生成的文檔)上。在一些實現(xiàn)中,客戶端中的每一個 都使用優(yōu)先級算法來確定何時將內(nèi)容從該客戶端傳輸?shù)椒掌骰蛄硪粋€客戶端。一種實現(xiàn)的優(yōu)先級公式可以被表述為1000*lo& (s) sqrt (t/K) /B_ {類型},其被解 釋如下將向數(shù)據(jù)項分配1000的基礎優(yōu)先級。該基礎優(yōu)先級乘以在其被生成時的測量時 間(scaled time)的平方根。這用于顯著地提高非常新的數(shù)據(jù)項的優(yōu)先級。該優(yōu)先級乘以 logN(s)(以N為底的S的對數(shù)),其中N是常數(shù)并且s是文件以千字節(jié)為單位的大小。以這 種方式,小的文件將獲得優(yōu)先于大的文件的優(yōu)先級,然而大的文件不會被推到位于優(yōu)先級 列表的過于靠后的后部,因為該因子不是線性的。最后,可以基于數(shù)據(jù)項的類型來應用常數(shù) “增量因子(b00Stfact0r)”B。增量因子默認為1,但是其對于不同類型的數(shù)據(jù)項可以是不 同的(例如 B_{ms-office} = 2),其中 ms-office 表示 MicrosoftOffice 文檔。
系統(tǒng)400可以使用該優(yōu)先級公式來確定在客戶端之間如何共享內(nèi)容。例如,基于 在客戶端102、104、406上以及在服務器106上的可用帶寬、以及與被共享的數(shù)據(jù)項相關聯(lián) 的優(yōu)先級,系統(tǒng)400可以在客戶端的組合上散布共享負載。例如,參考圖4,客戶端A102可 以將客戶端X內(nèi)容410直接發(fā)送到客戶端B104和客戶端C406??商孢x地,客戶端A102可 以將內(nèi)容僅發(fā)送到客戶端B104并且請求客戶端B104將其復制到客戶端C406。任一種方式 都可以在該對等網(wǎng)絡內(nèi)容共享過程中繞過服務器106,特別是如果其不具有可用的帶寬。圖6是示出了用于在離線的客戶端變?yōu)樵诰€時使用圖4的混合的對等網(wǎng)絡和服務 器體系結(jié)構(gòu)共享和同步內(nèi)容的說明性方法的另一個序列圖。在這種情況下,系統(tǒng)400自動 地檢測具體的客戶端是離線的。在一種實現(xiàn)中,可以通過由客戶端監(jiān)視輪詢來作出客戶端 是在線還是離線的確定。如果未從客戶端接收到請求,則假設客戶端是離線的。類似地,服 務器106可以維護客戶端ID以及每個客戶端是在線還是離線的表。當客戶端變?yōu)樵诰€時, 其可以向服務器106通知其是在線的,并且服務器106可以用在線狀態(tài)更新其客戶端的表。系統(tǒng)400可以使用對等網(wǎng)絡和“投件箱”技術的組合來使對等網(wǎng)絡內(nèi)容能夠共享 并且同步。對等網(wǎng)絡技術可以被當前是在線的客戶端使用,以在客戶端之間直接共享內(nèi)容。 然而,為了使系統(tǒng)400將內(nèi)容提供到離線客戶端,服務器可以被用作為用于內(nèi)容的投件箱, 直到離線的客戶端再次變?yōu)樵诰€。當發(fā)生事件時處理可以在步驟602中開始。該步驟602可以類似于圖2的步驟 202,其中響應于用戶執(zhí)行的動作(諸如保存文件或文檔、訪問網(wǎng)頁或打開文件或應用)而 生成事件。例如,參考圖4,在客戶端A102的用戶可以在其工作計算機上編輯并且保存文 檔。在步驟604中,更新索引,以反映在步驟602中發(fā)生的事件。例如,參考圖4,更新 索引,以反映用戶的文檔的新近保存的版本。索引使文件可被很容易地在客戶端上定位。在步驟606中,將在第一客戶端上發(fā)起的內(nèi)容投送到第二客戶端,從而發(fā)起對等 網(wǎng)絡內(nèi)容流。內(nèi)容可以包括用戶保存的文檔的副本以及描述數(shù)據(jù)的類型、生成數(shù)據(jù)的客戶 端以及數(shù)據(jù)最后被改變的時間的元數(shù)據(jù)。例如,參考圖4,客戶端A102將客戶端X內(nèi)容410 發(fā)送到客戶端B104,其中將內(nèi)容410與包括內(nèi)容的源(客戶端A102)以及其被生成的時間 的元數(shù)據(jù)一起傳送。在步驟608中,第二客戶端存儲從發(fā)起客戶端接收的內(nèi)容,使在第二客戶端的用 戶能夠查看在第一客戶端創(chuàng)建的文檔。在該步驟中,第二客戶端也將內(nèi)容傳播到服務器。在 一些實現(xiàn)中,如果第三客戶端(例如客戶端C)是在線的,則第二客戶端將數(shù)據(jù)直接傳播到 第三客戶端,但是在本情況下,第三客戶端是離線的,因此將內(nèi)容傳送到服務器用于臨時存 儲。例如,在圖4中,客戶端B104將客戶端X內(nèi)容410存儲在其本地存儲裝置上,然后將客 戶端X內(nèi)容410傳送到服務器106。如果客戶端C是在線的,則客戶端B104可以將內(nèi)容直 接傳播到客戶端C406 ;然而,客戶端C406是離線的,因此替代地客戶端B104將數(shù)據(jù)傳播到 服務器106。在步驟610中,將從第二客戶端接收的內(nèi)容存儲在服務器的存儲裝置上。例如,參 考圖4,服務器106將其從客戶端B104接收的客戶端X內(nèi)容410存儲在存儲裝置330中。步驟606的可替選的實施例繞過第二客戶端并且將數(shù)據(jù)直接發(fā)送到服務器,如從 步驟606指向步驟610的虛線所示。例如,參考圖4,可以將客戶端X內(nèi)容410直接發(fā)送到服務器106,從而繞過客戶端B104。服務器106然后可以將內(nèi)容傳送到諸如客戶端B和C 的余下的對等客戶端。步驟612可以在第三客戶端變?yōu)樵诰€之后發(fā)生,第三客戶端在內(nèi)容在第一客戶端 上發(fā)起并且被傳播到第二客戶端以及服務器的時間期間是離線的。在步驟612中,第三客 戶端向服務器請求遺漏的內(nèi)容的列表。例如,當客戶端C406連接到諸如因特網(wǎng)的鏈接服務 器和其它的客戶端的網(wǎng)絡時,客戶端C406向服務器106請求遺漏的內(nèi)容的列表。在步驟614中,服務器確定在第三客戶端中遺漏的內(nèi)容??梢曰诖鎯υ诜掌?的帶有時間戳的內(nèi)容和表示第三客戶端是離線的并且未接收內(nèi)容的時間段的時間范圍作 出該確定。例如,參考圖4,服務器106通過確定自從客戶端406最后聯(lián)系服務器后哪些內(nèi) 容被上傳到服務器來確定在客戶端406中遺漏的內(nèi)容。服務器可以通過將TS338與客戶端 C當前請求遺漏的內(nèi)容的列表的時間相比較作出該確定。將TS在客戶端C最后登錄的時間 和其當前登錄的時間之間的任何內(nèi)容假設為在客戶端C中遺漏的??商孢x地,由客戶端指定的時間范圍可以是任意的。例如,客戶端C可以指定時間 范圍的開始和結(jié)束點,所述時間范圍基于尚未被存儲的內(nèi)容,而不考慮客戶端C最后登錄 的時間。這可以與上述所討論的優(yōu)先級公式組合使用。例如,客戶端可以登錄到服務器,但 是由于其被給定較低的優(yōu)先級而沒有下載某一時間段的內(nèi)容。稍后,客戶端可以指定用于 下載內(nèi)容的該時間范圍,即使客戶端已下載了與在較低的優(yōu)先級內(nèi)容的時間范圍后發(fā)生的 時間范圍相關聯(lián)的內(nèi)容。在一些實現(xiàn)中,服務器106可以不包含實際的內(nèi)容,而是可以包含在客戶端C是離 線的時間期間生成的內(nèi)容的列表。例如,客戶端A可能在客戶端C是離線的時間期間訪問 非常大的文件。由于優(yōu)先級算法(如早先所討論)的執(zhí)行,可以不將該文件的內(nèi)容傳送到 服務器106。替代地,可以將描述文件和其被訪問的時間的元數(shù)據(jù)傳送到服務器。該元數(shù)據(jù) 可以被包括于追蹤在客戶端C是離線的時間期間生成的內(nèi)容的列表中,即使內(nèi)容當前未被 存儲在服務器106上。在步驟616中,服務器將遺漏的內(nèi)容的列表傳遞到以前是離線的第三客戶端(例 如客戶端C)。識別遺漏的內(nèi)容的列表包括描述遺漏的數(shù)據(jù)的類型、與數(shù)據(jù)的訪問或傳輸相 關聯(lián)的時間范圍以及遺漏的內(nèi)容的客戶端源的元數(shù)據(jù)。例如,參考圖4,服務器106向客戶 端C406發(fā)送其可以從服務器或直接從源客戶端獲得的遺漏的內(nèi)容的列表。在步驟618中,第三客戶端使用其從服務器接收的列表來確定其可以從何處獲得 遺漏的內(nèi)容。遺漏的內(nèi)容可以存在于其它的對等客戶端上,該內(nèi)容可以被存儲在服務器或 該內(nèi)容可以被存儲在客戶端和服務器兩者。例如,參考圖4,客戶端C406可以確定其可以通 過從客戶端A102請求客戶端X內(nèi)容410 (在這種情況下其是客戶端A的內(nèi)容)來使其內(nèi)容 同步。在用于圖6的當前示例中,內(nèi)容碰巧是客戶端A102上發(fā)起的,但是客戶端可以從具 有遺漏的內(nèi)容的副本的任何客戶端請求內(nèi)容,而不考慮內(nèi)容從何處發(fā)起。在步驟620中,第三客戶端從第一客戶端請求遺漏的內(nèi)容,假設此時第一客戶端 是在線的。例如,參考圖4,如果客戶端A當前被聯(lián)網(wǎng)到客戶端C,則客戶端C406從客戶端 A102請求客戶端X內(nèi)容410。所請求的內(nèi)容是基于與駐存在客戶端A102上而不是駐存在 客戶端C406上的內(nèi)容的時間戳相對應的時間范圍。在步驟622中,第一客戶端將遺漏的內(nèi)容提供給第三客戶端。例如,參考圖4,客戶端A102將客戶端X內(nèi)容410發(fā)送到客戶端C406。在步驟620的可替選的實施例中,第一客戶端在第三客戶端請求遺漏的內(nèi)容時可 以是離線的。在該實現(xiàn)中,第三客戶端可以從在線的另一個客戶端獲得遺漏的內(nèi)容。例如, 客戶端C406向客戶端B102請求客戶端A的內(nèi)容410。當然,客戶端A必須先前在客戶端A 和客戶端B都在線時將所請求的內(nèi)容傳送到客戶端B,如在步驟608中所指示。在步驟624中,第二客戶端將遺漏的內(nèi)容發(fā)送到第三客戶端。例如,參考圖4,客戶 端B104將客戶端A內(nèi)容410發(fā)送到客戶端C406。在步驟620的另一個可替選的實施例中,第一和第二客戶端兩者在第三客戶端請 求遺漏的內(nèi)容時都可以是離線的。在這種情況下,第三客戶端可以從服務器獲得遺漏的內(nèi) 容。例如,客戶端C406向服務器106請求客戶端X內(nèi)容410。此外,客戶端C406可以向服 務器請求內(nèi)容,即使一個或多個其它的客戶端是在線的。例如,如果其它的客戶端相對于服 務器具有較少的可用帶寬,則客戶端C可以向服務器請求內(nèi)容。在步驟626中,服務器將遺漏的內(nèi)容發(fā)送到第三客戶端。例如,參考圖4,服務器 106將客戶端X內(nèi)容410發(fā)送到客戶端C406。在步驟628中,將第三客戶端接收的內(nèi)容存儲在客戶端的本地存儲裝置上。例如, 參考圖4,將客戶端C406接收的客戶端X內(nèi)容410存儲在客戶端的本地存儲裝置上。在步驟630中,將客戶端的索引更新,以并入與由第三客戶端所接收的內(nèi)容相對 應的可搜索的信息。例如,參考圖4,利用與由第三客戶端C406接收的客戶端X內(nèi)容410相 對應的可搜索的信息更新存儲在客戶端C406的索引。在將內(nèi)容與索引相關聯(lián)后,當用戶將 存在于內(nèi)容中的關鍵詞輸入到用于搜索應用的用戶界面中時,諸如Google 桌面的搜索應 用可以定位內(nèi)容。圖7是更詳細地示出了在圖4中所示的系統(tǒng)的特定組件的框圖。如上所討論的, 系統(tǒng)400包括客戶端A102、客戶端B104以及服務器106,其中客戶端A102和客戶端B104 表示用戶的各種計算機。服務器106起可以幫助在用戶的客戶端之間的同步的臨時存儲位 置的作用。當內(nèi)容在客戶端A102上被改變時,客戶端A102將客戶端A內(nèi)容108投送到服務器 106。例如,當用戶保存文件或文檔時、或當其查看網(wǎng)頁時,發(fā)生客戶端A內(nèi)容108的投送。 投送可以以所設置的時間間隔發(fā)生,例如每兩分鐘,并且投送率和策略可以是可配置的。可 替選地,只要諸如保存文件的動作生成事件則可以發(fā)生投送。例如,客戶端可以維持與服務 器的接通連接并且一生成事件就投送。在該面向連接的體系結(jié)構(gòu)(無論連接是對等網(wǎng)絡還 是客戶端到服務器)中,每一個客戶端可以將新數(shù)據(jù)推送到其它的客戶端而不是等待到其 它的客戶端發(fā)送對遺漏的信息的請求。由服務器106接收客戶端A內(nèi)容108并且將其存儲在服務器106中。為了保持其 在本地存儲的內(nèi)容與來自其它客戶端的內(nèi)容同步,客戶端B104周期性地向服務器106發(fā) 出對遺漏的內(nèi)容的請求710。請求710包括識別用于遺漏的內(nèi)容的時間戳的范圍的時間范 圍712參數(shù)。為了使客戶端B104獲得服務器106尚未發(fā)送到客戶端B104的客戶端A內(nèi)容 108,發(fā)出請求710。為了滿足該請求,服務器106使用所指定的時間范圍712來定位其遺漏 的內(nèi)容的副本,并且其將在指定的時間范圍內(nèi)的遺漏的內(nèi)容714發(fā)送到客戶端B104。類似地,使用對等網(wǎng)絡體系結(jié)構(gòu),客戶端B104可以向另一個客戶端請求遺漏的內(nèi)容。例如,客戶端B104可以向客戶端A102發(fā)出對遺漏的內(nèi)容的請求710??蛻舳薃102可 以定位在其存儲裝置上的數(shù)據(jù)并且以在指定時間范圍內(nèi)的遺漏的內(nèi)容714將其發(fā)送到客 戶端B104。客戶端A102包括與在本地存儲的內(nèi)容相關聯(lián)的時間范圍的列表716、與需要的內(nèi) 容相關聯(lián)的時間范圍的列表718以及更新計時器720。時間范圍列表716和718有助于在 客戶端A102上的內(nèi)容與存儲在其它的客戶端以及服務器上的內(nèi)容的同步。例如,與在本地 存儲的內(nèi)容相關聯(lián)的時間范圍的列表716對應于在客戶端A102本地創(chuàng)建的內(nèi)容加上在諸 如客戶端B106的其它客戶端上創(chuàng)建、但是存儲在客戶端A上的內(nèi)容。類似地,與需要的內(nèi) 容相關聯(lián)的時間范圍的列表718與客戶端A102需要獲得的內(nèi)容相對應。在對等網(wǎng)絡和客 戶端/服務器混合的體系結(jié)構(gòu)中,可以從服務器106或從諸如客戶端B104的另一個對等客 戶端獲得遺漏的內(nèi)容。當在客戶端A102接收該內(nèi)容時,將相應的時間范圍從需要列表718 移到在本地存儲的列表716。更新計時器720用于追蹤客戶端何時需要連接到服務器或其 它客戶端以獲得遺漏的信息的新列表、提供新近創(chuàng)建的內(nèi)容的列表(或內(nèi)容自身)、以及連 接以下載其尚未接收的內(nèi)容。服務器106包含存儲器722和認證管理器724。存儲器722包含已從對等網(wǎng)絡體 系結(jié)構(gòu)中的各種客戶端接收的內(nèi)容A、內(nèi)容B等等至內(nèi)容N726。內(nèi)容項的每一個具有相關 聯(lián)的時間戳TS A、TS B等等至TSN728,其識別內(nèi)容726中的每一個被最后更新的時間。此 外,內(nèi)容726中的每一個具有相關聯(lián)的源A、源B等等至源730,其識別內(nèi)容的源或客戶端 ID。認證管理器724認證試圖訪問服務器以存儲或請求內(nèi)容的用戶和客戶端。認證管理器 724可以包括與允許訪問服務器106的客戶端相關聯(lián)的用戶ID732的列表、識別與用戶相關 聯(lián)的客戶端的用戶客戶端ID734的列表、以及使用用戶ID732和用戶客戶端ID734來阻止 服務器106和其在存儲器722中的內(nèi)容的未授權(quán)使用的認證器736。在一些實現(xiàn)中,認證管理器724不包括在圖7中示出的所有元素。例如,管理器724 可以不包括用戶客戶端ID734的列表,因為在這些實現(xiàn)中的認證中沒有使用這些ID。替代 地,用戶客戶端ID734可以被主要用于指示哪一個用戶機器傳送了所接收的內(nèi)容??蛻舳薆104可以執(zhí)行與客戶端A102類似的功能并且可以包含類似的組件,包括 與在本地存儲的內(nèi)容相關聯(lián)的時間范圍的列表738、與需要的內(nèi)容相關聯(lián)的時間范圍的列 表740以及更新計時器742。圖8是示出了根據(jù)在圖4中所示的實現(xiàn)的用于在多個客戶端裝置上共享和同步內(nèi) 容的說明性方法800的流程圖。例如,可以由系統(tǒng)400執(zhí)行該方法。當一個客戶端向第二 客戶端查詢在指定的時間范圍內(nèi)的內(nèi)容時,方法800可以在步驟802中開始。例如,參考圖 7,客戶端A102可以向客戶端B104查詢在表示自從最后同步的時間的時間范圍內(nèi)的內(nèi)容。 該時間范圍信息可以是在客戶端A102中的與需要的內(nèi)容相關聯(lián)的時間范圍的列表718的 子集。在步驟804中,確定第二客戶端是否是在線的。例如,參考圖7,系統(tǒng)確定客戶端 B104是否是在線的。如果是,則可以能夠直接從客戶端B104獲得需要的內(nèi)容。如果在步驟804中的回答為是,則在步驟806中第二客戶端提供所請求的內(nèi)容。所 提供的內(nèi)容與在步驟802中指定的時間范圍相對應。例如,參考圖7,客戶端B104將所請求 的內(nèi)容發(fā)送到客戶端A102,其中客戶端A102在本地存儲內(nèi)容。
在步驟808中,接收內(nèi)容的客戶端更新其與其已經(jīng)具有的內(nèi)容相對應的時間范圍 列表并且還更新識別客戶端仍然需要的內(nèi)容的列表。時間范圍列表對于起內(nèi)容的源的作用 的每個客戶端來說是特定的。當從客戶端接收內(nèi)容時,將該時間范圍從需要來自該源的內(nèi) 容的列表移除,并且將該時間范圍添加到來自該源的在本地存儲的內(nèi)容的列表。例如,參考 圖7,與需要的內(nèi)容相關聯(lián)的時間范圍的列表718被減少了該時間范圍,并且與在本地存儲 的內(nèi)容相關聯(lián)的時間范圍的列表716被增加了該時間范圍。在步驟808完成后,完成對內(nèi) 容的請求和內(nèi)容的遞送。如果步驟804的確定是客戶端B不是在線的或不能提供由第一客戶端的查詢所請 求的內(nèi)容,則執(zhí)行步驟810。在這種情況下,第一客戶端查詢服務器以獲得需要的內(nèi)容。例 如,參考圖7,客戶端B104向服務器106查詢需要的內(nèi)容。在步驟812中,確定服務器是否具有指定的內(nèi)容。如果內(nèi)容被刪除(例如,由于數(shù) 據(jù)的保留規(guī)則、存儲配額或無法預料的損失),則其可以不再存在于服務器上。例如,參考圖 7,服務器106試圖在存儲器722中定位需要的內(nèi)容。使用對應于所需要的內(nèi)容的時間范圍 發(fā)生搜索。例如,服務器106將請求的時間范圍與在存儲器722中的內(nèi)容的時間戳TS728 相比較。如果時間戳在指定的時間范圍內(nèi),則服務器106可以滿足客戶端A102的請求。如 果內(nèi)容不在存儲器722內(nèi),則服務器106可以從發(fā)起該內(nèi)容的客戶端請求該內(nèi)容。在服務 器接收所請求的內(nèi)容后,服務器可以將該內(nèi)容傳送到客戶端A102。組織內(nèi)的保留規(guī)則可以聲明可以在文檔必須被破壞之前將文檔保留有限的時間 (例如兩年)。在所指定的保留期間的最后時刻,可以在客戶端上(可能是自動地)刪除該 文檔。系統(tǒng)800的每一個客戶端或服務器可以向其它客戶端或服務器發(fā)送命令以刪除相應 的內(nèi)容。此外,與該內(nèi)容相關聯(lián)的元數(shù)據(jù)可以包括期滿日或其它保留規(guī)則。該元數(shù)據(jù)可以 與內(nèi)容一起被傳送到所有發(fā)出請求的客戶端。以這種方式,接收內(nèi)容和元數(shù)據(jù)的客戶端可 以刪除與規(guī)則或期滿日相關聯(lián)的內(nèi)容,即使接收客戶端在接收內(nèi)容后沒有連接到網(wǎng)絡(并 且因此從未接收到刪除該內(nèi)容的命令)。服務器上的存儲配額可以限制用戶存儲的數(shù)據(jù)量。例如,服務器106對于它服務 的每一個客戶端可以具有可配置的存儲配額??蛻舳薃102(例如用戶的工作計算機)可以 將內(nèi)容傳送到服務器106,直至客戶端超出其存儲配額。在一些實現(xiàn)中,服務器106可以具 有FIFO系統(tǒng),用于相對于客戶端的配額處理客戶端的所傳送的內(nèi)容。如果超出客戶端的配 額,則可以接受新的內(nèi)容,但是可以刪除最陳舊的內(nèi)容。如果在另一個客戶端(例如已離線 數(shù)月的用戶家用計算機)能夠接收內(nèi)容之前刪除了內(nèi)容,則可以迫使客戶端在別處獲得內(nèi) 容。在該示例中,客戶端(例如用戶的家用計算機)可以從其工作計算機直接獲得內(nèi)容???替選地,服務器可以向生成內(nèi)容的客戶端請求內(nèi)容并且將內(nèi)容傳送到發(fā)出請求的客戶端。由于優(yōu)化刪除策略,服務器106可能已經(jīng)刪除了內(nèi)容。服務器106可以包括與特 定用戶ID相關聯(lián)的所有活動的客戶端的列表?;顒拥目蛻舳丝梢员欢x為在諸如三個月 的預定的時間段內(nèi)已聯(lián)系服務器的客戶端。在服務器確定已將所接收的內(nèi)容傳送到包括在 列表中的活動的客戶端后,服務器可以刪除所接收的內(nèi)容。如果非活動的客戶端(在預定 的時間內(nèi)未聯(lián)系服務器的客戶端)傳送了對已刪除的內(nèi)容的請求,服務器可以請求最初傳 送該內(nèi)容的客戶端重傳該內(nèi)容。服務器然后可以向先前非活動的客戶端提供該內(nèi)容。如果在步驟812中的回答為是,則在步驟814中服務器提供需要的內(nèi)容。所提供的內(nèi)容與在步驟810中指定的時間范圍相對應。例如,參考圖7,服務器106將需要的內(nèi)容 發(fā)送到客戶端A102,客戶端A102在本地存儲內(nèi)容并且更新對應于其需要的內(nèi)容和在本地 存儲的內(nèi)容的其時間范圍的列表。如果在步驟812中的回答為否,則服務器可以向第一客戶端發(fā)出信號以在稍后時 間請求內(nèi)容。在步驟818中,服務器請求第二客戶端提供其需要的遺漏的內(nèi)容,以滿足從第一 客戶端接收的最初請求。在一種實現(xiàn)中,服務器可以等待直到其檢測到第二客戶端是在線 的,然后發(fā)出請求。在另一個實現(xiàn)中,服務器可以等待直到在第二服務器變?yōu)樵诰€之后某一 時間才發(fā)出請求,以允許第二客戶端首先完成更高優(yōu)先級的任務。例如,參考圖7,服務器 106等待客戶端B104變?yōu)樵诰€,并且最后從客戶端B請求遺漏的內(nèi)容。無論如何,服務器可以定位所請求的內(nèi)容的副本。例如,參考圖7,系統(tǒng)確定客戶端 B104是否是在線的。如果是,則它可能從客戶端B104直接獲得需要的內(nèi)容。圖9是示出了普通計算機系統(tǒng)的示意圖。根據(jù)一個實現(xiàn),可以將系統(tǒng)900用來執(zhí)行 在方法800以及序列500和600中執(zhí)行的步驟。例如,系統(tǒng)900可以被包括在客戶端A102、 客戶端B104以及服務器106中的任一個或所有中。系統(tǒng)900包括處理器910、存儲器920、存儲裝置930以及輸入/輸出裝置940。使 用系統(tǒng)總線950將組件910、920、930以及940中的每一個相互連接。處理器910能夠處理 用于在系統(tǒng)900內(nèi)執(zhí)行的指令。在一個實現(xiàn)中,處理器910是單線程處理器。在另一個實 現(xiàn)中,處理器910是多線程處理器。處理器910能夠處理存儲在存儲器920中或在存儲裝 置930上的指令,以在輸入/輸出裝置940上顯示用于用戶界面的圖形信息。存儲器920存儲在系統(tǒng)900內(nèi)的信息。在一個實現(xiàn)中,存儲器920是計算機可讀 介質(zhì)。在另一個實現(xiàn)中,存儲器920是易失性存儲器單元。在另一個實現(xiàn)中,存儲器920是 非易失性存儲器單元。存儲裝置930能夠為系統(tǒng)900提供海量存儲。在一個實現(xiàn)中,存儲裝置930是計 算機可讀介質(zhì)。在各種不同的實現(xiàn)中,存儲裝置930可以是軟盤裝置、硬盤裝置、光盤裝置 或磁帶裝置。輸入/輸出裝置940為系統(tǒng)900提供輸入/輸出操作。在一個實現(xiàn)中,輸入/輸 出裝置940包括鍵盤和/或指示裝置。在另一個實現(xiàn)中,輸入/輸出裝置940包括用于顯 示圖形用戶界面的顯示單元。可以在數(shù)字電子電路中、或在計算機硬件、固件、軟件中或在其的組合中來實現(xiàn)所 述的特征??梢栽谟行蔚匕谛畔⑤d體中(例如在機器可讀的存儲裝置中或在傳播信號 中)的計算機程序產(chǎn)品中實現(xiàn)設備,以被可編程的處理器執(zhí)行;并且,通過可編程的處理器 執(zhí)行指令程序以通過操作輸入數(shù)據(jù)并且生成輸出來執(zhí)行所述實現(xiàn)的功能,可以執(zhí)行方法步 驟。可以有利地在包括至少一個可編程處理器的可編程系統(tǒng)上可執(zhí)行的一個或多個計算機 程序中實現(xiàn)所述特征,該可編程處理器被耦接為從數(shù)據(jù)存儲系統(tǒng)、至少一個輸入裝置以及 至少一個輸出裝置接收數(shù)據(jù)和指令、和將數(shù)據(jù)和指令傳送到數(shù)據(jù)存儲系統(tǒng)、至少一個輸入 裝置以及至少一個輸出裝置。計算機程序是可以在計算機中直接或間接使用的一組指令, 以執(zhí)行某一行為或產(chǎn)生某一結(jié)果??梢砸猿绦蛟O計語言的任何形式(包括編譯或解釋語 言)來編寫計算機程序,并且可以以任何形式部署計算機程序,包括作為單機程序或作為模塊、組件、子程序、或適合在計算環(huán)境中使用的其它單元。用于執(zhí)行指令程序的適當?shù)奶幚砥靼ɡ绯R?guī)和特定用途微處理器、以及任何 類型的計算機的唯一的處理器或多個處理器中的一個。通常,處理器將從只讀存儲器或隨 機存取存儲器或兩者接收指令和數(shù)據(jù)。計算機的必需元素是用于執(zhí)行指令的處理器以及用 于存儲指令和數(shù)據(jù)的一個或多個存儲器。通常,計算機也將包括用于存儲數(shù)據(jù)文件的一個 或多個海量存儲裝置、或操作性地耦接為與其通信;這樣的裝置包括諸如內(nèi)部硬盤和移動 磁盤的磁盤;磁光盤;以及光盤。適合有形地包含計算機程序指令和數(shù)據(jù)的存儲裝置包括 以下所有形式非易失性存儲器,包括例如諸如EPROM、EEPROM和閃存裝置的半導體存儲器 裝置;諸如內(nèi)部硬盤和移動磁盤的磁盤;磁光盤;以及CD-ROM和DVD-ROM盤片。處理器和 存儲器可以由ASIC (專用集成電路)增補、或被并入ASIC中。為了提供與用戶的交互,可以在具有以下各項的計算機上實現(xiàn)特征用于向用戶 顯示信息的諸如CRT(陰極射線管)或LCD(液晶顯示)監(jiān)視器的顯示裝置以及用戶可以向 計算機提供輸入的鍵盤和諸如鼠標或跟蹤球的指示裝置。可以在包括諸如數(shù)據(jù)服務器的后端組件、或包括諸如應用服務器或因特網(wǎng)服務器 的中間件組件、或包括諸如具有圖形用戶界面或因特網(wǎng)瀏覽器的客戶端計算機的前端組 件、或上述的任何組合的計算機系統(tǒng)中實現(xiàn)特征。可以通過諸如通信網(wǎng)絡的數(shù)字數(shù)據(jù)通信 的任何形式或介質(zhì)來連接系統(tǒng)的組件。通信網(wǎng)絡的示例包括例如LAN、WAN以及形成因特網(wǎng) 的計算機和網(wǎng)絡。計算機系統(tǒng)可以包括客戶端和服務器??蛻舳撕头掌魍ǔO嗷ミh離并且典型地 通過諸如所述的網(wǎng)絡來交互??蛻舳撕头掌鞯年P系通過運行于各自計算機上并且相互具 有客戶端_服務器關系的計算機程序而產(chǎn)生。已描述了多個實施例。然而,應當理解,在不背離所述實施例的精神和范圍的情況 下,可以進行各種修改。例如,可以將在圖4中所示的系統(tǒng)400修改來使用對等網(wǎng)絡體系結(jié) 構(gòu)而沒有服務器106。如果諸如客戶端A102的客戶端試圖將內(nèi)容傳送到諸如客戶端B104 的是離線的另一個客戶端,客戶端A102可以保留內(nèi)容并且繼續(xù)進行傳送嘗試直到客戶端 B104恢復在線,而不是將內(nèi)容傳送到服務器106來臨時存儲。可替選地,如果目標客戶端是 離線的,則客戶端A102可以將內(nèi)容傳送到除目標客戶端B104之外的客戶端。例如,客戶端 A102可以將內(nèi)容傳送到客戶端C,當客戶端B104變?yōu)樵诰€時客戶端C將內(nèi)容傳送到客戶端 B104。而且,在另一個實現(xiàn)中,客戶端可以以位范圍而不是時間范圍來指定內(nèi)容。例如, 客戶端可以向服務器106請求內(nèi)容,所述內(nèi)容通過第一位值(其指示內(nèi)容數(shù)據(jù)的開始位) 到第二位值(其指示內(nèi)容數(shù)據(jù)的結(jié)束位)來指定。同樣地,時間范圍列表716、718、738和 740可以分別包含與在本地存儲的內(nèi)容相關聯(lián)的位范圍和與需要的內(nèi)容相關聯(lián)的位范圍。 因此,其它的實施例在所附的權(quán)利要求的范圍內(nèi)。
權(quán)利要求
一種方法,包括使用第一客戶端接收指示用戶已經(jīng)執(zhí)行與第一文件相關聯(lián)的動作的事件,其中所述動作與將所述第一文件傳送到另一個客戶端不相關;響應于所述事件使用所述第一客戶端從所述第一文件自動提取內(nèi)容,并且生成與所述內(nèi)容相關聯(lián)的元數(shù)據(jù);以及如果對等客戶端和所述第一客戶端當前正在運行并且在網(wǎng)絡上相互可見,則使用所述第一客戶端將所述內(nèi)容和所述元數(shù)據(jù)傳送到所述對等客戶端,其中在接收所述事件后自動確定所述傳送的時間。
2.如權(quán)利要求1所述的方法,其中與傳送文件不相關的所述動作是文件訪問或文件保 存,并且從所述第一文件所提取的內(nèi)容是所述文件的副本或所述文件的所述內(nèi)容的副本。
3.如權(quán)利要求1所述的方法,進一步包括從服務器接收所述服務器被配置為將所述 內(nèi)容傳送到發(fā)出請求的客戶端的指示;以及已經(jīng)接收了所述指示并且如果所述對等客戶端 當前沒有與所述第一客戶端聯(lián)網(wǎng),則將所述內(nèi)容和所述元數(shù)據(jù)傳送到所述服務器。
4.如權(quán)利要求3所述的方法,進一步包括從服務器接收要求、定位滿足所述要求的所 述元數(shù)據(jù)、以及選擇與所述元數(shù)據(jù)相關聯(lián)的用于傳送到所述對等客戶端的所述內(nèi)容。
5.如權(quán)利要求4所述的方法,其中所述要求包括時間戳值或數(shù)據(jù)位值。
6.如權(quán)利要求5所述的方法,進一步包括響應于在所述第一客戶端上發(fā)生的多個事 件使用所述第一客戶端從多個文件提取附加的內(nèi)容,并且基于指定所述附加的內(nèi)容待被傳 送的順序的一個或多個優(yōu)先級算法將所述附加的內(nèi)容傳送到所述對等客戶端。
7.如權(quán)利要求1所述的方法,其中將所述內(nèi)容和元數(shù)據(jù)傳送到對等客戶端包括將所述 內(nèi)容和所述元數(shù)據(jù)傳送到服務器、所述第一客戶端從所述服務器接收所述服務器被配置為 將所述內(nèi)容和所述元數(shù)據(jù)傳送到所述對等客戶端的指示。
8.如權(quán)利要求1所述的方法,其中將所述內(nèi)容和元數(shù)據(jù)傳送到對等客戶端包括將所述 內(nèi)容和所述元數(shù)據(jù)傳送到第二客戶端、所述第一客戶端從所述第二客戶端接收所述第二客 戶端被配置為將所述內(nèi)容和所述元數(shù)據(jù)傳送到所述對等客戶端的指示。
9.如權(quán)利要求1所述的方法,進一步包括在將所述內(nèi)容傳送到所述對等客戶端之前對 所述內(nèi)容進行索引,以使得包括在所述內(nèi)容中的一個或多個符號被格式化為可用于識別所 述內(nèi)容的鍵。
10.如權(quán)利要求1所述的方法,進一步包括獨立于事件發(fā)生從第二文件提取內(nèi)容、對來 自所述第二文件的所述內(nèi)容進行索引、以及將所索引的內(nèi)容傳送到所述對等客戶端。
11.如權(quán)利要求1所述的方法,其中從所述第一文件提取所述內(nèi)容包括將所述第一文 件的所述內(nèi)容轉(zhuǎn)換為超文本標記語言(HTML)或文本。
12.如權(quán)利要求1所述的方法,其中提取所述第一文件的所述內(nèi)容包括生成保留所述 第一文件的原始文件格式的所述第一文件的副本。
13.如權(quán)利要求1所述的方法,進一步包括如果在所述第一客戶端接收到在所述第 一客戶端和所述對等客戶端之間的網(wǎng)絡連接具有超過預定帶寬值的帶寬的指示,則增加吞 吐量閾值,該吞吐量閾值用于限制在所述第一客戶端和所述對等客戶端之間傳遞的內(nèi)容的 量。
14.如權(quán)利要求1所述的方法,進一步包括在將所述內(nèi)容傳送到所述對等客戶端之前將期滿日與所述內(nèi)容相關聯(lián)。
15.如權(quán)利要求1所述的方法,進一步包括如果從所述第一客戶端刪除了所述內(nèi)容, 則傳送用于從所述對等客戶端刪除所述內(nèi)容的請求。
16.一種具有一個或多個服務器的計算機系統(tǒng),包括表管理器模塊,用于從第一客戶端接收用戶已經(jīng)對文件執(zhí)行與所述文件的傳送不相關 的動作的指示,所述指示包括從所述文件提取的內(nèi)容和分配給所述內(nèi)容的元數(shù)據(jù)值;數(shù)據(jù)表,用于存儲從在所述第一客戶端上的所述文件提取的所述內(nèi)容和所述元數(shù)據(jù)值;接口,用于從第二客戶端接收對與在指定的元數(shù)據(jù)值范圍內(nèi)的一個或多個元數(shù)據(jù)值相 關聯(lián)的內(nèi)容的請求;以及選擇模塊,用于如果與所述內(nèi)容相關聯(lián)的所述元數(shù)據(jù)值在所指定的元數(shù)據(jù)值范圍內(nèi), 則發(fā)起所述內(nèi)容到所述第二客戶端的傳送。
17.如權(quán)利要求16所述的系統(tǒng),其中所述元數(shù)據(jù)值包括指示對所述文件執(zhí)行的所述動 作何時發(fā)生的時間戳,并且所述元數(shù)據(jù)值范圍包括指示一段時間的時間戳值的連續(xù)范圍。
18.如權(quán)利要求16所述的系統(tǒng),進一步包括活動的客戶端列表,所述活動的客戶端列 表包括用于在預定的時間段內(nèi)已由所述接口從其接收對內(nèi)容的請求的客戶端的標識符,在 所述表管理器模塊發(fā)出用于從所述數(shù)據(jù)表移除所述內(nèi)容的刪除命令之前,所述表管理器模 塊使用所述活動的客戶端列表來確定是否已將所述內(nèi)容傳送到所有列出的活動的客戶端。
19.如權(quán)利要求16所述的系統(tǒng),進一步包括空間配額,所述空間配額包括對用于所接 收的內(nèi)容的存儲空間的量的限制,當超過所述配額時使用所述空間配額來觸發(fā)從所述數(shù)據(jù) 表刪除至少一部分所述內(nèi)容。
20.如權(quán)利要求16所述的系統(tǒng),進一步包括源標識符的列表,所述源標識符中的一個 指定從其接收了所述內(nèi)容的所述第一客戶端,如果在將所述內(nèi)容傳送到所述第二客戶端之 前已將所述內(nèi)容從所述數(shù)據(jù)表刪除,則使用所述源標識符的列表來發(fā)起從所述第一客戶端 對所述內(nèi)容的請求。
21.如權(quán)利要求16所述的系統(tǒng),進一步包括認證管理器,用于將用于所述第一和第二 客戶端的客戶端標識符以及與所述第一和第二客戶端相關聯(lián)的用戶標識符傳送到外部服 務器,用于如果存儲在所述數(shù)據(jù)表中的所述內(nèi)容變得不可訪問則在重構(gòu)所述內(nèi)容中使用。
22.如權(quán)利要求16所述的系統(tǒng),進一步包括吞吐量閾值,所述吞吐量閾值包括對在預 定的時間段內(nèi)由所述接口接收的數(shù)據(jù)量的限制,如果所接收的數(shù)據(jù)量超過所述閾值,則接 口利用所述吞吐量閾值來拒絕接收附加內(nèi)容。
23.一種用于在多個客戶端上共享數(shù)據(jù)的系統(tǒng),包括在第一客戶端的事件監(jiān)聽器,用于接收用戶發(fā)起的與文件相關聯(lián)的動作,其中所述動 作與將所述文件傳送到第二客戶端不相關;在所述第一客戶端的提取器,用于響應于所述事件從所述文件提取內(nèi)容并且生成與所 述內(nèi)容相關聯(lián)的元數(shù)據(jù);以及用于將所述內(nèi)容和所述元數(shù)據(jù)從第一客戶端傳送到第二客戶端的裝置。
24.一種有形地包含在有形的、機器可讀的信息載體中的計算機程序產(chǎn)品,所述計算機 程序產(chǎn)品包括指令,當執(zhí)行所述指令時執(zhí)行包括以下的方法使用第一客戶端接收指示用戶已經(jīng)執(zhí)行與第一文件相關聯(lián)的動作的事件,其中所述動 作與將所述第一文件傳送到另一個客戶端不相關;響應于所述事件使用所述第一客戶端從所述第一文件自動提取內(nèi)容,并且生成與所述 內(nèi)容相關聯(lián)的元數(shù)據(jù);以及如果對等客戶端和所述第一客戶端當前正在運行并且在網(wǎng)絡上相互可見,則使用所述 第一客戶端將所述內(nèi)容和所述元數(shù)據(jù)傳送到所述對等客戶端,其中在接收所述事件后自動 確定所述傳送的時間。
全文摘要
一種方法包括使用第一客戶端接收指示用戶已經(jīng)執(zhí)行的與第一文件相關聯(lián)的動作的事件。該動作與將第一文件傳送到另一個客戶端不相關。該方法還包括響應于事件使用第一客戶端從第一文件自動提取內(nèi)容并且生成與內(nèi)容相關聯(lián)的元數(shù)據(jù);以及如果對等客戶端和第一客戶端當前正在運行并且在網(wǎng)絡上相互可見,則使用第一客戶端將內(nèi)容和元數(shù)據(jù)傳送到對等客戶端。在接收事件后自動確定傳送的時間。
文檔編號G06F17/30GK101933013SQ200780010357
公開日2010年12月29日 申請日期2007年1月25日 優(yōu)先權(quán)日2006年1月25日
發(fā)明者史蒂芬·勞倫斯, 夏西遠, 約翰·托馬斯·西古德松, 謝爾蓋·尤金 申請人:谷歌公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
重庆市| 丰原市| 大同县| 黄冈市| 溆浦县| 崇礼县| 湄潭县| 阜新市| 衡阳县| 达州市| 紫阳县| 古交市| 翁牛特旗| 蓝山县| 铅山县| 东山县| 榆社县| 武宣县| 翁源县| 凤台县| 天峻县| 嫩江县| 辰溪县| 忻城县| 成都市| 河源市| 德庆县| 通许县| 南陵县| 福安市| 鄂伦春自治旗| 固始县| 沽源县| 恭城| 岳阳县| 峨边| 蓬莱市| 荥阳市| 五峰| 阜城县| 明星|