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

用于同步對共享對象的多個用戶修訂的方法和系統(tǒng)的制作方法

文檔序號:6651413閱讀:160來源:國知局
專利名稱:用于同步對共享對象的多個用戶修訂的方法和系統(tǒng)的制作方法
背景技術
文件共享應用程序允許數(shù)個不同用戶共同分享信息。許多用戶可同時訪問同一文件。所有這些用戶都可查看該文件,但僅第一個訪問該文件的用戶具有編輯的特權。后續(xù)訪問該文件的用戶被阻塞而不得編輯該文件。對很大的共享文件而言,向除了一個用戶以外的其它所有用戶供應文件的只讀版本是不方便的。這在用戶想要離線地在共享文件上工作時尤為嚴重。例如,如果第一個訪問共享文件的用戶出差在外,則其它用戶可能會在很長的一段時間被鎖在該文件之外。

發(fā)明內容
本發(fā)明針對于一種用于同步對共享對象的多個用戶修訂的方法和系統(tǒng)。對象可以是諸如文件等任何能夠被共享的實體。許多不同的用戶可通過數(shù)種不同的傳輸來同時訪問、修訂和更新同一共享對象。當一個用戶可訪問共享對象時,其它用戶不會被阻塞而不得訪問和修訂該共享對象。任何經授權的用戶可同時修訂共享對象。不要求用戶在進行修訂的同時被連接到共享對象??呻x線地對該對象的本地高速緩存的版本進行修訂。然后當該共享對象可用時,這些修訂與其它用戶修訂同步。對共享對象的修訂被自動同步,以使所有用戶可查看對該共享對象的修訂。不同的用戶可在不同的時間修訂共享對象,從而共享對象的多個版本可共存。共享對象的最新版本是包括對其它經授權用戶可用的最近同步的修訂的版本。
當兩個用戶修訂共享對象的同一個部分時,可能會發(fā)生沖突。如果修訂的部分與另一個用戶對同一部分的修訂沖突,則它不能與共享對象同步。共享對象中具有沖突修訂的部分被顯示在沖突頁面上。沖突頁面和共享文件的最新版本的對應的主頁面類似,不同之處在于共享對象中具有沖突的修訂的部分被加亮并顯示以代替已同步的修訂。沖突指示器被顯示在共享對象的主頁面上。當沖突指示器被選中時,在主頁面旁邊顯示沖突頁面。同時向用戶呈現(xiàn)主頁面的已同步狀態(tài)和對應的沖突頁面兩者。用戶可調解沖突的修訂并將其合并到主頁面中。被標識為不相關的沖突的修訂可被清除。
在本發(fā)明的一個方面,對共享對象的修訂被接收。確定該修訂是否與該共享對象的主頁面上的已同步修訂沖突。當確定要將修訂與共享對象的當前版本相關聯(lián),并且當確定修訂不與已同步版本沖突時,修訂與該共享對象同步。


圖1示出可以根據(jù)本發(fā)明的一個示例性實施例使用的計算設備。
圖2根據(jù)本發(fā)明示出用于同步對共享對象的多個用戶修訂的系統(tǒng)的框圖。
圖3根據(jù)本發(fā)明示出指示共享對象的不同部分的鏈接節(jié)點的分層結構圖。
圖4根據(jù)本發(fā)明示出共享對象的主頁面和相關聯(lián)的沖突頁面。
圖5根據(jù)本發(fā)明示出用于同步對共享對象的多個用戶修訂的系統(tǒng)的框圖。
圖6根據(jù)本發(fā)明示出一操作流程圖,該操作流程圖示出用于同步對共享對象的多個用戶修訂的過程。
圖7根據(jù)本發(fā)明示出一操作流程圖,該操作流程圖示出用于在共享對象中調解與合并來自多個用戶的沖突的修訂的過程。
圖8根據(jù)本發(fā)明示出一操作流程圖,該操作流程圖示出用于同步對共享對象的多個用戶修訂的過程。
圖9根據(jù)本發(fā)明示出一操作流程圖,該操作流程圖示出用于從異步通信模式無縫地過渡到同步通信模式的過程。
圖10根據(jù)本發(fā)明示出一操作流程圖,該操作流程圖示出用于從同步通信模式無縫地過渡到異步通信模式的過程。
具體實施例方式
本發(fā)明針對一種用于同步對共享對象的多個用戶修訂的方法和系統(tǒng)。對象可以是諸如文件等任何能夠被共享的實體。許多不同的用戶可通過數(shù)種不同的傳輸來同時訪問、修訂和更新同一共享對象。當一個用戶可訪問共享對象時,其它用戶不會被阻塞而不得訪問和修訂該共享對象。任何經授權的用戶可同時修訂共享對象。不要求用戶在進行修訂的同時被連接到共享對象??呻x線地對該對象的本地高速緩存的版本進行修訂。然后當該共享對象可用時,這些修訂與其它用戶修訂同步。對共享對象的修訂被自動同步,以使所有用戶可查看對該共享對象的修訂。不同的用戶可在不同的時間修訂共享對象,從而共享對象的多個版本可共存。共享對象的最新版本是包括對其它經授權用戶可用的最近期的已同步的修訂的版本。
當兩個用戶修訂共享對象的同一個部分時,可能會發(fā)生沖突。如果修訂的部分與另一個用戶對同一部分的修訂沖突,則它不能與共享對象同步。共享對象中具有沖突修訂的部分被顯示在沖突頁面上。沖突頁面和共享文件的最新版本的對應的主頁面類似,不同之處在于共享對象中具有沖突的修訂的部分被加亮并顯示以代替已同步的修訂。沖突指示器被顯示在共享對象的主頁面上。當沖突指示器被選中時,在主頁面旁邊顯示沖突頁面。同時向用戶呈現(xiàn)主頁面的已同步狀態(tài)和對應的沖突頁面兩者。用戶可調解沖突的修訂并將其合并到主頁面中。被標識為不相關的沖突的修訂可被清除。
示例性操作環(huán)境參考圖1,一種用于實現(xiàn)本發(fā)明的示例性系統(tǒng)包括諸如計算設備100等計算設備。計算設備100可被配置成客戶機、服務器、移動設備、或在基于網(wǎng)絡的合作系統(tǒng)中與數(shù)據(jù)交互的任何其它計算設備。在最基本的配置中,計算設備100通常包括至少一個處理單元102和系統(tǒng)存儲器104。取決于計算設備的確切配置和類型,系統(tǒng)存儲器104可以是易失性的(諸如RAM等)、非易失性的(諸如ROM、閃存等)、或這兩者的某種組合。系統(tǒng)存儲器104通常包括操作系統(tǒng)105、一個或多個應用程序106,還可包括程序數(shù)據(jù)107。在以下詳細描述的修訂同步模塊108在應用程序106內實現(xiàn)。
計算設備100還可具有其它特征或功能。例如,計算設備100還可包括其它數(shù)據(jù)存儲設備(可移動和/或不可移動的),諸如磁盤、光盤或磁帶等。這些其它存儲在圖1中由可移動存儲109和不可移動存儲110示出。計算機存儲介質可包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。系統(tǒng)存儲器104、可移動存儲109和不可移動存儲110都是計算機存儲介質的示例。計算機存儲介質包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術,CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲,磁帶盒、磁帶、磁盤存儲或其它磁存儲設備、或可用來存儲所需信息并可由計算設備100訪問的任何其它介質。任何此類計算機存儲介質都可以是設備100的部件。計算設備100還可具有諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備等輸入設備112。還可包括諸如顯示器、揚聲器、打印機等輸出設備114。
計算設備100還包含允許該設備諸如通過網(wǎng)絡等與其它計算設備118通信的通信連接116。網(wǎng)絡包括局域網(wǎng)和廣域網(wǎng),以及其它大規(guī)模網(wǎng)絡,包括但不限于,內聯(lián)網(wǎng)和外聯(lián)網(wǎng)。通信連接116是通信介質的一個示例。通信介質通??删唧w化為諸如載波或其它傳輸介質等已調制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù),并包括任何信息傳遞介質。術語“已調制數(shù)據(jù)信號”是指以在信號中將信息編碼的方式設置或改變其一個或多個特征的信號。作為示例,而非限制,通信介質包括諸如有線網(wǎng)絡或直接連線連接等有線介質,以及諸如聲學、RF、紅外及其它無線介質等無線介質。如本文中所使用的,術語計算機可讀介質包括存儲介質和通信介質兩者。
同步對共享文件的多個用戶修訂圖2示出一種用于同步對共享對象的多個用戶修訂的系統(tǒng)的框圖。對象可以是諸如文件等任何能夠被共享的實體。該系統(tǒng)包括客戶機200、210、220、230,諸如交換服務器240等具有文件存儲能力的電子郵件服務器,web服務器250,對等網(wǎng)絡260以及電子郵件附件270??蛻魴C200、210被耦合到交換服務器240??蛻魴C210、220被耦合到web服務器250??蛻魴C210、220還通過對等網(wǎng)絡260被耦合在一起。電子郵件附件270被安排為由web服務器250向客戶機230或從客戶機230傳輸。客戶機200、210都與同一用戶(用戶1)相關聯(lián)。例如,客戶機200由用戶1在家中訪問,而客戶機210由用戶1在工作中訪問??蛻魴C220、230與不同的用戶(分別與用戶2和用戶3)相關聯(lián)??蛻魴C200、210、220、230每一個包括高速緩存202、212、222、232,用于本地存儲共享對象。對等網(wǎng)絡260包括虛擬服務器262,用于在客戶機210、220之間傳遞共享對象。修訂文件242和共享對象252、264、272分別被存儲在交換服務器240、web服務器250、虛擬服務器262和電子郵件附件270中。修訂文件242和共享對象252、264、272可與對等組標識符相關聯(lián)。對等組標識符標識被授權可訪問和修訂特定共享對象的那些用戶(即,對等組)。在一個實施例中,對等組標識符是可被解析到任何web客戶機的、指向對等組的統(tǒng)一資源定位器(URL)。共享對象252、264分別與清單文件254、266相關聯(lián)。
許多不同的用戶可通過數(shù)種不同傳輸來同時訪問、編輯和更新同一共享對象。例如,在客戶機210處的用戶1和在客戶機220處的用戶2可從web服務器250訪問共享對象252。共享對象被本地存儲在對應的高速緩存212、222中。用戶1和用戶2都可修訂共享對象252。這些修訂與web服務器250上的共享對象252同步,從而用戶1可看到用戶2所作的修訂,而用戶2也可看到用戶1所作的修訂。
在另一個示例中,用戶3可通過電子郵件附件270與用戶2共享對共享對象272的訪問。用戶2可修訂本地存儲的共享對象,并向用戶3發(fā)送附帶了整個共享對象或僅附帶了對共享對象的修訂的電子郵件消息。用戶2所作的修訂與web服務器250上的共享對象252同步。當電子郵件在客戶機230處接收時,用戶2所作的修訂自動地與存儲在高速緩存232中的本地共享對象同步。用戶3隨即可對共享對象272進行其它修訂,并用作為電子郵件附件270包括的整個共享對象或僅對共享對象的修訂來回復用戶2。用戶3所作的修訂與web服務器250上的共享對象252同步。客戶機220處的共享對象也被更新以包括用戶3所作的修訂。
在另一個示例中,用戶1可在家中在客戶機200上訪問共享對象,或在工作中通過交換服務器240在客戶機210上訪問共享對象。當對外部服務器的訪問不被允許或不可用時,常常使用交換服務器。修訂文件242包括對共享對象的修訂。修訂文件242可通過通用串行總線(USB)驅動器、電子郵件應用程序、或允許修訂被往返傳送的某種其它機制在客戶機200、210之間傳送。修訂被應用于客戶機200、210,以使存儲在高速緩存202、212中的本地共享對象可被更新。
交換服務器240可對其能夠處理的文件的大小有所限制(例如,最多2兆字節(jié))。用戶1可將包括對共享對象的任何修訂的修訂文件242從客戶機200上傳到交換服務器240。當修訂文件242超過交換服務器240的大小限制時,可按分段將修訂文件242從客戶機200傳送到客戶機210。文件協(xié)議允許用于傳送分段的請求/滿足過程。在一個實施例中,交換服務器240與電子郵件應用程序相關聯(lián)。由另一用戶(用戶2)所作的修訂可通過web服務器250或對等網(wǎng)絡260從客戶機220傳送到客戶機210,然后通過發(fā)給用戶1的電子郵件賬戶傳送到客戶機200。在另一個實施例中,客戶機200周期性地輪詢交換服務器240來獲得當前的修訂文件。
在另一個示例中,當從客戶機210、220到web服務器250的連接丟失時,或當用戶1和用戶2寧愿實時地直接并同步地通信時,可在客戶機210、220之間建立對等網(wǎng)絡260。用戶1和用戶2可能會寧愿通過對等網(wǎng)絡260通信,因為通過web服務器250的對象共享可能會導致在客戶機210處作出修訂的時間和該修訂在客戶機220處可用的時間之間的滯后。滯后可能是繁忙的服務器通信量的結果。對等網(wǎng)絡260允許對共享對象的修訂在客戶機210、220之間直接傳送,而不是通過web服務器250。在一個實施例中,對等網(wǎng)絡260是傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)直接網(wǎng)絡。TCP/IP直接網(wǎng)絡允許修訂被快速存儲和檢索。
當web服務器250連接被中斷時,客戶機210、220的每一個都可將共享對象252的一個副本本地存儲在高速緩存212、222中。與共享對象252相關聯(lián)的對等組標識符指示用戶1和用戶2都在同時訪問共享對象。當兩個用戶都訪問所建立的對等網(wǎng)絡時(例如,兩個用戶在同一飛機上都用膝上計算機工作),他們就知道彼此的存在。對等網(wǎng)絡260允許用戶1和用戶2同時訪問對虛擬服務器262上的共享對象264的修訂,以及實現(xiàn)其它修訂。這些修訂在客戶機210、220上被即時復制,以使用戶1和用戶2可在共享對象264上積極地合作。當用戶1和用戶2不再位于同一附近地區(qū)時(例如,每個用戶都返回他們各自的辦公室),或當用戶1和用戶2不再想要實時通信時,對等網(wǎng)絡260可被禁用。然后共享對象252可從web服務器250訪問。訪問對等網(wǎng)絡260上的共享對象修訂與訪問web服務器250上的共享對象修訂之間的過渡是自動且無縫的。
客戶機210、220既可從web服務器250,也可從對等網(wǎng)絡260接收當前修訂。對共享對象所作的每個修訂都與一全局唯一標識符(GUID)和一時間戳相關聯(lián)。時間戳標識作出該修訂的時間??蛻魴C210可修改web服務器250上的共享對象252??蛻魴C220通過將與高速緩存的對象相關聯(lián)的GUID及時間戳和與web服務器250上的共享對象252相關聯(lián)的GUID及時間戳進行比較,來確定高速緩存222中的共享對象的本地版本是否是當前的。如果當前版本未被本地存儲,則尚未在已高速緩存的對象中實現(xiàn)的最新修訂從web服務器250加載到客戶機220,并與本地文件同步。由此,無需在每次共享對象的本地版本被更新時將完整的共享對象加載到客戶機220。
在一個實施例中,客戶機220可從與修訂相關聯(lián)的GUID和時間戳來確定相同的修訂可從對等網(wǎng)絡260中獲得。但是,這不導致任何動作,因為客戶機220已經實現(xiàn)了修改。在另一個實施例中,客戶機220可從與修訂相關聯(lián)的GUID和時間戳確定相同的修改不能從對等網(wǎng)絡260中獲得。由此,客戶機220向對等網(wǎng)絡260提交修訂,以使連接到對等網(wǎng)絡260的其它用戶可與共享對象的當前版本同步。
客戶機220可從對等網(wǎng)絡260接收另一版本。高速緩存222中的共享對象被更新??蛻魴C222使用與修訂相關聯(lián)的GUID和時間戳來確定共享對象的當前狀態(tài)在web服務器250上是否也可用。如果web服務器250上的共享對象252未與共享文檔的當前狀態(tài)同步,則客戶機220向web服務器250提交最新修訂,以使共享對象252可被更新。
當客戶機在通過物理服務器連接到系統(tǒng)的同時修訂共享對象時可發(fā)生異步通信。服務器限制可能使共享對象的同步從用戶實現(xiàn)修訂的時候起被延遲。在一個實施例中,客戶機可在不連接到系統(tǒng)時修訂共享對象的本地高速緩存的版本。當客戶機通過服務器重新連接到系統(tǒng)時,客戶機所作的任何修訂可與共享對象同步。客戶機可在本地訪問、同步和異步通信之間無縫過渡,從而用戶不知道通信模式已改變。用戶可改變位置,且任何可用的數(shù)據(jù)共享傳輸(例如,對等網(wǎng)絡、服務器)被自動標識。由此,用戶可通過各種不同機制來訪問共享對象并與其它經授權的用戶合作。
每個共享對象都與一清單文件相關聯(lián)。清單文件標識共享對象的其它版本和實例在系統(tǒng)內存儲的位置。在一個實施例中,清單文件是可擴展標記語言(XML)文件。在另一個實施例中,清單文件標識多個共享對象。在又一個實施例中,清單文件可與能在客戶機之間共享的任何對象相關聯(lián)。例如,清單文件可與整個共享對象,或共享對象的任何部分(例如,內容容器、章、頁、大綱、等等)相關聯(lián)。
清單文件可存儲在系統(tǒng)內的任何地方。如圖中所示,清單文件254與共享對象252相關聯(lián)。共享對象252和清單文件254都存儲在web服務器250上。在另一個實施例中,清單文件存儲在共享對象中。在又一個實施例中,清單文件存儲在現(xiàn)用目錄中。在再一個實施例中,清單文件存儲在系統(tǒng)內的多個位置。清單文件存儲在唯一位置標識符所標識的位置。唯一位置標識符可標識文件服務器、服務器的共享區(qū)域、web服務器、或對等組。
共享對象可從高速緩存來本地訪問,或者通過服務器或通過對等網(wǎng)絡來訪問??蛻魴C從對應的共享對象中的唯一位置標識符所標識的位置檢索清單文件。在一個實施例中,客戶機可本地存儲清單文件以供將來引用。清單文件指示共享對象的任何其它版本和實例在系統(tǒng)內的位置(例如,在副存儲或對等組中)。如果共享對象的另一個版本/實例存儲在對等組中,則清單文件可包括對應的對等組標識符。
在一個實施例中,客戶機220訪問web服務器250上的共享對象252??蛻魴C220被自動連接到同樣訪問共享對象252的其它客戶機(例如,對等組)??蛻魴C220檢索與共享對象252相關聯(lián)的清單文件254。清單文件254標識共享對象252的不同版本和實例的位置。由此,當對等組中的任何客戶機訪問清單文件254所標識的共享對象252的一個版本/實例時,客戶機220可與對等組中的任何其它客戶機建立對等網(wǎng)絡??蛻魴C220隨即可從web服務器250斷開,并繼續(xù)訪問對等網(wǎng)絡上的共享對象252。
在另一個實施例中,客戶機210可從對等網(wǎng)絡260訪問共享對象264??蛻魴C210檢索與共享對象264相關聯(lián)的清單文件266??蛻魴C210可連接到服務器并確定哪些客戶機也連接到該服務器。當對等網(wǎng)絡260不可用時,可通過服務器訪問所連接的那些客戶機。共享對象264(或252)和相關聯(lián)的清單文件266(或254)允許客戶機210(或客戶機220)在異步和同步通信模式之間自動且無縫地過渡。
當一用戶可訪問共享對象時,并不會阻塞其它用戶訪問和修訂該共享對象。任何經授權的用戶可同時修訂共享對象。在一個實施例中,可發(fā)生阻塞的短暫情況來確保修訂事務的完整性。例如,用戶可在從服務器斷開的同時大范圍修訂共享文檔。當用戶重新連接到服務器時,可短暫地阻塞其它客戶機訪問共享對象,直至在共享對象中實現(xiàn)了該用戶的所有修訂。
圖3示出指示共享對象的不同部分的鏈接節(jié)點的分層結構圖。在一個實施例中,共享對象是在數(shù)個用戶之間共享的筆記本。筆記本節(jié)點300象征整個共享對象。文件夾節(jié)點310被包括在筆記本節(jié)點300內。章節(jié)點320被包括在文件夾節(jié)點310內。頁節(jié)點330、335被包括在章節(jié)點310內。表節(jié)點340、墨水節(jié)點342、大綱節(jié)點344和圖像節(jié)點346被包括在頁節(jié)點330內。大綱元素節(jié)點350被包括在大綱節(jié)點344內。文本節(jié)點360被包括在大綱元素節(jié)點350內。可在內容容器內將不同的節(jié)點組合在一起。例如,大綱節(jié)點344、大綱元素節(jié)點350和文本節(jié)點360可被組合在一起成為內容容器R0。內容容器R0被分配一個GUID(例如,GUID-0)。該GUID唯一地標識內容容器R0。
內容容器包括共享對象的內容(例如,單詞、句子、段落、頁、表、圖片、手寫筆跡、統(tǒng)一資源定位器、或共享對象中所包括的數(shù)據(jù)的任意組合)。內容容器為被組合在一起的對象內容提供維度。例如,內容容器可對應于線條、段落、頁、或特定的頁元素(例如,僅特定頁上的表)。
共享對象存儲圖的初始版本。然后可對個別的內容容器執(zhí)行特定的操作。例如,用戶可修訂內容容器的數(shù)據(jù)。對共享對象的修訂可被標識為內容容器的狀態(tài)。共享對象存儲圖的修訂后的內容容器。使用GUID和時間戳將內容容器的當前狀態(tài)與先前狀態(tài)進行比較,從而可確定內容容器是否已被修訂。
例如,兩個不同的用戶的每一個都可訪問共享文檔并修改內容容器R0。一個用戶可通過刪除文本節(jié)點360(如修訂R1中所示)來修訂內容容器R0。修訂R1被存儲在共享對象中。修訂R1被分配一GUID(例如,GUID-1)來唯一地標識修訂后的容器,并被分配標識修訂R1被寫到共享對象的時間和日期的時間戳。另一個用戶可通過向大綱元素節(jié)點350添加文本節(jié)點380(如修訂R2中所示)來修訂內容容器R0。修訂R2被存儲在共享對象中。修訂R2被分配時間戳和GUID(例如,GUID-2)來唯一地標識修訂后的內容容器。
不同的用戶可在不同的時間修訂共享對象,從而共享對象的多個版本可能共存。但是,共享對象只有一個最新版本。在一個實施例中,共享對象的最新版本是包括與共享對象同步的最近期的修訂并已對其它經授權的用戶可用的那個版本。
例如,用戶可通過向大綱節(jié)點344添加大綱元素節(jié)點370(如修訂R3中所示)來修訂共享對象被標識為修訂R1的內容容器。修訂R3被存儲在共享對象中。修訂R3也被分配時間戳和GUID(例如,GUID-3)來唯一地標識修訂后的內容容器。修訂R3是修訂R1的擴展。由此,修訂R1是用戶所知悉的共享對象的最新版本(例如,本地存儲的版本)。共享對象被檢查,以確定共享對象的最新版本是否仍然是修訂R1。在一個實施例中,可通過比較不同的內容容器的時間戳和GUID來確定共享對象的最新版本。如果共享對象的最新版本與比修訂R1更近期的時間戳相關聯(lián),則另一個用戶(例如,創(chuàng)建修訂R2的用戶)已在隨后修改了同一內容容器。
如果自修訂R1與共享對象同步以來,已有另一個用戶修改了同一內容容器,則作為對修訂R1的擴展的任何修訂(例如,修訂R3)只可在任何隨后的修訂都與共享對象同步且任何沖突的修訂都被解決和合并以后才可與共享對象同步。例如,修訂R2在修訂R1后與共享對象同步。由此,共享對象的最新版本包括修訂R2。在修訂R3與共享對象同步以前,將修訂R3與修訂R2進行比較以確定是否有任何修訂相沖突。比較是必需的,因為修訂R3是修訂R1的擴展,而后者不再與共享對象的最新版本相關聯(lián)。修訂R3被確定不與修訂R2沖突,因為大綱元素節(jié)點370可被添加到大綱節(jié)點344而不會干擾修訂R2。
在一個實施例中,共享對象是通過將內容容器從共享對象內的一個位置移到另一個位置來修訂的。例如,可將表節(jié)點340從頁節(jié)點330移到頁節(jié)點335。確定表節(jié)點340已被移動,但新的位置無法被確定。在表節(jié)點340的原始位置創(chuàng)建代理節(jié)點。當表節(jié)點340的新位置被確定時,在表節(jié)點340的新位置處實現(xiàn)代理節(jié)點。如果表節(jié)點340在新位置被確定以前被刪除,則將代理節(jié)點丟棄。
不同的用戶可同時編輯共享對象。通常,用戶修訂共享對象的不同內容容器。由此,每個用戶的修訂無需進一步處理即可與共享對象同步。當兩個用戶編輯共享對象的同一內容容器時(例如,同一表值、同一句子)可能發(fā)生沖突。不同的用戶修訂之間的沖突可能異步地產生。例如,用戶可能在不連接到服務器的時候修訂共享對象被本地高速緩存的版本。當用戶重新連接到服務器時,這些修訂與共享對象同步。但是,這些修訂可能與已與共享對象同步的其它修訂沖突。
例如,修訂R4是修訂R3的擴展。修訂R4從大綱節(jié)點344刪除大綱元素節(jié)點350。確定了共享對象的最新版本包括修訂R2。修訂R2和修訂R4之間的比較標識沖突,因為大綱元素節(jié)點350存在于修訂R2中,但在修訂R4中已被刪除。
在內容容器的主版本和該內容容器的兩個有分歧的版本之間執(zhí)行三方合并來解決沖突。例如,合并內容容器R0(即,主版本)、修訂R2和修訂R4以建立共享對象的當前版本。內容容器的主版本可以是最后與服務器上的共享對象同步的那個版本。主版本包括非沖突的修訂。
通過遵循由一種合并算法所建立的一組規(guī)則,沖突的內容容器被調解并合并到共享對象中。該合并算法確定哪些修訂已與共享對象同步。例如,可根據(jù)優(yōu)先級將不同的用戶分級,從而一用戶的修訂優(yōu)先于所有其它用戶(即,主編輯)。當較低優(yōu)先級的用戶試圖修訂共享對象中已被較高優(yōu)先級的用戶修訂過的內容容器時,該用戶將被通知這些修訂(即,次編輯)將不會被與共享對象同步。由此,主編輯被顯示在共享對象的主頁面上,而任何次編輯被標記為未與共享對象同步。
在另一個示例中,對服務器上的共享對象所作的修訂優(yōu)先于客戶機上本地所作的修訂。共享對象的服務器副本被認為是主版本,因為許多不同的用戶可能已訪問并修訂了服務器上的共享對象。只有一個用戶訪問并修訂了本地存儲的版本。未與共享對象同步的修訂后的內容容器(例如,次編輯)被標識為沖突的。沖突的內容容器通過被存儲在與共享對象對應的主頁面相關聯(lián)的沖突頁面上來保持。
圖4示出共享對象的主頁面和相關聯(lián)的沖突頁面。主頁面400包括諸如內容容器410、420等非沖突的修訂。任何未合并的沖突的修訂在主頁面400上由沖突指示器標識。在一個實施例中,沖突指示器是下拉菜單430。下拉菜單430的第一個條目可以是用戶所生成的最近期的沖突。下拉菜單430的條目可包括用戶名和對應的時間戳。下拉菜單430中的另一個條目可包括用戶所生成的但未調解的其它沖突頁面。下拉菜單430中的其它條目可對應于其它用戶所生成沖突頁面。從下拉菜單430選擇一個條目將顯示對應的沖突頁面,其中沖突的修訂被加亮,以將用戶的注意力吸引到未被合并到共享對象的主版本中的那些修訂。由此,用戶或可調解并將沖突與主頁面400合并,或可決定這些沖突是不相關的。
在另一個實施例中,沖突指示器是選項卡。主頁面可與選項卡440相關聯(lián)。對應的沖突頁面也可與和選項卡440不同的選項卡相關聯(lián)。例如,沖突頁面選項卡可相對于選項卡440縮進,或在選項卡440以下層疊。包括與特定用戶相關聯(lián)的未被合并的沖突的沖突頁面可由與其它選項卡不同的選項卡標識,以使用戶的注意力被吸引到該用戶所生成的沖突頁面上。該用戶隨即可選擇選項卡來導航到對應的沖突頁面。
可在共享對象對應的主頁面旁邊顯示所選擇的沖突頁面,以使用戶可鑒于已合并的修訂來調解并合并任何沖突的修訂。沖突頁面450與主頁面400相關聯(lián)。沖突頁面450和主頁面400相似,不同之處在于任何沖突的內容容器都被加亮以指示該沖突尚未被解決。例如,內容容器460用加亮的背景來呈現(xiàn),以將用戶的注意力吸引到未被合并的沖突上。在用戶修訂內容容器460中的數(shù)據(jù)以前,內容容器460可能已被刪除并與共享對象同步,從而造成沖突。該用戶可選擇內容容器460以在主頁面400上合并修訂。
在一個實施例中,沖突頁面與特定用戶相關聯(lián)。由此,當一個以上用戶對頁面作出不能被合并的修訂時,可令一個以上的沖突頁面與主頁面相關聯(lián)。為被授權可訪問共享對象的所有用戶存儲所有沖突的修訂??杉俣ㄔL問沖突頁面的用戶最關注該用戶所生成的沖突,從而該用戶可調解那些沖突。例如,當用戶1選擇沖突指示器時,向用戶1呈現(xiàn)其對應的沖突頁面。用戶還可查看與另一個用戶相關聯(lián)的沖突頁面。例如,用戶1可選擇選項卡470以導航到與用戶2相關聯(lián)的沖突頁面。
隨著時間的推移,可能積累起與共享對象的一個主頁面相關聯(lián)的多個沖突頁面。在該時間段期間,用戶可能已將數(shù)個修訂與共享對象位于服務器上的主版本同步,而同時忽略了任何對應的沖突頁面。由此,可假定用戶未調解的較早的沖突頁面不再相關。在一個實施例中,在預定的時間段過去以后,任何被標識為不相關的沖突頁面可被清除,而用戶在該時間段期間已同步了該頁面的修訂。例如,與任何主頁面相關聯(lián)的三個最近期的沖突頁面被保留,而任何其它相關聯(lián)的沖突頁面在自創(chuàng)建起一個月后被清除。
在一個實施例中,沖突頁面不是在實時通信期間創(chuàng)建的,因為與異步通信期間相比,沖突可能更頻繁地發(fā)生。相反,用戶可合作地修訂同一內容容器。任何沖突都可被立即解決,因為所有用戶都可迅速確定他們的修訂是否已被實現(xiàn)?;蛘撸ㄖ挥脩袅硪挥脩粽谛抻喬囟ǖ膬热萑萜???晒膭钤撚脩粼诹硪粋€用戶的修訂完成以前修訂不同的內容容器。
圖5示出用于同步對共享對象的多個用戶修訂的系統(tǒng)的框圖。該系統(tǒng)包括客戶機500、510、540、550和服務器520、530。客戶機500被耦合到服務器520、530??蛻魴C510被耦合到服務器520??蛻魴C540、550被耦合到服務器530??蛻魴C540包括存儲542和子存儲544。服務器520包括存儲522和子存儲524、526。服務器530包括存儲532。存儲532包括副存儲534、536。
存儲522、532,子存儲524、526和副存儲534、536可存儲與共享對象相關聯(lián)的修訂。存儲522、532,子存儲524、526和副存儲534、536是分層結構。例如,存儲522可與整個共享筆記本文檔相關聯(lián)。子存儲524可與共享筆記本文檔的一章相關聯(lián)。子存儲526可與共享筆記本文檔的一頁相關聯(lián)。在一個實施例中,僅頂層共享對象的最近期版本被包括在存儲522中。存儲532可存儲整個頂層共享對象。副存儲534、536與共享對象的各部分相關聯(lián)。例如,副存儲534可與共享對象的一章相關聯(lián),而副存儲536可與共享對象不同的一章相關聯(lián)。
應用程序無需共享對象的特定內容容器的當前版本即可將共享對象從服務器520或服務器530加載到客戶機500。例如,客戶機500向存儲522請求共享對象。該共享對象的最近期的可用版本在客戶機500處存在。共享對象最近期的可用版本可能不對應于共享對象的當前版本,因為最近期版本的數(shù)據(jù)在對應的子存儲526中不可用。子存儲526被賦予請求標簽,以指示客戶機500要求最近期的修訂數(shù)據(jù)以更新共享對象。子存儲526還可被賦予時間戳,它標識客戶機500從子存儲526請求修訂數(shù)據(jù)的時間和日期。子存儲還可被分配GUID,它標識請求該數(shù)據(jù)的客戶機(例如,客戶機500)。請求標簽、時間戳和GUID被用來在另一個客戶機訪問子存儲526時通知客戶機500。例如,客戶機510可用最新修訂的數(shù)據(jù)訪問子存儲526。由此,客戶機500被通知共享對象的最新修訂數(shù)據(jù)在子存儲526中可用。
客戶機500可以是用戶的家庭計算機,而客戶機540可以是用戶的工作計算機。服務器530可以是在客戶機500、540之間傳送修訂文件的交換服務器。修訂文件可被用來更新存儲在客戶機500、550上的共享對象。在一個實施例中,客戶機500被限制不得處理大于預定大小(例如,2兆字節(jié))的文件。例如,客戶機500可包括限制可被接收的電子郵件消息的大小的電子郵件應用程序。存儲542包括與頂層共享對象相關聯(lián)的修訂。子存儲544包括與共享對象的內容容器相關聯(lián)的修訂。
客戶機540可輪詢服務器530以確定是否有另一個客戶機提交了數(shù)據(jù)修訂請求。當被請求的數(shù)據(jù)修訂的最新版本在存儲542或子存儲544中可用時,客戶機540可滿足該請求。如果修訂文件的大小小于客戶機500可處理的限制,則客戶機540可向客戶機500傳送整個所請求的修訂。如果修訂文件的大小大于該限制,則文件可被分成小于該限制的較小的文件?;蛘?,可通過刪除先前的請求來減少修訂文件的大小。然后這些較小的文件通過服務器530從客戶機540發(fā)送到客戶機500。
對修訂數(shù)據(jù)的多個請求可在服務器上等待。在一個實施例中,這些請求可從不同的客戶機(例如,客戶機500、550)作出。每個請求的客戶機可與一不同的文件大小限制相關聯(lián)。例如,客戶機500被限于小于2兆字節(jié)的文件,而客戶機550可處理多達20兆字節(jié)的文件。因此,當修訂文件大于2兆字節(jié)時,不能通過一個傳輸事務來同時滿足兩個請求。在一個實施例中,將一優(yōu)先級位與每個請求的客戶機相關聯(lián),以建立滿足請求的次序。
這些請求是通過將修訂文件與客戶機500、550同步來滿足的。取決于修訂文件的大小,可在一個修訂事務中或通過一系列多個事務來將修訂文件與客戶機500、550同步。當整個修訂被同步時,每個客戶機500、550都確定請求已被滿足??蛻魴C540可清除所請求的數(shù)據(jù),因為請求已被滿足。稍后客戶機540可輪詢服務器530以確定是否有任何其它請求等待滿足。
圖6示出一操作流程圖,該圖示出用于同步對共享對象的多個用戶修訂的過程。該過程在開始框開始,在此多個用戶被授權可同時訪問并修訂共享對象(即,對等組)。對象可以是諸如文件等能夠被共享的任何實體。對等組可由對等組標識符來標識。共享對象的不同版本由對應的GUID和時間戳來標識。時間戳標識共享對象最后與修訂同步的時間。
移到框600,用戶修訂共享對象??稍诜掌魃希诒镜馗咚倬彺嬷?,或在對等網(wǎng)絡上修訂共享對象。在一個實施例中,修訂被存儲為修訂文件。前進至框610,將修訂與GUID和時間戳相關聯(lián)。時間戳標識用戶修訂共享對象的時間。
前進至框620,共享對象的最新版本被定位。共享對象的最新版本是包括與共享對象同步的最近期的修訂并對其它經授權的用戶可用的那個版本。共享對象的最新版本可從與共享對象的不同版本相關聯(lián)的時間戳和GUID確定。
轉移至判定框630,確定是否存在任何沖突的修訂。當不同用戶修訂同一內容容器時,修訂可能會沖突。如果存在沖突的修訂,則不能將修訂與共享對象同步。如果存在沖突的修訂,則處理前進至框640,在此沖突的修訂被調解并合并(如參考圖7所討論的)。如果不存在任何沖突的修訂,則處理前進至框650,在此將修訂與共享對象同步,以使其它用戶可查看該修訂。然后處理在結束框終止。
圖7示出一操作流程圖,該圖示出用于調解并合并對共享對象的多個用戶修訂的過程。該過程在開始框開始,在此一個以上用戶修訂了共享對象中的同一內容容器。當將修訂后的內容容器中的一個與共享對象同步時產生沖突,從而對該內容容器的任何其它修訂都無法被同步。
移到框700,沖突的修訂被顯示在沖突頁面上。沖突頁面和對應的主頁面相似,不同之處在于沖突的修訂被加亮并顯示以代替同步后的修訂以外。
前進至框710,沖突指示器被顯示在共享對象的主頁面上。該沖突指示器可以是下拉菜單、選項卡、或通知用戶主頁面有沖突頁面可用的任何其它機制。與特定用戶相關聯(lián)的沖突頁所用的沖突指示器可與和其它用戶相關聯(lián)的沖突頁面所用的沖突指示器不同,以使當前用戶可迅速標識當前用戶所生成的沖突頁面。
前進至框720,當選擇沖突指示器時,在主頁面旁邊顯示沖突頁面。向用戶同時呈現(xiàn)主頁面的同步后狀態(tài)和對應的沖突頁面兩者。
轉移至框730,用戶調解沖突的修訂并將其合并到主頁面中。在一個實施例中,用戶可選擇內容容器,以使該內容容器與主頁面合并。在另一個實施例中,用戶可直接將修訂實現(xiàn)到主頁面上。在又一個實施例中,用戶可將沖突的修訂標識為不相關的。
前進至框740,被標識為不相關的沖突的修訂被清除。在一個實施例中,沖突的修訂可由用戶標識為不相關的。在另一個實施例中,沖突的修訂可被自動標識為不相關的。例如,用戶可能已將數(shù)個修訂與位于服務器上的共享對象主版本同步,而同時忽略任何對應的沖突頁面。用戶未調解的較早的沖突頁面在預定時間段過去以后被標識為不相關的。然后處理在結束框終止。
圖8示出一操作流程圖,該圖示出用于同步對共享對象的多個用戶修訂的過程。該過程在開始框開始,在此共享對象的不同版本被存儲在整個系統(tǒng)上的不同位置。移至框800,共享對象從存儲被下載到客戶機。
前進至判定框810,確定該共享對象是否是共享對象的當前版本。如果該共享對象是共享對象的當前版本,則處理在結束框終止。如果該共享對象不是共享對象的當前版本,則處理前進至框820。該共享對象可能不是當前版本,因為對共享對象的內容容器最近期的修訂不能從該存儲中獲得。
前進至框820,向該存儲賦予請求標記和客戶機信息,以指示該客戶機要求最近期的修訂以更新共享對象??蛻魴C信息可包括標識請求的客戶機的GUID,以及標識客戶機向存儲請求共享對象的當前版本的時間的時間戳。
轉移至框830,在存儲處接收共享對象的當前版本。當另一個客戶機用最近期的修訂數(shù)據(jù)訪問該存儲時,該存儲可接收共享對象的當前版本。請求的客戶機被通知共享對象的當前版本已被該存儲接收。前進至框840,將共享對象的當前版本與請求的客戶機同步。處理隨即在結束框終止。
圖9示出一操作流程圖,該圖示出用于從異步通信模式無縫地過渡到同步通信模式的過程。該過程在開始框開始,在此建立標識經授權可訪問共享對象的用戶的對等組。
移至框900,客戶機訪問服務器上的共享對象。該客戶機被自動連接到同樣訪問該共享對象的其它客戶機(即,對等組)。令共享對象與清單文件相關聯(lián)。共享對象包括唯一位置標識符,它標識對應的清單文件存儲在系統(tǒng)內的位置。
前進至框910,從由唯一位置標識符所標識的位置檢索清單文件。清單文件標識共享對象的其它版本和實例存儲在系統(tǒng)內的位置。清單文件包括存儲共享對象的一個版本的對等組的對等組標識符。
前進至框920,當對等組中的任何其它客戶機訪問由清單文件所標識的共享對象的一個版本或實例時建立對等網(wǎng)絡。由此,客戶機可從服務器斷開,并繼續(xù)訪問對等網(wǎng)絡上的共享文件。處理隨即在結束框終止。
圖10示出一操作流程圖,該圖示出用于從同步通信模式無縫地過渡到異步通信模式的過程。該過程在開始框開始,在此在至少兩個經授權可訪問共享對象的用戶之間建立對等網(wǎng)絡。
移至框1000,客戶機訪問對等網(wǎng)絡上的共享對象。共享對象與清單文件相關聯(lián)。共享對象包括唯一位置標識符,它標識對應的清單文件存儲在系統(tǒng)中的位置。
前進至框1010,從由唯一位置標識符所標識的位置檢索與共享對象相關聯(lián)的清單文件。清單文件標識共享對象的其它版本和實例存儲在系統(tǒng)內的位置。前進至框1020,客戶機連接到服務器??蛻魴C確定其它哪些客戶機也連接到該服務器。跳至框1030,客戶機標識經授權可從對等網(wǎng)絡訪問共享對象的其它客戶機。前進至框1040,當對等網(wǎng)絡不可用時,客戶機連接到一經授權的客戶機。處理隨即在結束框終止。
以上說明書、實例和數(shù)據(jù)提供了制造和使用本發(fā)明的組成部分的完整描述。因為可作出本發(fā)明的許多實施例而不會偏離本發(fā)明的精神和范圍,所以本發(fā)明駐留在所附權利要求書中。
權利要求
1.一種用于同步對共享對象的多個用戶修訂的計算機實現(xiàn)的方法,包括接收對所述共享對象的修訂;確定所述修訂是否與所述共享對象的主頁面上的已同步修訂沖突;以及當確定所述修訂與所述共享對象的當前版本相關聯(lián),且當確定所述修訂不與已同步修訂沖突時,將所述修訂與所述共享對象同步。
2.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括當確定所述修訂與已同步修訂沖突時,在與所述主頁面相關聯(lián)的沖突頁面上顯示所述修訂;在所述主頁面上顯示沖突指示器,其中,所述沖突指示器指示所述主頁面與所述沖突頁面相關聯(lián);以及將所述修訂合并到所述共享對象中。
3.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,顯示所述修訂還包括在所述沖突頁面上對應于在所述主頁面上顯示所述已同步修訂的位置的位置處顯示所述修訂;以及在所述沖突頁面上加亮所述修訂。
4.如權利要求2所述的計算機實現(xiàn)的方法,其特征在于,還包括在所述沖突指示器被選中時顯示所述沖突頁面和所述相關聯(lián)的主頁面。
5.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括確定所述修訂是否是不相關的;以及清除被確定為不相關的所述修訂。
6.如權利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括在存儲處接收對所述共享對象的當前版本的客戶機請求;在所述存儲處接收所述共享對象的當前版本;以及將所述共享對象的當前版本與所述客戶機同步。
7.如權利要求6所述的計算機實現(xiàn)的方法,其特征在于,所述接收客戶機請求還包括向所述存儲賦予請求標記和客戶機信息。
8.如權利要求6所述的計算機實現(xiàn)的方法,其特征在于,接收所述共享對象的當前版本還包括在另一個客戶機用所述共享對象的當前版本訪問所述存儲時接收所述共享對象的當前版本。
9.一種具有用于同步對共享對象的多個用戶修訂的計算機可執(zhí)行指令的計算機可讀介質,包括接收對所述共享對象的修訂;確定所述修訂是否與所述共享對象的主頁面上的已同步修訂沖突;以及當確定所述修訂與所述共享對象的當前版本相關聯(lián),且當確定所述修訂不與已同步修訂沖突時,將所述修訂與所述共享對象同步。
10.如權利要求9所述的計算機可讀介質,其特征在于,還包括當確定所述修訂與已同步修訂沖突時,在與所述主頁面相關聯(lián)的沖突頁面上顯示所述修訂;在所述主頁面上顯示沖突指示器,其中,所述沖突指示器指示所述主頁面與所述沖突頁面相關聯(lián);以及將所述修訂合并到所述共享對象中。
11.如權利要求10所述的計算機可讀介質,其特征在于,顯示所述修訂還包括在所述沖突頁面上對應于在所述主頁面上顯示所述已同步修訂的位置的位置處顯示所述修訂;以及在所述沖突頁面上加亮所述修訂。
12.如權利要求10所述的計算機可讀介質,其特征在于,還包括在所述沖突指示器被選中時顯示所述沖突頁面和所述相關聯(lián)的主頁面。
13.如權利要求9所述的計算機可讀介質,其特征在于,還包括確定所述修訂是否是不相關的;以及清除被確定為不相關的所述修訂。
14.如權利要求9所述的計算機可讀介質,其特征在于,還包括確定所述修訂是否與所述共享對象的當前版本相關聯(lián)。
15.如權利要求14所述的計算機可讀介質,其特征在于,還包括在存儲處接收對所述共享對象的當前版本的客戶機請求;在所述存儲處接收所述共享對象的當前版本;以及將所述共享對象的當前版本與所述客戶機同步。
16.一種用于同步對共享對象的多個用戶修訂的系統(tǒng),包括用于接收對所述共享對象的修訂的裝置;用于確定所述修訂是否與所述共享對象的主頁面上的已同步修訂沖突的裝置;以及用于在確定所述修訂與所述共享對象的當前版本相關聯(lián),且當確定所述修訂不與已同步修訂沖突時,將所述修訂與所述共享對象同步的裝置。
17.如權利要求16所述的系統(tǒng),其特征在于,還包括用于在存儲處接收對所述共享對象的當前版本的客戶機請求的裝置;用于在所述存儲處接收所述共享對象的當前版本的裝置;以及用于將所述共享對象的當前版本與所述客戶機同步的裝置。
18.如權利要求17所述的系統(tǒng),其特征在于,用于接收客戶機請求的裝置還包括用于向所述存儲賦予請求標記和客戶機信息的裝置。
19.如權利要求17所述的系統(tǒng),其特征在于,用于接收所述共享對象的當前版本的裝置還包括用于在另一個客戶機用所述共享對象的當前版本訪問所述存儲時接收所述共享對象的當前版本的裝置。
20.如權利要求16所述的系統(tǒng),其特征在于,還包括用于確定所述修訂是否與所述共享對象的當前版本相關聯(lián)的裝置。
全文摘要
多個不同的用戶可通過數(shù)種不同傳輸同時訪問、修訂和更新同一共享對象。對共享對象的修訂被自動地同步,以使所有用戶可查看對該共享對象的修訂。沖突的修訂被調解并合并到共享對象的當前版本中。當共享對象的當前版本不能從存儲中獲得時,客戶機可向該存儲請求共享對象的當前版本。當存儲接收到共享對象的當前版本時,可將共享對象的當前版本與客戶機同步。
文檔編號G06F17/30GK1804836SQ20051013166
公開日2006年7月19日 申請日期2005年12月14日 優(yōu)先權日2005年1月14日
發(fā)明者S·P·克拉科, D·拉斯馬森, I·科弗曼 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
渝中区| 泰兴市| 江安县| 雅江县| 通江县| 同仁县| 邓州市| 新龙县| 平顶山市| 盱眙县| 漯河市| 铁岭县| 会泽县| 清远市| 汉寿县| 顺义区| 博乐市| 即墨市| 北票市| 清水河县| 弥勒县| 宜良县| 锡林郭勒盟| 广安市| 乐山市| 明水县| 古交市| 乌鲁木齐市| 沂南县| 康平县| 江安县| 新乡市| 嘉善县| 收藏| 砀山县| 新昌县| 岳普湖县| 叶城县| 定边县| 贵阳市| 商河县|