專利名稱:同步化管理器沖突解決的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施方式涉及內(nèi)容解決的系統(tǒng)和方法,尤其涉及在同步管理器內(nèi)提 供用戶友好內(nèi)容解決的系統(tǒng)和方法。
背景技術(shù):
當(dāng)前環(huán)境中的計(jì)算機(jī)用戶可以使用許多不同的計(jì)算設(shè)備。例如,計(jì)算機(jī)用戶 可以使用固定計(jì)算機(jī)終端、膝上型計(jì)算機(jī)和黑莓或其它移動(dòng)設(shè)備。通常,這些計(jì)算 設(shè)備用于存儲(chǔ)類似或相關(guān)的信息。例如,可在固定計(jì)算機(jī)終端、膝上型計(jì)算機(jī)和移 動(dòng)設(shè)備上呈現(xiàn)存儲(chǔ)用戶預(yù)約日程的日歷。另一示例,文檔可存儲(chǔ)在固定計(jì)算機(jī)終端 上并可被拷貝到膝上型計(jì)算機(jī),用戶可在其上編輯該文檔。在更新或更改一個(gè)設(shè)備上的信息之后,用戶可能希望將更新的信息轉(zhuǎn)移到另 一設(shè)備。例如,在向移動(dòng)設(shè)備上存儲(chǔ)的日歷鍵入新預(yù)約之后,用戶希望將新信息轉(zhuǎn) 移到計(jì)算機(jī)終端存儲(chǔ)的日歷上。另一示例,在對膝上型計(jì)算機(jī)上的文檔進(jìn)行編輯之 后,用戶希望將已編輯文檔轉(zhuǎn)移到固定計(jì)算機(jī)上。還存在其它示例。為了在設(shè)備之間轉(zhuǎn)移信息,用戶選擇將兩個(gè)或多個(gè)設(shè)備同步化或"sync"。 一 個(gè)或多個(gè)設(shè)備包括進(jìn)行同步化操作的"同步化管理器"。當(dāng)兩個(gè)設(shè)備被同步化時(shí), 通常要確定哪個(gè)設(shè)備包含最近的信息。具有最近信息的設(shè)備可例如向其它設(shè)備轉(zhuǎn)移"(曰息。同步化在網(wǎng)絡(luò)應(yīng)用中同樣有用。例如,兩個(gè)或多個(gè)用戶可訪問網(wǎng)絡(luò)化計(jì)算環(huán) 境中的同一文檔、日歷或其它信息。同步化可在這種環(huán)境中使用來確保使用該信息 的最近拷貝。當(dāng)存在一個(gè)以上的信息版本時(shí),同步化管理器通常嘗試確定哪個(gè)版本是最近 的。例如,在移動(dòng)設(shè)備和固定計(jì)算機(jī)終端之間進(jìn)行同步化操作之前,用戶可向移動(dòng) 設(shè)備上的日歷鍵入新預(yù)約。另一示例,在膝上型計(jì)算機(jī)與固定計(jì)算機(jī)終端之間進(jìn)行 同步化操作之后,用戶可對膝上型計(jì)算機(jī)上的文檔進(jìn)行修改。在許多情形中,同步 化管理器可確定在沒有任何用戶輸入的情況下保留哪個(gè)信息版本。例如,同步化管 理器確定哪個(gè)信息版本最近被編輯過,并且僅保留最近版本。然而,在某些情形中,應(yīng)該保留哪個(gè)信息版本并不總是顯而易見的。這種情 況稱為沖突。沖突可能發(fā)生在例如自上次同步化操作以來一個(gè)以上的信息版本被編 輯過時(shí)。例如,在移動(dòng)設(shè)備與固定計(jì)算機(jī)終端之間進(jìn)行同步化操作之后,用戶可向 移動(dòng)設(shè)備上的日歷鍵入一個(gè)新預(yù)約,并向固定計(jì)算機(jī)終端上的日歷鍵入另一新預(yù) 約。另一示例,在膝上型計(jì)算機(jī)與固定計(jì)算機(jī)終端之間進(jìn)行同步化操作之后,用戶 可對膝上型計(jì)算機(jī)上的文檔進(jìn)行修改并對固定計(jì)算機(jī)終端上的文檔進(jìn)行不同的修 改。在沖突的情形中,通常提醒用戶鍵入用來解決沖突的輸入。例如,詢問用戶是 否保留第一信息版本、保留第二信息版本、通過對一個(gè)重命名來保留兩個(gè)版本、或 者手動(dòng)解決沖突。如果用戶選擇手動(dòng)解決沖突,可向用戶呈現(xiàn),例如,進(jìn)一步的選 項(xiàng),諸如呈現(xiàn)有差異列表并詢問如何解決每一個(gè)。例如,可詢問用戶保留還是刪除 鍵入到手持設(shè)備的第一約會(huì),并且詢問保留還是刪除鍵入到固定計(jì)算機(jī)終端的第二 約會(huì)。另一示例,可經(jīng)由膝上型計(jì)算機(jī)向用戶呈現(xiàn)對文檔進(jìn)行的修改的列表以及經(jīng) 由固定計(jì)算機(jī)終端向用戶呈現(xiàn)對文檔進(jìn)行的修改的列表,并詢問保留還是刪除各個(gè) 修改。無論是自動(dòng)或通過用戶輸入,確定保留哪個(gè)(哪些)文件的進(jìn)程被視為對文 件進(jìn)行協(xié)調(diào)。在某些情形中,在協(xié)調(diào)文件時(shí)可發(fā)生沖突。在這情形中,通常需要用 戶輸入來協(xié)調(diào)這些文件。在其它情形中,在協(xié)調(diào)文件時(shí)沒有沖突發(fā)生,例如因?yàn)樽?上次同步化操作之后僅編輯過一個(gè)文件版本,或者因?yàn)樽陨洗瓮交僮髦鬀]有 編輯過文件版本。在這種情形中,在協(xié)調(diào)文件時(shí)通常不需要用戶輸入。通常,用戶可將第一設(shè)備連接到第二設(shè)備以開始同步化操作。例如,用戶可 將手持設(shè)備放在連接到計(jì)算機(jī)終端的托架上、可將膝上型計(jì)算機(jī)連接到固定計(jì)算機(jī) 終端等。然后同步化管理器開始協(xié)調(diào)文檔的不同版本。在某些情況下,同步化管理 器可諸如通過確定哪個(gè)信息版本最近被編輯過來協(xié)調(diào)文檔版本而無需用戶輸入。在 其它情況下,無用戶輸入時(shí)同步化管理器不能協(xié)調(diào)文檔版本,從而,發(fā)生沖突。當(dāng)同步化管理器遇到?jīng)_突時(shí),同步化管理器將,例如,中斷同步化操作并提 醒用戶輸入。然后需要用戶提供輸入以在重新開始同步化操作之前解決沖突。因?yàn)樾枰脩粼谥匦麻_始同步化操作之前提供輸入,所以用戶可發(fā)現(xiàn)同步化 操作是耗時(shí)且苛求的。因此,本領(lǐng)域中存在對不需要及時(shí)用戶輸入的同步化操作的 需要。此外,因?yàn)楦鱾€(gè)設(shè)備可包括其自己的同步化管理器,所以沖突解決的用戶接 口和方法可隨設(shè)備不同而大不相同。這對用戶造成分裂和混淆的體驗(yàn)。因此,存在 對標(biāo)準(zhǔn)化同步化操作的需要。此外,因?yàn)樾枰脩粢来瓮礁鱾€(gè)設(shè)備并為各個(gè)同步化操作提供輸入,所以 同步化一個(gè)以上的設(shè)備對用戶而言是麻煩而費(fèi)力的。因此本領(lǐng)域中需要允許用戶快 速、容易地解決源自許多設(shè)備的沖突的集中位置。發(fā)明內(nèi)容本發(fā)明的實(shí)施方式包括進(jìn)行同步化操作的方法。該方法可包括接收第一文件、 接收第二文件、以及確定第一文件與第二文件之間是否存在沖突。該方法還包括, 如果不存在沖突則協(xié)調(diào)第一文件和第二文件,而且如果存在沖突則創(chuàng)建標(biāo)識(shí)第一文 件和第二文件的沖突對象并指定至少一種方法來解決沖突。在本發(fā)明的另一方面,進(jìn)行沖突解決的方法可包括從用戶接收指示沖突解決 將要開始的選擇、顯示描述第一文件的第一文件信息、顯示描述第二文件的第二文 件信息、以及顯示至少一個(gè)沖突解決選項(xiàng),其中各個(gè)沖突解決選項(xiàng)標(biāo)識(shí)解決沖突的 一種可能方法。在本發(fā)明又一方面,進(jìn)行同步化操作的系統(tǒng)可包括同步化管理器,該同步化 管理器配置成比較第一文件與第二文件、確定第一文件與第二文件之間是否存在沖 突、如果不存在沖突則協(xié)調(diào)第一文件與第二文件、以及如果存在沖突則創(chuàng)建沖突對 象。該系統(tǒng)還包括配置成保持沖突對象的沖突存儲(chǔ)和指定解決沖突的至少一種方法 的解析器。以上系統(tǒng)和方法實(shí)現(xiàn)了不需要用戶及時(shí)輸入而允許用戶在方便的時(shí)間在線或 離線解決未決沖突的同步化操作。此外,本發(fā)明的系統(tǒng)和方法可為開發(fā)標(biāo)準(zhǔn)化的、 用戶友好的同步化操作提供平臺(tái)。此外,本發(fā)明的系統(tǒng)和方法可提供允許用戶快速、 容易地解決源自許多設(shè)備的沖突的集中位置。
下面參考附圖詳細(xì)描述本發(fā)明,在附圖中圖1是示出根據(jù)本發(fā)明一實(shí)施方式的系統(tǒng)總覽的框圖;圖2是示出實(shí)現(xiàn)本發(fā)明實(shí)施方式的計(jì)算機(jī)化環(huán)境的框圖;圖3是根據(jù)本發(fā)明一實(shí)施方式進(jìn)行同步化操作的方法的流程圖;圖4是示出根據(jù)本發(fā)明一實(shí)施方式進(jìn)行沖突解決的方法的流程圖; 圖5-6示出根據(jù)本發(fā)明一實(shí)施方式的示例性圖形用戶界面(GUI)窗口。
具體實(shí)施方式
I.系統(tǒng)總覽提供實(shí)現(xiàn)沖突解決管理器的系統(tǒng)和方法。沖突解決管理器可用于解決在同步 化操作過程中發(fā)生的沖突。系統(tǒng)可包括含有同步化管理器201的終端200。終端200可分別經(jīng)由耦連206、 208連接于一個(gè)或多個(gè)設(shè)備202、 204。各個(gè)設(shè)備202、 204可以是或者包括,例如, 移動(dòng)通信設(shè)備、膝上型計(jì)算機(jī)、游戲設(shè)備、相機(jī)、計(jì)算機(jī)終端等。設(shè)備202可包括 一個(gè)或多個(gè)文件210a、 212a,且設(shè)備204可包括一個(gè)或多個(gè)文件214a、 216a。文 件210a、 212a、 214a、 216a可分別是,例如,存儲(chǔ)在終端200上的文件210b、 212b、 214b、 216b的版本。因此,文件210a、 212a、 214a、 216a可分別與文件210b、 212b、 214b、 216b相同或相似。當(dāng)例如用戶將設(shè)備202經(jīng)由耦連206連接到終端200和/或?qū)⒃O(shè)備204經(jīng)由耦 連208連接到終端200時(shí),同步化操作開始。此時(shí),同步化管理器201嘗試對存儲(chǔ) 在設(shè)備202中的文件210a、 212a與存儲(chǔ)在終端200中的文件210b、 212b進(jìn)行協(xié)調(diào); 和/或嘗試對存儲(chǔ)在設(shè)備204中的文件214a、216a與存儲(chǔ)在終端200中的文件214b、 216b進(jìn)行協(xié)調(diào)。同步化管理器201包括包含用于協(xié)調(diào)文件的方法的解析器應(yīng)用程序接口(API) 218。解析器API 218可包括,例如,作為用于協(xié)調(diào)文件的默認(rèn)解析器的通用解析 器220。解析器API218還可以是或者包括可擴(kuò)展API,例如,可被擴(kuò)展來為特定 設(shè)備和/或應(yīng)用程序創(chuàng)建專用解析器。作為特定示例,Word開發(fā)者可編寫允許用戶 解決Word文檔之間沖突的沖突管理器。如圖1所示,專用解析器222可以是用于 協(xié)調(diào)來自設(shè)備202的文件的解析器API218的擴(kuò)展。專用解析器222可,例如,存 儲(chǔ)在終端200、設(shè)備202、或兩個(gè)位置上。另一示例,專用解析器224可以是用于 協(xié)調(diào)諸如在特定應(yīng)用程序中創(chuàng)建的文件的特定類型文件的解析器API 218的擴(kuò)展。 專用解析器224可,例如,存儲(chǔ)在終端200、設(shè)備204、或兩個(gè)位置上。當(dāng)進(jìn)行同步化操作時(shí),同步化管理器201對文件210a、212a與文件210b、212b 進(jìn)行協(xié)調(diào)和/或?qū)ξ募?14a、 216a與文件214b、 216b進(jìn)行協(xié)調(diào)。如果定義專用解 析器222或224來處理正在進(jìn)行的特定文件協(xié)調(diào),則可使用專用解析器222或224。 如果未定義專用解析器222或224來處理正在進(jìn)行的特定文件協(xié)調(diào),則可使用通用
解析器220。在其它情形中,同步化管理器201可在沒有其它解析器的情況下協(xié)調(diào)文件。同步化管理器201例如使用在同步化管理器201內(nèi)提供的方法和/或使用在解 析器220、 222和/或224中提供的方法來進(jìn)行文件協(xié)調(diào)。如果同步化管理器201能 確定保留哪個(gè)文件,則同步化管理器201,例如,通過保留最近文檔版本來自動(dòng)進(jìn) 行文件協(xié)調(diào)。如果同步化管理器201不能確定保留哪個(gè)文件版本,則發(fā)生沖突。當(dāng)發(fā)生沖突時(shí),同步化管理器201創(chuàng)建沖突對象226、 228、 230、 232。各個(gè) 沖突對象226、 228、 230、 232包含指定兩個(gè)文件之間沖突的信息。例如,沖突對 象226可包含指定文件210a和210b之間沖突的信息、沖突對象228可包含指定文 件212a和212b之間沖突的信息、沖突對象230可包含指定文件214a與214b之間 沖突的信息、以及沖突對象232可包含指定文件216a與216b之間沖突的信息。沖突對象226、 228、 230、 232中包含的信息可包括,例如,在沖突發(fā)生時(shí)指 定沖突中文件的信息以及沖突中涉及的設(shè)備。沖突對象226、 228、 230、 232中包 含的信息還包括,例如,標(biāo)識(shí)沖突中兩個(gè)文件或沖突中文件的拷貝的信息。沖突對 象226、 228、 230、 232中包含的信息還可包括,例如,指定用于解決沖突的解析 器220、 222或224的信息。例如,沖突對象226、 228、 230、 232可存儲(chǔ)在終端200內(nèi)的沖突存儲(chǔ)234中。 可任選地,沖突對象226、 228、 230、 232中的一些或全部也可存儲(chǔ)在設(shè)備202和/ 或設(shè)備204上。設(shè)備202和/或設(shè)備204可分別包含,例如,沖突存儲(chǔ)236、 238來 存儲(chǔ)沖突對象226、 228、 230、 232。當(dāng)在同步化操作過程中發(fā)生沖突時(shí),同步化管理器201創(chuàng)建沖突對象226、 228、 230、 232并重新開始同步化操作。在本發(fā)明實(shí)施方式中,同步化操作過程中 不需要用戶輸入。同步化管理器201可包括沖突管理器用戶接口 240和顯示242。當(dāng)檢測到一個(gè) 或多個(gè)沖突時(shí),沖突管理器UI可例如使用系統(tǒng)托盤中的圖標(biāo)或任何其它適當(dāng)手段 經(jīng)由顯示242而指示。在方便的時(shí)間,用戶可例如通過雙擊圖標(biāo)來選擇解決未決沖當(dāng)用戶選擇解決未決問題時(shí),沖突管理器UI 240經(jīng)由顯示242向用戶呈現(xiàn)未 決沖突的列表。未決沖突列表包括例如沖突存儲(chǔ)234中各個(gè)沖突對象226、 228、 230、 232的列表入口。對于各個(gè)列表入口,用戶可例如通過雙擊列表入口來選擇 解決沖突。然后,提醒用戶例如使用沖突對象226、 228、 230或232中指定的解析
器220、 222、或224來解決沖突。沖突管理器UI 240可經(jīng)由顯示242向用戶呈現(xiàn)若干解決選項(xiàng)。呈現(xiàn)給用戶的 解決選項(xiàng)可由解析器220、 222或224指定。解決選項(xiàng)可包括例如保留第一文件版 本的選項(xiàng)、保留第二文件版本的選項(xiàng)、通過重命名一個(gè)而保留兩個(gè)版本的選項(xiàng)、通 過使用特定應(yīng)用程序而手動(dòng)解決差異的選項(xiàng)、和/或由解析器220、 222或224指定 的任何其它解決選項(xiàng)。用戶可解決一個(gè)或多個(gè)沖突并選擇保持剩余沖突待以后解決。在本發(fā)明的實(shí) 現(xiàn)中,不要求用戶在任何特定時(shí)間決定解決沖突。此外,用戶可選擇在設(shè)備202、 204未連接到設(shè)備200時(shí)解決沖突。用戶從所 呈現(xiàn)的解決選項(xiàng)選擇,并在下一次同步化操作時(shí),將實(shí)現(xiàn)用戶的選擇以解決沖突。在本發(fā)明的實(shí)現(xiàn)中,諸如系統(tǒng)管理員的用戶可提供輸入,該輸入預(yù)先指定待 解決何種特定類型的沖突。提供這種輸入可被視為對特定類型的沖突創(chuàng)建"沖突策 略"。當(dāng)檢測到?jīng)_突并且存在處理特定類型沖突的沖突策略時(shí),系統(tǒng)可在例如無需 用戶輸入的情況下根據(jù)該策略解決沖突。作為一個(gè)特定示例,系統(tǒng)管理員可通過為 特定文件夾中的Word文檔指定應(yīng)保留兩個(gè)文件版本、以及應(yīng)向文件名中附加詞 "vl"和"v2"來修改兩個(gè)文件名來創(chuàng)建沖突策略。當(dāng)該文件夾中的Word文檔之 間發(fā)生沖突時(shí),該沖突可例如根據(jù)沖突策略且無需用戶輸入而得以解決。此外,設(shè)備202可任選地包括用于經(jīng)由設(shè)備202上顯示246向用戶呈現(xiàn)解決 選項(xiàng)的沖突管理器UI 244,且設(shè)備204可任選地包括用于經(jīng)由設(shè)備204上顯示250 向用戶呈現(xiàn)解決選項(xiàng)的沖突管理器UI248。用戶在設(shè)備202、 204上做的選擇可在 下次同步化操作時(shí)實(shí)現(xiàn)。II.示例性操作環(huán)境圖2示出其上可實(shí)現(xiàn)沖突解決系統(tǒng)的適當(dāng)計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系 統(tǒng)環(huán)境IOO僅是適當(dāng)計(jì)算環(huán)境的一個(gè)示例,并不旨在對本發(fā)明的使用或功能范圍進(jìn) 行任何限制。計(jì)算環(huán)境100也不應(yīng)解釋為具有關(guān)于示例性計(jì)算環(huán)境100中所述部件 中任一個(gè)或組合的任何依賴或要求。在可由計(jì)算機(jī)執(zhí)行的諸如程序模塊的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述 本發(fā)明。通常,程序模塊包括完成特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、 對象、部件、數(shù)據(jù)結(jié)構(gòu)等。此外,本領(lǐng)域技術(shù)人員應(yīng)該理解,本發(fā)明可通過其它計(jì) 算機(jī)系統(tǒng)配置實(shí)施,包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的消費(fèi)
電子設(shè)備、微型計(jì)算機(jī)、大型計(jì)算機(jī)等。也可在分布式計(jì)算環(huán)境中實(shí)施本發(fā)明,其 中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備完成。在分布式計(jì)算環(huán)境中,程序模塊 可位于包括存儲(chǔ)器存儲(chǔ)器件的局域和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參照圖2,實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)100包括計(jì)算機(jī)100形式的通用計(jì)算設(shè)備,計(jì)算機(jī)IIO包括處理單元120、系統(tǒng)存儲(chǔ)器130和將包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)部 件耦連于處理單元120的系統(tǒng)總線121。計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀 介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信媒介。系統(tǒng)存儲(chǔ)器130包括諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132的易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī) 存儲(chǔ)介質(zhì)。包含諸如在啟動(dòng)過程中幫助在計(jì)算機(jī)110內(nèi)元件之間轉(zhuǎn)移信息的基本例 程的基本輸入/輸出系統(tǒng)133 (BIOS)通常存儲(chǔ)在ROM 131上。RAM 132通常包 含可由處理單元120及時(shí)訪問和/或正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例 而非限制,圖2示出操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù) 137。計(jì)算機(jī)110還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。 僅作為示例,圖2示出向不可移動(dòng)、非易失性磁性介質(zhì)讀寫的硬盤驅(qū)動(dòng)器141、向 可移動(dòng)、非易失性磁盤152讀寫的磁盤驅(qū)動(dòng)器151、和向諸如CD ROM或其它光 學(xué)介質(zhì)的可移動(dòng)、非易失性磁盤156讀寫的光盤驅(qū)動(dòng)器155??稍谑纠圆僮鳝h(huán)境 中使用的其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不局限 于磁帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬 盤驅(qū)動(dòng)器141通常通過諸如接口 140的不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121, 且磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常通過諸如接口 150的可移動(dòng)存儲(chǔ)器接口連 接到系統(tǒng)總線121。上述和圖2所示的驅(qū)動(dòng)器及其關(guān)聯(lián)計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供計(jì)算機(jī) 可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。在圖2中,例如硬盤驅(qū)動(dòng)器 141示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注 意,這些部件可與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137 相同或不同。在此向操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù) 147給出不同附圖標(biāo)記以至少說明它們是不同的拷貝。用戶可通過諸如鍵盤162和 通常是指鼠標(biāo)、跟蹤球或觸摸板的指點(diǎn)器件161的輸入器件向計(jì)算機(jī)110鍵入命令 和信息。其它輸入器件(未示出)可包括話筒、操縱桿、游戲手柄、衛(wèi)星盤、掃描
儀等。這些和其它輸入器件通常通過連接于系統(tǒng)總線的用戶輸入接口 160連接到處理單元120,但是可由諸如并行端口、游戲端口或通用串行總線(USB)的其它接 口和總線結(jié)構(gòu)鏈接。監(jiān)視器191或其它類型的顯示器件也可經(jīng)由諸如視頻接口 190 的接口連接到系統(tǒng)總線121。除了監(jiān)視器之外,計(jì)算機(jī)還可包括可通過輸出外圍接 口 195連接的諸如揚(yáng)聲器197和打印機(jī)196的其它外圍輸出設(shè)備。本發(fā)明中的計(jì)算機(jī)110在使用邏輯連接到一個(gè)或多個(gè)諸如遠(yuǎn)程計(jì)算機(jī)180的 遠(yuǎn)程計(jì)算機(jī)的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī),并且通常包 括以上相關(guān)于計(jì)算機(jī)110描述的元件中的多個(gè)或全部,盡管在圖2中僅示出存儲(chǔ)器 存儲(chǔ)器件181。圖2所描繪的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但是還可包括其它網(wǎng)絡(luò)。當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接到 LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或 在諸如因特網(wǎng)的WAN 173上建立通信的其它裝置。內(nèi)置或外置的調(diào)制解調(diào)器172 可以經(jīng)由用戶輸入接口 160或其它適當(dāng)機(jī)制連接到系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中, 相關(guān)于計(jì)算機(jī)110或其多個(gè)部分描述的程序模塊可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)器件中。 作為示例而非限制,圖2示出駐留在存儲(chǔ)器件181上的遠(yuǎn)程應(yīng)用程序185。應(yīng)該理 解,所示網(wǎng)絡(luò)連接是示例性的,并且可使用在計(jì)算機(jī)之間建立通信鏈接的其它手段。雖然并未示出計(jì)算機(jī)110的其它內(nèi)部部件,但是本領(lǐng)域普通技術(shù)人員應(yīng)該理 解,這種部件和相互連接是公知的。因此,關(guān)于計(jì)算機(jī)110內(nèi)部構(gòu)建的其它細(xì)節(jié)無 需與本發(fā)明關(guān)聯(lián)地公開。III.本發(fā)明的系統(tǒng)和方法如上所述,圖1示出根據(jù)本發(fā)明一實(shí)施方式實(shí)現(xiàn)包括沖突解決功能的同步化 管理器的系統(tǒng)。如上所述,參照圖2,該系統(tǒng)可包括一個(gè)或多個(gè)用戶計(jì)算機(jī)。圖3是示出根據(jù)本發(fā)明一實(shí)施方式進(jìn)行同步化操作的方法的流程圖。如圖3 所示,用戶通過連接兩個(gè)或以上的設(shè)備300而開始。連接兩個(gè)或以上的設(shè)備300 可包括,例如將移動(dòng)設(shè)備連接于固定計(jì)算機(jī)終端、將計(jì)算機(jī)終端連接于網(wǎng)絡(luò)、或進(jìn) 行任何其它類似連接。該方法的余項(xiàng)可在例如已連接設(shè)備之一上進(jìn)行。然而,在其 它實(shí)現(xiàn)中,該方法在兩個(gè)或以上的設(shè)備上進(jìn)行。該方法在步驟302繼續(xù),其中確定已連接設(shè)備是否包含任何待協(xié)調(diào)文件。如 果沒有文件要協(xié)調(diào),則該方法結(jié)束。 如果存在待同步化的文件,在步驟304,例如從遠(yuǎn)程設(shè)備檢索文件。在步驟306,檢索到的文件可與局域文件進(jìn)行比較。局域文件是例如檢索到的文件的一個(gè)版本,且這樣,可與檢索到的文件相似或相同。在步驟308,確定檢索到的文件與局域文件之間是否存在沖突。如果不存在沖 突,則不需要用戶輸入來例如協(xié)調(diào)文件。例如如果文件相同或自上次同步化操作以 來僅有文件之一被編輯過,則這屬于這種情況。如果不存在沖突,則在步驟310 自動(dòng)協(xié)調(diào)文件,且該方法返回步驟302,其中確定是否還有要協(xié)調(diào)的文件。如果在步驟308確定存在沖突,則在步驟312創(chuàng)建沖突對象。所創(chuàng)建的沖突 對象可以是例如以上如圖1所述的沖突對象。沖突對象包含例如可用于以后解決沖 突的信息。沖突對象可存儲(chǔ)在一個(gè)或多個(gè)沖突存儲(chǔ)中。然后,該方法在步驟302 繼續(xù),其中確定是否有要協(xié)調(diào)的任何其它文件。圖4是示出根據(jù)本發(fā)明一實(shí)施方式進(jìn)行沖突解決的方法的流程圖。如圖4所 示,該方法可在步驟400開始,其中用戶可例如通過雙擊系統(tǒng)托盤中的圖標(biāo)或通過 某種其它適當(dāng)方法來選擇解決沖突。在步驟402,可向用戶呈現(xiàn)未決沖突列表。未 決沖突列表可以是例如沖突存儲(chǔ)中所有沖突對象的列表,并且可表示仍待解決的所 有沖突的列表。在步驟404,用戶可通過雙擊沖突或通過某種其它適當(dāng)方法從沖突列表選擇沖 突?;蛘?,用戶拒絕選擇沖突并取而代之地選擇終止沖突解決。如果用戶選擇終止 沖突解決,則沖突存儲(chǔ)中的沖突對象未被修改,且用戶可在以后解決沖突存儲(chǔ)中的 任何未決沖突。如果在步驟404用戶從沖突列表選擇沖突,則向用戶呈現(xiàn)GUI。該GUI可由 例如沖突管理器UI呈現(xiàn)。沖突管理器UI可例如查詢沖突對象以確定哪個(gè)解析器 適于解決該沖突。向用戶呈現(xiàn)的GUI可包括例如由適當(dāng)解析器指定的解決沖突的 一個(gè)或多個(gè)選項(xiàng)。例如,可詢問用戶保留一個(gè)文件版本、保留第二文件版本、通過 重命名一個(gè)而保留兩個(gè)版本、通過使用特定應(yīng)用程序手動(dòng)解決沖突、或進(jìn)行由解析 器指定的某些其它形式的沖突解決。在步驟410,以用戶指定的方式協(xié)調(diào)文件。在步驟412,從沖突存儲(chǔ)中移除表 示該沖突的沖突對象。這可包括例如刪除沖突對象、標(biāo)識(shí)已完成的沖突對象、或某 些其它適當(dāng)方法。將沖突從沖突存儲(chǔ)移除表示已解決了該沖突。在步驟414,向用戶呈現(xiàn)解決另一沖突的選項(xiàng)。如果用戶不期望解決另一沖突, 則該方法結(jié)束。如果用戶期望解決另一沖突,則該方法返回到步驟402,其中向用 戶呈現(xiàn)未決沖突列表。圖5示出根據(jù)本發(fā)明一實(shí)施方式向用戶顯示的示例性GUI窗口 500。如圖5 所示,可例如經(jīng)由系統(tǒng)托盤504中的圖標(biāo)502提醒用戶存在未決沖突的事實(shí)。例如, 圖標(biāo)502可以以特定顏色顯示,傳遞存在未決沖突的信號(hào)。用戶可通過例如雙擊圖 標(biāo)502或通過某些其它適當(dāng)方法調(diào)用沖突管理器。當(dāng)用戶調(diào)用沖突管理器時(shí),可向用戶呈現(xiàn)沖突管理器GUI屏幕500,如圖5 所示,可實(shí)現(xiàn)為例如對話框。沖突管理器GUI屏幕500可呈現(xiàn)未決沖突列表。對 于各個(gè)未決沖突,沖突管理器GUI屏幕506可顯示標(biāo)識(shí)沖突的信息,諸如沖突中 的文件名、沖突中涉及的設(shè)備、檢測到?jīng)_突的時(shí)間、沖突中文件之一的最近編輯時(shí) 間、或任何其它相關(guān)信息。如果用戶期望解決沖突,則用戶例如通過雙擊沖突列表中一沖突或通過某些 其它適當(dāng)方式來指示。然后向用戶呈現(xiàn)圖6的沖突解決GUI屏幕600。圖6示出根據(jù)本發(fā)明一實(shí)施方式可向用戶顯示的示例性GUI窗口 600。如圖6 所示,向期望解決特定沖突的用戶呈現(xiàn)GUI窗口 600,該窗口可實(shí)現(xiàn)成例如對話框。 GUI窗口 600可顯示關(guān)于沖突中兩個(gè)文件的信息。此外,GUI窗口 600可顯示如 解析器指定的解決未決沖突的各種選項(xiàng)。例如,GUI窗口 600可顯示表示第一文件版本的第一圖標(biāo)602和表示第二文 件版本的第二圖標(biāo)604。如果用戶期望查看每個(gè)文件,則用戶可例如通過雙擊第一 圖標(biāo)602或第二圖標(biāo)604來實(shí)現(xiàn)。GUI窗口 600也可顯示描述第一文件的信息606 和描述第二文件的信息608。例如,可動(dòng)態(tài)地選擇信息606和608中的某些或全部 以顯示第一文件與第二文件之間的差異。例如,如果確定第一文件606和第二文件 608具有不同的作者,則可顯示各個(gè)文件的作者信息。因此,可向用戶呈現(xiàn)對確定 如何解決該沖突有幫助的信息。此外,GUI窗口 600可向用戶呈現(xiàn)解決沖突的一個(gè)或多個(gè)選項(xiàng)610。例如,可 以由解析器指定向用戶呈現(xiàn)的選項(xiàng)610。用戶可選擇例如保留第一文件版本、保留 第二文件版本、通過重命名一個(gè)而保留兩個(gè)版本、或使用所專用的方法解決文件。 在GUI窗口 600中顯示的專用方法可以是例如由解析器指定的方法,并且可針對 特定設(shè)備或針對確定應(yīng)用程序或文件類型,諸如針對Word文檔。如果用戶選擇保留第一版本或保留第二版本,則可在例如沒有任何用戶進(jìn)一 步輸入的情況下進(jìn)行沖突解決。如果用戶選擇通過重命名一個(gè)來保留兩個(gè)版本,則 通過諸如雙擊圖標(biāo)602、 604之一或通過某些其它適當(dāng)方式來對GUI窗口 600內(nèi)的
文件之一進(jìn)行重命名而向用戶提供。如果用戶選擇使用解析器指定的專用方法解決沖突,則作為特定示例,使用MS Word解決沖突可涉及例如向用戶呈現(xiàn)包含突出 顯示的修改或差異的Word文檔,并提醒用戶接受或拒絕各個(gè)修改或差異。圖5-6所示的GUI窗口僅為說明性的,而不旨在限制本發(fā)明。其它用戶界面 也是可能的,并在本發(fā)明的范圍內(nèi)。例如,可預(yù)期的是沖突解決的用戶界面可以實(shí) 現(xiàn)成"向?qū)?wizard)"類型的界面,使得可使用一個(gè)窗口框架來依次顯示每個(gè)沖 突,并使得用戶可使用"前進(jìn)"和"后退"按鈕在沖突中導(dǎo)航。其它界面也是可能 的。雖然本文詳細(xì)示出和描述了本發(fā)明的特定實(shí)施方式,但是應(yīng)該理解,可對本 發(fā)明進(jìn)行各種變化和更改而不背離本發(fā)明的范圍和目的。例如,雖然本發(fā)明主要就 連接于固定計(jì)算機(jī)終端的移動(dòng)設(shè)備而描述,但是本發(fā)明同樣適于其它環(huán)境,諸如計(jì) 算機(jī)終端網(wǎng)絡(luò)或其它適當(dāng)環(huán)境。此外,雖然設(shè)備描述成經(jīng)由耦連連接,但是諸如無 線通信的任何通信方法也是適用的。本文所述實(shí)施方式完全旨在說明性而非限制 性。本發(fā)明在不偏離其范圍的情況下的替代實(shí)施方式對于所屬領(lǐng)域中的技術(shù)人員將 變得顯而易見。此外,雖然本發(fā)明就解決兩個(gè)文件之間的沖突或協(xié)調(diào)兩個(gè)文件而描述,但是 協(xié)調(diào)三個(gè)或以上的文件也在本發(fā)明的范圍內(nèi)。這種情況可在例如三個(gè)或以上的用戶 各自更改相同或相似文件時(shí)、或在其它情況下出現(xiàn)。在n-路沖突的情形中(其中n 是大于2的整數(shù)),系統(tǒng)將選擇適當(dāng)?shù)慕馕銎骱陀脩艚缑鎭韰f(xié)調(diào)文件。在n-路沖突 解決中向用戶呈現(xiàn)的GUI可顯示例如沖突中兩個(gè)最近文件版本,并允許用戶選擇 查看沖突中更老文件版本的選項(xiàng)。如上所述,可以看出本發(fā)明很適于達(dá)到上述所有目的和主題以及對于該系統(tǒng) 和方法顯而易見和固有的其它優(yōu)點(diǎn)。應(yīng)該理解,某些特征和子組合同樣有用,并且 可在不參照其它特征和子組合的情況下使用。這是可以預(yù)期的并落在所附權(quán)利要求 書的范圍內(nèi)。
權(quán)利要求
1.一種進(jìn)行同步化操作的方法,所述方法包括接收第一文件;接收第二文件;確定所述第一文件與第二文件之間是否存在沖突;如果不存在沖突,則協(xié)調(diào)第一文件與第二文件;以及如果存在沖突,則創(chuàng)建標(biāo)識(shí)所述第一文件和所述第二文件的沖突對象并指定至少一種解決所述沖突的方法。
2. 如權(quán)利要求l所述的方法,其特征在于,還包括在由用戶選擇的時(shí)刻從所 述用戶接收沖突解決輸入。
3. 如權(quán)利要求1所述的方法,其特征在于,所述第一文件是從外部設(shè)備接收的。
4. 如權(quán)利要求1所述的方法,其特征在于,所述第二文件是從外部設(shè)備接收的。
5. 如權(quán)利要求l所述的方法,其特征在于,所述第一文件是經(jīng)由網(wǎng)絡(luò)接收的。
6. 如權(quán)利要求1所述的方法,其特征在于,所述第二文件是從邏輯存儲(chǔ)接收的。
7. 如權(quán)利要求l所述的方法,其特征在于,確定所述第一文件與所述第二文 件之間是否存在沖突包括確定自最近一次同步化操作以來所述第一文件和所述第 二文件兩者是否已被更改。
8. 如權(quán)利要求1所述的方法,其特征在于,協(xié)調(diào)所述第一文件和所述第二文 件包括由用所述第二文件代替所述第一文件、用所述第一文件代替所述第二文件、 以及基于所述第一文件和所述第二文件創(chuàng)建第三文件組成的組中之一。
9. 如權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)沖突策略解決至少一 個(gè)沖突。
10. —種進(jìn)行沖突解決的方法,所述方法包括 從用戶接收指示開始所述沖突解決的選擇; 顯示描述第一文件的第一文件信息; 顯示描述第二文件的第二文件信息;以及顯示至少一個(gè)沖突解決選項(xiàng),各個(gè)沖突解決選項(xiàng)標(biāo)識(shí)解決所述沖突的一種可 能方法。
11. 如權(quán)利要求10所述的方法,其特征在于,還包括顯示一個(gè)或多個(gè)沖突的 列表。
12. 如權(quán)利要求11所述的方法,其特征在于,還包括接收用戶對從所述沖突 列表選擇的一個(gè)待解決沖突的選擇。
13. 如權(quán)利要求IO所述的方法,其特征在于,還包括接收用戶對一個(gè)沖突解 決選項(xiàng)的選擇。
14. 如權(quán)利要求13所述的方法,其特征在于,還包括根據(jù)用戶所選沖突解決 選項(xiàng)解決所述沖突。
15. 如權(quán)利要求IO所述的方法,其特征在于,基于所述第一文件和所述第二 文件之間的差異來選擇所述第一文件信息和所述第二文件信息。
16. 如權(quán)利要求IO所述的方法,其特征在于,在解析器中指定各個(gè)沖突解決 選項(xiàng),所述解析器是根據(jù)解析器應(yīng)用程序接口來實(shí)現(xiàn)的。
17. —種進(jìn)行同步化操作的系統(tǒng),包括同步化管理器,配置成比較第一文件和第二文件、確定所述第一文件與第二 文件之間是否存在沖突、如果不存在沖突則協(xié)調(diào)所述第一文件和第二文件、以及如 果存在沖突則創(chuàng)建沖突對象;沖突存儲(chǔ),配置成保持沖突對象;以及解析器,指定至少一種解決沖突的方法。
18. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述同步化管理器被配置成比 較n個(gè)文件,n為大于或等于2的整數(shù);確定所述n個(gè)文件之間是否存在沖突,如 果不存在沖突則協(xié)調(diào)所述n個(gè)文件、并且如果存在沖突則創(chuàng)建沖突對象。
19. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述解析器是根據(jù)可擴(kuò)展解析 器應(yīng)用程序接口實(shí)現(xiàn)的。
20. 如權(quán)利要求17所述的系統(tǒng),其特征在于,還包括配置成顯示從沖突對象 接收的沖突信息的沖突管理器用戶接口。
全文摘要
提供在同步化管理器中實(shí)現(xiàn)沖突解決的系統(tǒng)和方法。在沖突情形中,同步化操作創(chuàng)建并存儲(chǔ)沖突對象,并且重新開始同步化操作而無需用戶輸入。因此,可在沒有用戶輸入的情況下完成同步化操作,并且用戶可選擇在方便的時(shí)間在線或離線地解決未決沖突。此外,本發(fā)明提供開發(fā)標(biāo)準(zhǔn)、用戶友好同步化操作的平臺(tái)。此外本發(fā)明提供允許用戶快速、容易地解決源自多個(gè)設(shè)備的沖突的集中位置。
文檔編號(hào)G06F7/00GK101167046SQ200580049563
公開日2008年4月23日 申請日期2005年7月28日 優(yōu)先權(quán)日2005年4月22日
發(fā)明者B·J·卡拉斯, B·S·奧斯特, D·波特, K·W·帕克, M·A·薩瑪基, M·麥克卡比, R·J·多特舒 申請人:微軟公司