用于多階段多源備份的方法和裝置制造方法
【專利摘要】本發(fā)明描述了一種向第一備份源識(shí)別設(shè)備中的資源的變化的方法和裝置。響應(yīng)于從第一備份源接收到用于向第二備份源授權(quán)的令牌,能夠利用所述令牌將所述資源的變化備份到第二備份源。如果將所述資源的變化備份到第二備份源是成功的,則能夠?qū)⑺鲎兓峤坏降谝粋浞菰础?br>
【專利說明】用于多階段多源備份的方法和裝置
[0001]相關(guān)申請(qǐng)的交差引用
[0002]本申請(qǐng)要求于2011年6月3日提交的Gordon J.Freedman等人的標(biāo)題為“Methods and Apparatus for Mult1-Phase Mult1-Source Backup and Restore” 的美國臨時(shí)申請(qǐng) N0.61/493,360的權(quán)益,該申請(qǐng)被通過引用而全部結(jié)合于此。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明一般地涉及設(shè)備的備份。更具體地,本發(fā)明涉及使用多個(gè)源在多個(gè)階段中 為設(shè)備備份文件。
【背景技術(shù)】
[0004]隨著移動(dòng)設(shè)備特別是移動(dòng)通信設(shè)備諸如蜂窩電話、個(gè)人數(shù)字助理(PDA)、平板設(shè)備 等的激增,備份和恢復(fù)操作已經(jīng)越來越成為這些移動(dòng)設(shè)備的日常使用的組成部分。然而,隨 著工作環(huán)境、移動(dòng)應(yīng)用和/或網(wǎng)絡(luò)存儲(chǔ)基礎(chǔ)設(shè)施繼續(xù)演進(jìn),還出現(xiàn)了伴隨著不斷改變對(duì)移 動(dòng)設(shè)備的要求的新挑戰(zhàn)以支持這樣的能力。
[0005]例如,傳統(tǒng)的備份/恢復(fù)操作可以基于使用高帶寬網(wǎng)絡(luò)連接的與備份/恢復(fù)軟件 和硬件的復(fù)雜交互。然而,移動(dòng)設(shè)備常常中途與無線網(wǎng)絡(luò)連接使用,無線網(wǎng)絡(luò)連接在從一個(gè) 位置到一個(gè)位置可能是不可靠的、帶寬受限的和/或不可預(yù)測的。因此,可能需要冗長的時(shí) 間和/或多次嘗試來完成移動(dòng)設(shè)備的備份/恢復(fù)操作。此外,對(duì)于這些操作在大多數(shù)無線 網(wǎng)絡(luò)的開放中可以發(fā)現(xiàn)另外的安全風(fēng)險(xiǎn)。
[0006]因此,現(xiàn)有機(jī)制不可以以可靠、安全和用戶友好的方式備份和/或恢復(fù)移動(dòng)設(shè)備。
【發(fā)明內(nèi)容】
[0007]在一種實(shí)施例中,設(shè)備中的資源可以經(jīng)由允許增量和可繼續(xù)(resumable)備份操 作的多個(gè)抽象層而被備份到基于網(wǎng)絡(luò)的存儲(chǔ)裝置(也稱為云存儲(chǔ)裝置)。備份源可以被動(dòng)態(tài) 配置以用于提高備份/恢復(fù)性能兩者和/或最小化對(duì)設(shè)備的正常操作的影響。在一個(gè)實(shí)施 例中,設(shè)備可以與移動(dòng)設(shè)備服務(wù)(MBS)通信來基于MBS中維護(hù)的啟發(fā)式數(shù)據(jù)來確定資源中 的哪些部分要備份。啟發(fā)式數(shù)據(jù)可以包括設(shè)備的所有人賬戶,特定于與所有人賬戶相關(guān)聯(lián) 的每個(gè)設(shè)備的備份層(或表示)和/或描述被備份的每個(gè)文件的元數(shù)據(jù)。
[0008]在一個(gè)實(shí)施例中,MBS可以與內(nèi)容服務(wù)(諸如Mobile Me組塊服務(wù)或MMCS)通信來 識(shí)別文件的哪些實(shí)際數(shù)據(jù)組塊(或組塊的數(shù)據(jù))應(yīng)當(dāng)被上載用于備份以避免例如云存儲(chǔ)裝 置中的數(shù)據(jù)組塊的重復(fù)拷貝。MMCS可以跟蹤文件與識(shí)別文件的數(shù)據(jù)組塊的一組組塊標(biāo)識(shí)符 之間的映射。在一個(gè)實(shí)施例中,MMCS可以動(dòng)態(tài)地配置或安排提供商云存儲(chǔ)裝置來將針對(duì)備 份識(shí)別的文件的內(nèi)容存儲(chǔ)在經(jīng)組塊分割的數(shù)據(jù)的容器中。
[0009]在另一實(shí)施例中,設(shè)備中的元數(shù)據(jù)可以被維護(hù)以跟蹤資源(或文件)是否表示用戶 數(shù)據(jù)(例如用戶創(chuàng)建的數(shù)據(jù))或已購買的資產(chǎn)或內(nèi)容。已購買資產(chǎn)的實(shí)際數(shù)據(jù)可以從可用資 產(chǎn)商店(或站點(diǎn))下載或恢復(fù),而不需要被備份。某些可自由獲得的資產(chǎn)諸如播客可以通過備份它們的標(biāo)識(shí)符被重新下載而不是直接地利用它們的實(shí)際內(nèi)容被備份和恢復(fù)。描述要備 份的資源的元數(shù)據(jù)可以允許有可能對(duì)用戶透明的對(duì)用于備份的不同源的自動(dòng)識(shí)別。例如備 份作為已購買資產(chǎn)的資源可以包括做標(biāo)記而不是向上推送已購買資產(chǎn)的內(nèi)容。為了恢復(fù)所 標(biāo)記的已購買資產(chǎn),可以從資產(chǎn)商店向下拉取已購買資產(chǎn)的內(nèi)容。例如,資產(chǎn)商店可以是托 管可購買資產(chǎn)、存儲(chǔ)已購買資產(chǎn)和/或托管可自由獲得的資產(chǎn)(或內(nèi)容)的網(wǎng)絡(luò)可訪問站點(diǎn)。
[0010]可選地,資產(chǎn)可以從多個(gè)源被分割地恢復(fù)回到設(shè)備,所述源諸如是云存儲(chǔ)裝置、本 地計(jì)算機(jī)、資產(chǎn)商店和/或其它可能可適用的源。可以針對(duì)設(shè)備中的資源來跟蹤指示媒體 資產(chǎn)的類型的元數(shù)據(jù)以動(dòng)態(tài)地識(shí)別對(duì)于例如基于性能、帶寬、電力消耗和/或其它適用的 考慮而恢復(fù)(或備份)資源而言可用和/或成本最優(yōu)的源。
[0011]例如,設(shè)備可能注意到與存儲(chǔ)要恢復(fù)的資源的內(nèi)容數(shù)據(jù)的一部分的(例如有線或 無線耦接的)本地計(jì)算機(jī)的連接。內(nèi)容數(shù)據(jù)的這部分可以從已經(jīng)連接的計(jì)算機(jī)拉取。隨后, 不可從本地計(jì)算機(jī)獲得的資源的其余部分可以被識(shí)別以從云存儲(chǔ)裝置和/或商店分割地 恢復(fù)。因此,諸如音樂、應(yīng)用或其它媒體文件之類的內(nèi)容數(shù)據(jù)可以被備份在云(或云存儲(chǔ)裝 置)中但是仍然能夠從用于設(shè)備的本地計(jì)算機(jī)恢復(fù)。
[0012]在一個(gè)實(shí)施例中,例如,基于相關(guān)聯(lián)的應(yīng)用、媒體類型或其它可擴(kuò)展的信息,可以 選擇文件或資源用于備份。一種資源可以作為商店資產(chǎn)(例如可從資產(chǎn)商店獲得的已購買 資產(chǎn))被跟蹤,商店資產(chǎn)可以從商店獲得而不需要備份資源的實(shí)際內(nèi)容。可選地,另一種資 源可以作為用戶數(shù)據(jù)被跟蹤,用戶數(shù)據(jù)不可從商店獲得并且需要例如經(jīng)由云存儲(chǔ)裝置備份 和恢復(fù)。一種應(yīng)用可以與包括作為商店資產(chǎn)的應(yīng)用本身和作為用戶數(shù)據(jù)的應(yīng)用數(shù)據(jù)的資源 相關(guān)聯(lián)。因此,應(yīng)用和相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)可以從不同的源恢復(fù)。
[0013]例如,設(shè)備中為云備份選擇的資源可以包括應(yīng)用數(shù)據(jù)而不包括對(duì)應(yīng)的應(yīng)用本身。 應(yīng)用可以被從資產(chǎn)商店重新下載到設(shè)備而應(yīng)用數(shù)據(jù)可以從云存儲(chǔ)裝置和/或本地計(jì)算機(jī) 恢復(fù)??商娲兀瑧?yīng)用可以從本地計(jì)算機(jī)被同步以從云存儲(chǔ)裝置恢復(fù)應(yīng)用數(shù)據(jù)。用于分離 地恢復(fù)應(yīng)用和應(yīng)用數(shù)據(jù)的備份源的其它組合可以是可能的。在一些實(shí)施例中,應(yīng)用數(shù)據(jù)可 以在對(duì)應(yīng)的應(yīng)用可以被(例如用戶)使用之前被恢復(fù)。應(yīng)用可以在啟動(dòng)應(yīng)用數(shù)據(jù)的恢復(fù)(例 如從云存儲(chǔ)裝置或其它源)之前被下載或同步以創(chuàng)建適當(dāng)?shù)呐判颉?br>
[0014]在一個(gè)實(shí)施例中,將資源從備份恢復(fù)到設(shè)備可以在多個(gè)階段中被執(zhí)行以在資源正 被恢復(fù)的同時(shí)使設(shè)備保持在可使用的和響應(yīng)于用戶的工作情況中。例如設(shè)備可以進(jìn)入初始 模態(tài)恢復(fù)會(huì)話(例如第一模式),然后進(jìn)入后臺(tái)恢復(fù)會(huì)話(例如第二模式)以進(jìn)行設(shè)備的雙階 段或兩階段恢復(fù)。在一個(gè)實(shí)施例中,設(shè)備可以由用戶使用,以使得在初始模態(tài)恢復(fù)會(huì)話中, 設(shè)備不會(huì)對(duì)用戶輸入進(jìn)行響應(yīng)。在一個(gè)實(shí)施例中,初始模態(tài)會(huì)話對(duì)于恢復(fù)核心用戶文件以 重新引導(dǎo)設(shè)備可以是短暫快速的。隨后,后臺(tái)會(huì)話可以允許用戶在各個(gè)應(yīng)用正在后臺(tái)被恢 復(fù)回到設(shè)備的同時(shí)使用設(shè)備。在后臺(tái)恢復(fù)會(huì)話中,設(shè)備可以操作用于對(duì)至少一組用戶輸入 進(jìn)行響應(yīng)。
[0015]在一個(gè)實(shí)施例中,在兩階段恢復(fù)的模態(tài)會(huì)話期間,在設(shè)備下載系統(tǒng)資源以將設(shè)備 帶入特定于用戶的工作情況的同時(shí),設(shè)備可以是短暫地不可用的。例如系統(tǒng)資源可以包括 所有元數(shù)據(jù)和系統(tǒng)數(shù)據(jù)、賬戶列表、壁紙、SMS (短消息服務(wù))歷史和/或其它適用的用戶特 定的非應(yīng)用數(shù)據(jù)。系統(tǒng)數(shù)據(jù)加上元數(shù)據(jù)可以配置設(shè)備例如以用作用戶的電話。設(shè)備可以在 模態(tài)會(huì)話之后重新引導(dǎo)并蘇醒。[0016]在一個(gè)實(shí)施例中,在兩階段恢復(fù)的后臺(tái)會(huì)話期間,設(shè)備可以從本地計(jì)算機(jī)(例如其 運(yùn)行來自蘋果公司的iTunes?應(yīng)用)和/或云存儲(chǔ)裝置恢復(fù)數(shù)據(jù)或媒體資產(chǎn)。設(shè)備可以 在后臺(tái)會(huì)話期間同步郵件和/或接收文本消息。在一個(gè)實(shí)施例中,資源可以根據(jù)由使用模 式確定的恢復(fù)次序被恢復(fù)。例如,應(yīng)用使用可以被跟蹤以收集包括觀看的電視劇/電影、讀 過的書或其它適用的使用統(tǒng)計(jì)值的使用模式。在其它實(shí)施例中,恢復(fù)次序可以依賴于資源 (或內(nèi)容)的大小、與資源對(duì)應(yīng)的圖標(biāo)位于設(shè)備的顯示器上的哪兒(例如,用戶可能將頻繁使 用的圖標(biāo)放在第一頁中),或其它適用的因素。恢復(fù)次序可以被動(dòng)態(tài)地更新以適配于諸如經(jīng) 由顯示器上的指示應(yīng)用的優(yōu)先級(jí)的用戶輕觸的用戶請(qǐng)求。
[0017]在另一實(shí)施例中,在雙階段(或分為兩部分的)恢復(fù)中設(shè)備可用但是不是所有數(shù)據(jù) 都已經(jīng)被恢復(fù)時(shí)的時(shí)段期間,UI (用戶界面)元素可以被顯示以改善用戶體驗(yàn)和防止應(yīng)用被 不正確地或以不期望的方式操作。例如,表示其(一個(gè)或多個(gè))對(duì)象文件或用戶數(shù)據(jù)還未被 恢復(fù)的那些應(yīng)用和/或媒體庫(例如用于播放音樂、視頻或其它媒體的內(nèi)容/資產(chǎn))的圖標(biāo) 可以被灰顯,或包括用于指示應(yīng)用還不可用但是將變得可用的進(jìn)度條??梢酝ㄟ^允許用于 輕觸用戶想要優(yōu)先恢復(fù)的應(yīng)用、或照片或音樂或視頻的圖標(biāo)來添加啟發(fā)性。
[0018]在另一實(shí)施例中,本文中描述了一種方法和裝置,用于向第一備份源識(shí)別設(shè)備中 的資源的變化。響應(yīng)于從第一備份源接收到用于向第二備份源授權(quán)的令牌,能夠利用所述 令牌將所述資源的變化備份到第二備份源。如果將所述資源的變化備份到第二備份源是成 功的,則能夠?qū)⑺鲎兓峤坏降谝粋浞菰础?br>
[0019]在另一實(shí)施例中,維護(hù)描述被存儲(chǔ)在設(shè)備中的文件的實(shí)際內(nèi)容的元數(shù)據(jù)。所述元 數(shù)據(jù)能夠表示用于表示所述文件的第一抽象層。從第一抽象層可以識(shí)別所述實(shí)際內(nèi)容的一 部分。在一個(gè)實(shí)施例中,所述實(shí)際內(nèi)容的所述部分可以從所述設(shè)備被備份。可以動(dòng)態(tài)生成 所述實(shí)際內(nèi)容的所述部分的內(nèi)容標(biāo)識(shí)符,所述內(nèi)容標(biāo)識(shí)符表示與第一抽象層分離的第二抽 象層。可以將所述實(shí)際內(nèi)容的所述部分經(jīng)由所述內(nèi)容標(biāo)識(shí)符上載到網(wǎng)絡(luò)可訪問存儲(chǔ)裝置。
[0020]本發(fā)明的其它特征將從附圖或從以下詳細(xì)描述中顯見。
【專利附圖】
【附圖說明】
[0021]在附圖的示圖中示例而非限制性地圖示出本發(fā)明,其中,相似的標(biāo)號(hào)指示相似的 元素,并且其中:
[0022]圖1是圖示出用于多階段多源備份和恢復(fù)的網(wǎng)絡(luò)系統(tǒng)的一個(gè)實(shí)施例的框圖;
[0023]圖2是用于多階段多源備份和恢復(fù)的示例系統(tǒng)的框圖;
[0024]圖3是圖示出用于使用多個(gè)源在多個(gè)階段中管理備份和恢復(fù)的示例系統(tǒng)的框圖;
[0025]圖4是圖示出用于為設(shè)備執(zhí)行增量備份操作的過程的一個(gè)實(shí)施例的流程圖;
[0026]圖5是圖示出用于在設(shè)備中執(zhí)行增量恢復(fù)操作的過程的一個(gè)實(shí)施例的流程圖;
[0027]圖6是圖示出用于動(dòng)態(tài)地為資源進(jìn)行優(yōu)先級(jí)排序來恢復(fù)設(shè)備的過程的一個(gè)實(shí)施 例的流程圖;
[0028]圖7是圖示出為備份和/或恢復(fù)操作監(jiān)視設(shè)備的電源的示例系統(tǒng)的框圖;
[0029]圖8是圖示出用于中斷用于設(shè)備的備份和/或恢復(fù)操作以保存電力的過程的一個(gè) 實(shí)施例的流程圖;
[0030]圖9示出可以與本文中描述的實(shí)施例一起使用的數(shù)據(jù)處理系統(tǒng)的一個(gè)示例;[0031] 圖10圖示出可以與本文中描述的實(shí)施例結(jié)合使用的典型計(jì)算機(jī)系統(tǒng)的示例。 具體實(shí)施例
[0032]在本文中描述了利用一個(gè)或多個(gè)源在多個(gè)階段中為設(shè)備備份和恢復(fù)文件的方法和裝置。在以下描述中,闡述了大量具體細(xì)節(jié)來提供對(duì)本發(fā)明的實(shí)施例的透徹理解。然而, 對(duì)于本領(lǐng)域技術(shù)人員顯而易見的是,可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐本發(fā)明的實(shí)施例。在其它實(shí)例中,沒有詳細(xì)示出公知的組件、結(jié)構(gòu)和技術(shù)以免模糊對(duì)本描述的理解。
[0033]在說明書中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的提及意味著結(jié)合該實(shí)施例描述的具體的特征、結(jié)構(gòu)或特點(diǎn)可以包含在本發(fā)明的至少一個(gè)實(shí)施例中。說明書的不同地方中出現(xiàn)的短語“在一個(gè)實(shí)施例中”并不一定都指同一實(shí)施例。
[0034]在以下的示圖中描述的過程是由處理邏輯執(zhí)行的,處理邏輯包括硬件(例如,電路系統(tǒng)、專用邏輯等等),軟件(諸如在通用計(jì)算機(jī)系統(tǒng)或?qū)S脵C(jī)器上運(yùn)行的軟件),或兩者的組合。盡管以下鑒于某些順序操作描述這些過程,但是應(yīng)當(dāng)理解,所描述的操作中的一些可以以不同的次序執(zhí)行。并且,有些操作可以并行地而不是順序地執(zhí)行。
[0035]在一個(gè)實(shí)施例中,多個(gè)源可以用于從設(shè)備備份數(shù)據(jù)或資源。例如,通用數(shù)據(jù)備份服務(wù)可以經(jīng)由諸如Amazon、S3、Microsoft等的第三方供應(yīng)商在云(或云存儲(chǔ)裝置、云服務(wù))中
提供。購買的資產(chǎn),諸如歌曲、電影和/或應(yīng)用等,可以從云中的iTunes?商店下載。運(yùn)行諸如iTunes?之類的備份服務(wù)軟件的用戶的(一個(gè)或多個(gè))計(jì)算機(jī)可以為諸如來自蘋果公司的iOS?設(shè)備、iPhone?或iPad--設(shè)備之類的設(shè)備進(jìn)行備份。
[0036]要從設(shè)備備份的資源可以是備份數(shù)據(jù),包括例如設(shè)置、賬戶數(shù)據(jù)、應(yīng)用數(shù)據(jù)、照片、 媒體文件、購買的資產(chǎn)和/或其它數(shù)據(jù)文件。在一個(gè)實(shí)施例中,備份數(shù)據(jù)可以從設(shè)備中的現(xiàn)有資源中動(dòng)態(tài)地識(shí)別。用戶計(jì)算機(jī)(例如臺(tái)式計(jì)算機(jī)或筆記本計(jì)算機(jī))可以存儲(chǔ)設(shè)備的備份數(shù)據(jù)??蛇x地或可替代地,設(shè)備的備份數(shù)據(jù)的子集可以經(jīng)由云備份和/或經(jīng)由用于備份數(shù)
據(jù)中的已購買資產(chǎn)的諸如iTunes?商店之類的商店而被存儲(chǔ)在云中。
[0037]在一個(gè)實(shí)施例中,例如由云中MBS服務(wù)器維護(hù)的賬戶可以用分層數(shù)據(jù)表示,分層數(shù)據(jù)包括分別對(duì)應(yīng)于賬戶的不同設(shè)備的多個(gè)備份(或備份結(jié)構(gòu))。分層數(shù)據(jù)可以包括一賬戶,該賬戶包含用于若干不同設(shè)備的一組備份。一備份可以包括在一設(shè)備上的文件的一組快照??梢灾С置總€(gè)設(shè)備一個(gè)備份。
[0038]快照可以表示設(shè)備在單個(gè)時(shí)間點(diǎn)的狀態(tài)??梢詮膫浞葜械娜魏慰煺胀瓿苫謴?fù)以重新構(gòu)建設(shè)備在那個(gè)時(shí)間點(diǎn)的狀態(tài)??煺湛梢詮囊粋€(gè)數(shù)字(例如,I)被順次編號(hào),并且這些編號(hào)可以由服務(wù)器指派。第一快照可以是設(shè)備的完整備份并且后續(xù)的快照可以是基于前一快照的增量。增量快照可以包含從前一快照開始設(shè)備上的所有增加的、修改的和刪除的文件。
[0039]快照可以在其內(nèi)容已經(jīng)被上載時(shí)被明確提交。一次可以存在一個(gè)未提交的快照并且未提交的快照可以是具有最大編號(hào)的最后的快照。一旦快照被提交,其內(nèi)容就不可以被修改,除非被整個(gè)刪除。
[0040]當(dāng)快照被刪除時(shí),其內(nèi)容可以被融合到前一快照中,除非其未被提交。因此,仍然可以從任意后續(xù)的快照完成恢復(fù)。目標(biāo)快照中的添加的/修改的/刪除的文件可以被保持 (例如將不會(huì)丟失)。刪除未提交的快照不會(huì)引起融合,而是內(nèi)容可以被簡單地丟棄。當(dāng)從所存儲(chǔ)的快照的序列中刪除第二快照并且將文件融合到該快照的序列的第一快照中時(shí),刪 除的文件不會(huì)被保持,因?yàn)榈谝豢煺帐峭暾?。第一快照不?huì)被刪除,除非其是該快照的序 列中僅有的快照。
[0041]每個(gè)備份可以包括例如根據(jù)配置的時(shí)間表(例如每小時(shí),每天,每周等等)從對(duì)應(yīng) 設(shè)備獲取的快照。每個(gè)快照可以包括對(duì)文件或資源的列表的描述。每個(gè)文件可以分割成 (例如具有確定比特大小的)實(shí)際數(shù)據(jù)的組塊(或文件組塊分割)以供(一個(gè)或多個(gè))服務(wù)存 儲(chǔ)??商娲?,文件組塊分割可以基于將數(shù)據(jù)項(xiàng)分割成組塊的技術(shù),例如在2011年I月14 日提交的Dominic Giampaolo的標(biāo)題為“Content Based File Chunking”的臨時(shí)專利申請(qǐng) N0.61/433,152中描述的技術(shù),該申請(qǐng)被通過引用而全部結(jié)合于此。
[0042]通常,多個(gè)組塊可以被聚合為一個(gè)容器,作為用于例如由第三方提供商提供的云 服務(wù)的存儲(chǔ)單元。備份可以按照請(qǐng)求而被創(chuàng)建、更新、刪除、禁用或操作。例如,可以從備份 移除給定域的文件。該云存儲(chǔ)裝置不存儲(chǔ)對(duì)于重新生成與云存儲(chǔ)裝置中存儲(chǔ)的數(shù)據(jù)的組塊 對(duì)應(yīng)的原始文件足夠的信息。因此,文件固有地經(jīng)由數(shù)據(jù)的組塊分割而受到保護(hù)。對(duì)數(shù)據(jù) 的組塊的加密可以為存儲(chǔ)在云存儲(chǔ)裝置中的數(shù)據(jù)提供額外級(jí)別的保護(hù)。
[0043]在一個(gè)實(shí)施例中,諸如iOS設(shè)備之類的設(shè)備可以利用云中的備份服務(wù)(例如,其被 托管在MBS服務(wù)器中)來發(fā)起備份操作以從設(shè)備的資源識(shí)別備份數(shù)據(jù)。可以在備份服務(wù)中 例如經(jīng)由與設(shè)備對(duì)應(yīng)的備份結(jié)構(gòu)來維持描述設(shè)備的備份狀況的元數(shù)據(jù)。備份狀況可以包括 已經(jīng)為設(shè)備備份的資源的最新的快照或最近的快照序列。在一個(gè)實(shí)施例中,元數(shù)據(jù)可以參 考經(jīng)由(一個(gè)或多個(gè))第三方提供商針對(duì)設(shè)備的備份數(shù)據(jù)而存儲(chǔ)在云服務(wù)中的數(shù)據(jù)組塊。
[0044]為備份操作在設(shè)備中識(shí)別的備份數(shù)據(jù)或文件可以被分割成已經(jīng)可以用于云存儲(chǔ) 設(shè)備的實(shí)際數(shù)據(jù)比特的組塊。在一個(gè)實(shí)施例中,設(shè)備的服務(wù)框架中的MMCS碼可以與云中的 MMCS服務(wù)器通信來準(zhǔn)備用于為所識(shí)別的文件進(jìn)行備份的數(shù)據(jù)的組塊。例如備份數(shù)據(jù)可以根 據(jù)某些組塊配置(例如用于每個(gè)組塊的具體的數(shù)據(jù)比特大小)而被分割成多個(gè)數(shù)據(jù)組塊。
[0045]服務(wù)框架可以確定根據(jù)為備份而識(shí)別的文件準(zhǔn)備的多個(gè)數(shù)據(jù)組塊中的哪些數(shù)據(jù) 組塊當(dāng)前在云中不可獲得并且需要被上載。在一些實(shí)施例中,服務(wù)框架(例如經(jīng)由MMCS碼) 可以例如經(jīng)由SHA散列算法或其它適用的算法將每個(gè)組塊散列成簽名,來作為供MMCS服務(wù) 器(或服務(wù))用于確定所識(shí)別的組塊是否已經(jīng)在云中被備份的標(biāo)識(shí)符。
[0046]在一個(gè)實(shí)施例中,文件可以被引用到MMCS中。設(shè)備可以向文件指派任意標(biāo)識(shí)符。 設(shè)備可以使用標(biāo)識(shí)符來回溯至文件。弓丨用可以(例如由服務(wù)器)周期性地扒取到MMCS中來 對(duì)文件的未被引用的數(shù)據(jù)組塊(或文件組塊)進(jìn)行垃圾回收。
[0047]可以在多個(gè)階段諸如設(shè)置階段、掃描階段、備份階段和/或其它適用的階段中執(zhí) 行針對(duì)設(shè)備的備份操作,以與云中的多個(gè)服務(wù)協(xié)調(diào)。每個(gè)階段可以對(duì)應(yīng)于操作的單獨(dú)的抽 象層以允許云存儲(chǔ)裝置的動(dòng)態(tài)配置可能地增大備份操作的效果和/或改善備份操作的性 倉泛。
[0048]例如,在設(shè)置階段期間,可以確定在MBS服務(wù)中是否存在設(shè)備的備份(或備份結(jié) 構(gòu))。如果在MBS服務(wù)中針對(duì)該設(shè)備不存在備份的話,可以要求MBS服務(wù)利用該設(shè)備的初始 元數(shù)據(jù)來創(chuàng)建備份。在一個(gè)實(shí)施例中,設(shè)備可以包括備份高速緩存,其反映MBS服務(wù)中與設(shè) 備對(duì)應(yīng)的備份的拷貝。該備份高速緩存可以包括之前為設(shè)備獲取的一個(gè)或多個(gè)快照。
[0049]在一個(gè)實(shí)施例中,備份高速緩存可以按照需要被重建(例如通過咨詢MBS服務(wù))來與MBS服務(wù)同步(例如當(dāng)備份高速緩存中高速緩存的快照根據(jù)與MBS服務(wù)通信的消息是過 期的時(shí))。可選地或另外地,可以在設(shè)置階段期間確定在設(shè)備中是否存在未提交的快照。未 提交的快照可以不對(duì)應(yīng)于MBS服務(wù)中存儲(chǔ)的現(xiàn)有快照并且可以包括待備份的資源的描述。 未提交的快照可以在設(shè)置階段期間被創(chuàng)建。
[0050]在一個(gè)實(shí)施例中,設(shè)備可以查詢MBS服務(wù)來確定是否存在未提交的快照,例如作 為確認(rèn)備份高速緩存是最新的的一部分。設(shè)備可以在在備份操作期間掃描其文件系統(tǒng)之后 創(chuàng)建未提交的快照。備份高速緩存可以被增量更新以反映什么已經(jīng)被成功備份至例如MBS 和MMCS服務(wù)。
[0051]在掃描階段期間,設(shè)備的文件系統(tǒng)可以被掃描以找到文件或資源中的變化,諸如 新的文件、刪除的文件、修改的文件等。在一個(gè)實(shí)施例中,所述變化可以經(jīng)由被掃描的文件 與備份高速緩存中存儲(chǔ)的快照之間的比較來識(shí)別??梢栽趻呙桦A段期間跟蹤哪些文件已經(jīng) 被備份以及哪些文件需要備份。
[0052]在備份階段期間,可以執(zhí)行實(shí)際的文件備份操作。例如,如果需要可以創(chuàng)建快照 (例如當(dāng)不存在可用的未提交的快照時(shí))。請(qǐng)求可以被發(fā)送給MBS服務(wù)以用于在MBS服務(wù)中 創(chuàng)建新的文件、修改的文件和/或刪除的文件的條目。可以從MBS服務(wù)接收訪問云存儲(chǔ)裝 置的配額認(rèn)證或權(quán)限以允許發(fā)送備份請(qǐng)求給MMCS服務(wù)。備份請(qǐng)求可以包括描述要備份的 文件或文件的變化的元數(shù)據(jù)。
[0053]可以從MBS服務(wù)接收認(rèn)證令牌,其指示所請(qǐng)求的備份在由MMCS為設(shè)備施加的備份 存儲(chǔ)大小的限制以內(nèi)。認(rèn)證令牌可以被發(fā)送給MMCS服務(wù),以用于從設(shè)備到存儲(chǔ)提供商的一 組經(jīng)授權(quán)的HTTP (超文本傳輸協(xié)議)請(qǐng)求。MMCS服務(wù)可以與存儲(chǔ)提供商(或云服務(wù))交互 來檢索用于該設(shè)備的授權(quán)密鑰。文件的變化(例如,添加/刪除/移除)可以利用授權(quán)密鑰 被上載到云服務(wù)。如果從云服務(wù)接收到成功上載的確認(rèn),則與上載對(duì)應(yīng)的快照可以在設(shè)備 和MBS服務(wù)之間被提交??煺湛梢栽谄湟呀?jīng)被創(chuàng)建并且其內(nèi)容已經(jīng)被定義并隨后被上載到 麗SC時(shí)就被提交。
[0054]在一個(gè)實(shí)施例中,MBS服務(wù)可以基于在文件級(jí)描述文件的元數(shù)據(jù)。MMCS服務(wù)可以 依賴于文件的實(shí)際內(nèi)容或數(shù)據(jù)(例如,數(shù)據(jù)的組塊)。從文件的實(shí)際內(nèi)容生產(chǎn)的散列簽名可 以在MMCS服務(wù)中用作該內(nèi)容的標(biāo)識(shí)符。MMCS服務(wù)可以確定由標(biāo)識(shí)符識(shí)別的內(nèi)容的部分在 例如云存儲(chǔ)裝置中是否是新的(或者還沒有被備份)。MBS服務(wù)可以根據(jù)與一個(gè)或多個(gè)文件 關(guān)聯(lián)的元數(shù)據(jù)來決定這一個(gè)或多個(gè)文件是否是新的或已經(jīng)被更新。
[0055]在某些實(shí)施例中,諸如MBS服務(wù)之類的備份服務(wù)可以為一設(shè)備維護(hù)一個(gè)或多個(gè)備 份。這些備份可以包括描述備份的數(shù)據(jù)和文件是什么、如果保持對(duì)備份數(shù)據(jù)的跟蹤、對(duì)應(yīng)設(shè) 備的身份、有多少不同備份相關(guān)聯(lián)(例如基于備份日期、增量備份關(guān)系等)和/或其它信息的 語義。在一個(gè)實(shí)施例中,一個(gè)備份可以與一個(gè)賬戶下的一個(gè)設(shè)備相關(guān)聯(lián)。每個(gè)賬戶可以包 括多個(gè)設(shè)備。備份可以包括設(shè)備的多個(gè)快照。例如,這些快照可以是針對(duì)設(shè)備的資源每天 獲取的。每個(gè)快照可以描述從備份中的前一快照開始在設(shè)備中改變的文件。
[0056]在一個(gè)實(shí)施例中,設(shè)備的資源可以基于多次握手而被備份,以在設(shè)備與諸如MBS 服務(wù)、MMCS服務(wù)、云提供商(或存儲(chǔ)裝置)和/或其它適用的服務(wù)之類的服務(wù)之間傳送文件 和/或文件的元數(shù)據(jù)。MBS服務(wù)可以跟蹤MMCS服務(wù)的引用。MMCS服務(wù)可以跟蹤云提供商 的引用,例如以允許設(shè)備將文件動(dòng)態(tài)映射到由提供商指定的結(jié)構(gòu)化數(shù)據(jù)。[0057]在實(shí)施例的一個(gè)實(shí)例中,根據(jù)具體云提供商,MMCS服務(wù)可以將設(shè)備中的文件識(shí)別 為項(xiàng)目,指示設(shè)備將項(xiàng)目分割成數(shù)據(jù)的組塊,為每個(gè)數(shù)據(jù)組塊生成唯一標(biāo)識(shí)符,并且通知設(shè) 備該設(shè)備是否需要將所識(shí)別的數(shù)據(jù)組塊轉(zhuǎn)發(fā)至云提供商以供備份。設(shè)備可以指示MSB或與 其通信以將信息放在針對(duì)該設(shè)備獲取的快照中和/或使得快照與設(shè)備一致。
[0058]因此,多個(gè)服務(wù)可以提供用于備份設(shè)備的資源的間接的各層以使各層中一層內(nèi)的 操作不影響其它層。MBS服務(wù)可以跟蹤待備份的資源的元數(shù)據(jù),確定哪些文件(或項(xiàng)目)已 經(jīng)存在而不需要備份。MMCS服務(wù)可以負(fù)責(zé):跟蹤云存儲(chǔ)裝置的哪些提供商存儲(chǔ)實(shí)際的備份 數(shù)據(jù),管理云存儲(chǔ)裝置的使用權(quán)限來創(chuàng)建票據(jù)(或證書)以使得設(shè)備能夠?qū)浞輸?shù)據(jù)上載到 云存儲(chǔ)裝置,和/或執(zhí)行垃圾回收來刪除表示不再被引用用于備份的數(shù)據(jù)組塊的結(jié)構(gòu)。MBS 服務(wù)可以與由MMCS服務(wù)管理的云存儲(chǔ)裝置隔離或不知道該云存儲(chǔ)裝置。
[0059]在一個(gè)實(shí)施例中,為備份操作生成的快照在該備份操作已經(jīng)成功完成之后該快照 被提交之前,可以不被標(biāo)記為一致的。固定的(配置的)數(shù)目的最新快照(例如對(duì)應(yīng)于三天的 每日快照)可以被高速緩存在設(shè)備中或存儲(chǔ)在MBS設(shè)備中??煺盏臄?shù)目可以被限制以保留 存儲(chǔ)空間。通常,所存儲(chǔ)的快照中的第一(最早的)快照可以是為對(duì)應(yīng)備份操作描述設(shè)備的 每個(gè)資源的完全快照??煺罩械钠溆嗫煺湛梢允敲枋鲑Y源相對(duì)于快照中的前一快照的隨后 的變化的增量快照。
[0060]在備份操作的最后階段期間,在一個(gè)實(shí)施例中,快照可以被融合以例如將最早的 兩個(gè)或更多個(gè)現(xiàn)有的快照合并成一個(gè)完全快照。因此,當(dāng)新的快照被提交時(shí),所存儲(chǔ)的快照 的總數(shù)目可以保持為固定的數(shù)目。在一些實(shí)施例中,MBS服務(wù)可以被通知(或被指示)刪除 和/或融合現(xiàn)有的快照作為一個(gè)原子數(shù)據(jù)庫操作。作為響應(yīng),可以從MBS服務(wù)接收指示原 子操作是否成功的確認(rèn)。
[0061]在某些實(shí)施例中,可以查詢諸如iTunes?商店的備份源來識(shí)別不能用于重新下 載的資源的列表(例如,應(yīng)用、購買的資產(chǎn)或其它資產(chǎn))。例如,在設(shè)備執(zhí)行內(nèi)容備份操作之 前,備份源可以確定與設(shè)備相關(guān)聯(lián)的已購資產(chǎn)中的哪些(例如基于來自設(shè)備的請(qǐng)求)不可用 于重新下載。不可用于從備份源重新下載的資源的列表的實(shí)際內(nèi)容可以經(jīng)由諸如MBS、MMCS 等的備份服務(wù)被歸檔或備份。
[0062]在一個(gè)實(shí)施例中,設(shè)備與MBS服務(wù)之間的通信提供用于管理備份(例如創(chuàng)建/刪 除)和快照(例如創(chuàng)建/刪除/融合/更新)的客戶端服務(wù)器協(xié)議。更新快照可以以原子方 式執(zhí)行,其中,或者對(duì)快照的所有變化被合并(或被提交)或該快照完全不被更新。
[0063]在一些實(shí)施例中,用于經(jīng)由MBS服務(wù)管理快照的協(xié)議可以基于文件或資源的元數(shù) 據(jù)以進(jìn)行高效和輕量級(jí)的網(wǎng)絡(luò)通信。元數(shù)據(jù)可以描述有關(guān)設(shè)備中的文件的信息,諸如文件 名、對(duì)文件的引用、大小、時(shí)間戳、所有權(quán)、保護(hù)設(shè)置或與文件相關(guān)聯(lián)的其它適用的數(shù)據(jù),而 不描述文件的實(shí)際內(nèi)容。哪些文件或資產(chǎn)需要被包括在備份操作中可以基于元數(shù)據(jù)描述來 確定。分別的快照之間的增量或差異可以鑒于元數(shù)據(jù)描述來跟蹤。
[0064]例如,設(shè)備可以使用最后修改的時(shí)間值來維護(hù)高速緩存。請(qǐng)求和響應(yīng)可以包含最 后修改的時(shí)間值以用于對(duì)資源進(jìn)行訪問、刪除、更新、修改或執(zhí)行其它操作。在一個(gè)實(shí)施例 中,對(duì)資源的請(qǐng)求可以導(dǎo)致對(duì)資源的父級(jí)資源的最后修改的時(shí)間值的更新。例如,刪除賬戶 的備份可以更新該賬戶的最后修改的時(shí)間值。向快照添加文件可以更新快照的最新修改的 時(shí)間值以及快照的父級(jí)備份和賬戶。[0065]用于管理快照的請(qǐng)求可以允許創(chuàng)建新的空的未提交的快照,更新之前創(chuàng)建的快 照,刪除快照和/或提交快照。如果用于所請(qǐng)求的快照的保存空間會(huì)超過相關(guān)聯(lián)的賬戶的 配額,則響應(yīng)可以指示不足夠的存儲(chǔ)。請(qǐng)求可以包括快照的屬性,諸如設(shè)備名稱和版本號(hào)。
[0066]在另一實(shí)施例中,可以經(jīng)由請(qǐng)求從快照檢索具有文件屬性的文件的列表??梢哉?qǐng) 求MMCS授權(quán)令牌以用于從MMCS下載文件的流。管理用于快照的文件的請(qǐng)求可以包括例如 創(chuàng)建、刪除、更新、標(biāo)記或其它適用的操作。如果快照中的文件的大小超過保存的空間,則響 應(yīng)可以指示沖突。在一些實(shí)施例中,從快照刪除文件可以刪除由服務(wù)器存儲(chǔ)的底層數(shù)據(jù)庫 記錄并且刪除的文件可以不再在快照的文件的列表中出現(xiàn)。可替代地,將文件標(biāo)記為已刪 除可以指示該文件存在于之前的快照中但是不再存在于設(shè)備中。
[0067]設(shè)備中的文件的元數(shù)據(jù)可以對(duì)應(yīng)于用于確定要例如經(jīng)由MBS服務(wù)備份文件中的 哪些文件和/或創(chuàng)建用于備份操作的快照的一個(gè)抽象層。實(shí)際的文件內(nèi)容的散列(例如逐 比特散列組塊)可以提供另一抽象層,用于例如經(jīng)由MMCS服務(wù)來識(shí)別備份文件中的哪些內(nèi) 容需要上載。在一個(gè)實(shí)施例中,相同內(nèi)容的分別的文件可以與不同的元數(shù)據(jù)描述相關(guān)聯(lián)。因 此,基于內(nèi)容散列或組塊簽名的比較可以允許為具有相同內(nèi)容但是具有不同元數(shù)據(jù)的文件 共享備份存儲(chǔ)(例如來自云)。
[0068]備份操作可以被繼續(xù)和/或被切換。例如,備份操作可以在網(wǎng)絡(luò)連接丟失時(shí)被暫 停。備份操作可以在網(wǎng)絡(luò)連接被重新建立時(shí)繼續(xù)。在一個(gè)實(shí)施例,(例如經(jīng)由MMCS服務(wù))基 于從文件內(nèi)容生成的簽名可以確定要備份哪些文件以用于被繼續(xù)的備份操作。如果文件系 統(tǒng)中的文件在備份操作被暫停之前改變了,則可以在繼續(xù)(或打開)備份操作之前再次掃描 文件系統(tǒng)。在一些實(shí)施例中,為了優(yōu)化,在向MMCS服務(wù)進(jìn)行咨詢以確定文件是否改變之前, 文件的修改時(shí)間戳(或值)可以與在掃描文件系統(tǒng)時(shí)備份高速緩存中的對(duì)應(yīng)時(shí)間戳比較。
[0069]設(shè)備與源或主機(jī)之間的備份/恢復(fù)操作可以基于同步錨技術(shù)被暫停(或終 止)和繼續(xù),諸如設(shè)備上的設(shè)備錨和主機(jī)上的主機(jī)錨。在Gordon J.Freedman的標(biāo)題為 “Synchronization Methods and Systems”的公開的美國專利N0.7,807,403 中記載了同步 錨技術(shù)的示例,該申請(qǐng)通過引用被全部結(jié)合于此。
[0070]在一個(gè)實(shí)施例中,資源可以從被動(dòng)態(tài)配置的多個(gè)源分割地恢復(fù)到設(shè)備。例如,已購 買資產(chǎn),諸如應(yīng)用、音樂、圖形、視頻、電視劇或其它媒體數(shù)據(jù),可以在被請(qǐng)求時(shí)被從云中的 一個(gè)或多個(gè)商店下載到設(shè)備。已購買資產(chǎn)可以存儲(chǔ)在本地計(jì)算機(jī)(例如,其由設(shè)備用戶擁 有)并且也已經(jīng)準(zhǔn)備好恢復(fù)到設(shè)備。
[0071]在一個(gè)實(shí)施例中,在設(shè)備在本地計(jì)算機(jī)的附近范圍內(nèi)移動(dòng)時(shí)從云(例如商店)恢復(fù) 已購買的資產(chǎn)時(shí),可以在設(shè)備與本地計(jì)算機(jī)之間建立連接(例如有線或無線連接)。在檢測 本地計(jì)算機(jī)中的已購買資產(chǎn)的連接和可用性時(shí),設(shè)備可以將已購買資產(chǎn)的恢復(fù)源動(dòng)態(tài)地從 云切換到本地計(jì)算機(jī)來完成對(duì)已購買資產(chǎn)的剩余部分的恢復(fù)(例如經(jīng)由本地計(jì)算機(jī)中托管 的iTunes?軟件)。因此,網(wǎng)絡(luò)連接成本可以降低并且恢復(fù)性能可以提高。
[0072]在一些實(shí)施例中,設(shè)備的資源從多個(gè)源(諸如商店、本地計(jì)算機(jī)或云存儲(chǔ)裝置)的 可獲得性可以基于資源的元數(shù)據(jù)來跟蹤。如果特定資源已經(jīng)存在于商店或本地計(jì)算機(jī)中, 則特定資源可以從現(xiàn)有資源恢復(fù)到設(shè)備,而不需要備份特定資源的實(shí)際內(nèi)容。例如,資源的 元數(shù)據(jù)可以指示與設(shè)備相關(guān)聯(lián)的賬戶的已購買資源的所有權(quán)。已購買資源可以是可容易地 從來自云和/或本地計(jì)算機(jī)的諸如商店之類的可用源獲得的。因此,已購買資源可以從可用資源重新下載而不需要備份。
[0073]在一個(gè)實(shí)施例中,設(shè)備中的資源諸如設(shè)置、賬戶數(shù)據(jù)、應(yīng)用數(shù)據(jù)和/或已購買資產(chǎn) 可以被備份到本地計(jì)算機(jī)。資源的一些部分諸如設(shè)置和/或應(yīng)用數(shù)據(jù)也可以被備份到云存 儲(chǔ)裝置。資源的某些部分諸如已購買資產(chǎn)可以被維護(hù)在云中的商店中并且可在商店中獲 得。資源可以在可用時(shí)被從本地計(jì)算機(jī)恢復(fù),以及當(dāng)本地計(jì)算機(jī)沒有連接到設(shè)備時(shí)或當(dāng)不 能在本地計(jì)算機(jī)中定位資源時(shí)從云存儲(chǔ)裝置和/或商店恢復(fù)??梢越?jīng)由同步操作與中央服 務(wù)同步的某些資產(chǎn),諸如電子郵件、日歷表或其它適用的資源不可以通過備份操作被備份。
[0074]在某些實(shí)施例中,元數(shù)據(jù)服務(wù)諸如MBS服務(wù)可以在向設(shè)備提供授權(quán)令牌以用于備 份操作時(shí)選擇設(shè)備中的哪些資源被允許備份。例如,某些第三方應(yīng)用和/或數(shù)據(jù)可以被過 濾并且不被允許備份。在一個(gè)實(shí)施例中,從備份過濾的數(shù)據(jù)可以包括被第三方應(yīng)用聲明為 不需要備份的目錄或文檔,諸如高速緩存的數(shù)據(jù)或能夠被重新生成的索引??商娲兀獋?份的資源可以根據(jù)對(duì)設(shè)備的相關(guān)聯(lián)的賬戶施加的備份數(shù)據(jù)的總大小的配額限制而識(shí)別。
[0075]在一個(gè)實(shí)施例中,可以相對(duì)于多個(gè)源(例如,云商店、本地計(jì)算機(jī)、商店等等)跟蹤 是否已經(jīng)為設(shè)備恢復(fù)所有資源(或是否完成恢復(fù)操作),其中不同資源或某些資源的不同部 分可以從這多個(gè)源恢復(fù)。例如,在與設(shè)備通信的本地計(jì)算機(jī)中運(yùn)行的iTunes?可以確定 存儲(chǔ)在云中但不是本地計(jì)算機(jī)中的特定資源還沒有被恢復(fù)回到設(shè)備。特定資源可以經(jīng)由用 于設(shè)備的本地計(jì)算機(jī)被檢索來完成恢復(fù)操作。
[0076]作為示例,針對(duì)與用戶相關(guān)聯(lián)的賬戶激活的諸如新電話之類的新設(shè)備可以從賬戶 的云備份恢復(fù)。設(shè)備可以利用具有識(shí)別賬戶和設(shè)備的標(biāo)識(shí)符的諸如MBS服務(wù)的備份服務(wù)來 啟動(dòng)恢復(fù)操作。相應(yīng)地,例如,可以利用MBS服務(wù)來確定要恢復(fù)的資源的描述。云存儲(chǔ)裝置 可以(例如經(jīng)由配置、被動(dòng)態(tài)發(fā)現(xiàn)或從連接的服務(wù)獲取等)而被定位以恢復(fù)所確定的資源。 可替代地,如果發(fā)現(xiàn)運(yùn)行對(duì)應(yīng)的備份服務(wù)應(yīng)用諸如iTunes?的本地計(jì)算機(jī)是可用的(例 如在設(shè)備的連接范圍內(nèi)),則可以從本地計(jì)算機(jī)檢索資源而不需要訪問遠(yuǎn)程云存儲(chǔ)裝置。
[0077]設(shè)備中的恢復(fù)操作可以在多個(gè)階段中執(zhí)行,例如,模態(tài)恢復(fù)階段,然后是后臺(tái)恢復(fù) 階段。諸如設(shè)置或元數(shù)據(jù)之類的必要文件或信息可以首先在模態(tài)恢復(fù)階段原子地恢復(fù)(例 如,或者所有必要文件被恢復(fù)或者無必要文件被恢復(fù))以允許設(shè)備引導(dǎo)到工作情況并迅速 變?yōu)榭晒┯脩羰褂?,而不需要等待其余恢?fù)操作的完成。在模態(tài)恢復(fù)階段期間,設(shè)備可以是 鋪設(shè)(laying down)系統(tǒng)文件并且可能不可操作用于接收用戶輸入。原子恢復(fù)可以確保即 使在資源被完整恢復(fù)之前設(shè)備也以一致的數(shù)據(jù)集運(yùn)行。
[0078]隨后,在后臺(tái)恢復(fù)階段期間,恢復(fù)設(shè)備所需的其余資源可以被從可用備份資源諸 如云存儲(chǔ)裝置和/或本地計(jì)算機(jī)拉取到后臺(tái)中。例如,大小可調(diào)的資源,諸如媒體資產(chǎn)(例 如照片、視頻、語音文件等)的實(shí)際內(nèi)容、第三方應(yīng)用數(shù)據(jù)或其它適用的資源可以在后臺(tái)恢 復(fù)階段期間被拉取而不影響設(shè)備的操作或用戶使用設(shè)備的至少一些功能或能力的能力;例 如,用戶可以能夠在后臺(tái)恢復(fù)階段期間發(fā)送文本消息或?yàn)g覽因特網(wǎng)或進(jìn)行語音電話呼叫。
[0079]在一個(gè)實(shí)施例中,設(shè)備可以被與本地計(jì)算機(jī)(例如運(yùn)行iTunes?應(yīng)用的 iTunes⑧計(jì)算機(jī))同步(例如經(jīng)由同步操作)以確保設(shè)備上的某些內(nèi)容或資源(例如音樂、 應(yīng)用、播客、視頻、鈴聲、照片、筆記、電子郵件賬戶設(shè)置、聯(lián)系人、日歷表和書簽)與本地計(jì)算 機(jī)中對(duì)應(yīng)資源的用戶選定子集匹配。應(yīng)用數(shù)據(jù)可以在同步時(shí)被從設(shè)備備份到本地計(jì)算機(jī)(例如,iTunes?備份中)。已購買資產(chǎn)諸如應(yīng)用或媒體內(nèi)容可以被從本地計(jì)算機(jī)下載到設(shè)備以用于同步(例如經(jīng)由11 unes?庫)。
[0080]在一個(gè)實(shí)施例中,設(shè)備與本地計(jì)算機(jī)之間的同步操作可以在設(shè)備的后臺(tái)恢復(fù)(階段)期間(或之后)執(zhí)行。設(shè)備和iTunes? I算機(jī)之間的通信或連接在后臺(tái)恢復(fù)之前可能不可用,因?yàn)樵O(shè)備還沒有被引導(dǎo)進(jìn)入工作情況。同步操作可以能夠?qū)①Y產(chǎn)(例如已購買媒體和/或應(yīng)用)從本地計(jì)算機(jī)(例如作為iTunes?庫)恢復(fù)到設(shè)備。
[0081]可選地或附加地,同步操作可以將應(yīng)用數(shù)據(jù)或用戶數(shù)據(jù)從本地計(jì)算機(jī)(例如作為 iTunes?備份)恢復(fù)到設(shè)備。在一個(gè)實(shí)施例中,同步操作可以包括iTunes?'計(jì)算機(jī) 與設(shè)備之間的比較來識(shí)別供設(shè)備同步的資源的列表?;謴?fù)操作和同步操作可以依賴于公共的模塊,諸如在設(shè)備中運(yùn)行的用于從適用的源拉取實(shí)際的內(nèi)容或比特?cái)?shù)據(jù)的ATC (空中流量控制器)碼。當(dāng)設(shè)備被與iTunes?設(shè)備耦合或連接以將資源從iTunes?設(shè)備遷移(transfer)以供同步操作和/或恢復(fù)操作時(shí),ATC可以自動(dòng)地通知系統(tǒng)事件諸如 iTunes?同步(或配對(duì))事件。
[0082]在一個(gè)實(shí)施例中,設(shè)備中的恢復(fù)操作可以利用連接的備份服務(wù)(例如iT unes? 計(jì)算機(jī)或MBS服務(wù))進(jìn)行檢查來確定恢復(fù)資源的最佳源??梢葬槍?duì)單獨(dú)的資源或資產(chǎn)識(shí)別不同的源,諸如云中的備份存儲(chǔ)裝置(或云備份)、本地計(jì)算機(jī)中的備份(例如iTunes?備份)、云中的商店(例如iTunes?商店)、本地計(jì)算機(jī)中的本地庫(例如iTunes?庫)。一種類型的數(shù)據(jù)可以從一個(gè)源恢復(fù)而另一類型的數(shù)據(jù)可以從單獨(dú)的源恢復(fù)。例如,照片可以從云存儲(chǔ)裝置恢復(fù),音樂內(nèi)容可以從商店恢復(fù),應(yīng)用可以從本地庫恢復(fù),應(yīng)用數(shù)據(jù)可以從云存儲(chǔ)裝置恢復(fù),等等。通常,本地計(jì)算機(jī)中的源可以優(yōu)先于來自云的源,因?yàn)槔绮荒敲窗嘿F的連接成本和/或更高的可用網(wǎng)絡(luò)帶寬。
[0083]在一些實(shí)施例中,可以在多個(gè)階段中執(zhí)行同步操作,諸如事務(wù)性階段,然后是盡力而為階段。在事務(wù)性階段期間,可以識(shí)別描述用于在設(shè)備和本地計(jì)算機(jī)之間進(jìn)行同步的資源的列表的元數(shù)據(jù)。元數(shù)據(jù)可以是以事務(wù)性方式(例如所有或無)從本地計(jì)算機(jī)接收的。在盡力而為階段期間,用元數(shù)據(jù)描述的資產(chǎn)可以從考慮例如可獲得性、性能、成本和/或其它適用的因素而動(dòng)態(tài)確定的不同源被同步到設(shè)備。
[0084]在某些實(shí)施例中,用于恢復(fù)資源的不同源可以基于例如與資源相關(guān)聯(lián)的元數(shù)據(jù)而被動(dòng)態(tài)識(shí)別。同步操作可以從本地耦合或連接的計(jì)算機(jī)(例如iTunes--計(jì)算機(jī))推送與設(shè)備同步所需的資源的列表的描述。已購買的資產(chǎn)諸如歌曲、視頻、電影、應(yīng)用等可以或者從云中的商店或者從本地計(jì)算機(jī)(例如經(jīng)由iTunes?庫)遷移。不是從商店購買或獲取的媒體諸如用戶拍攝的照片或從其它設(shè)備下載的視頻可以從云存儲(chǔ)裝置或從本地計(jì)算機(jī)(例如經(jīng)由iTunes?備份)恢復(fù)。
[0085]恢復(fù)次序的動(dòng)態(tài)配置可以被有利地應(yīng)用在多階段恢復(fù)的稍后階段(例如在第一階段或模態(tài)階段之后)中以用于提高設(shè)備的效率和/或可用性。例如,可以在恢復(fù)的起始(或第一)階段中為恢復(fù)識(shí)別資源或資產(chǎn)的列表。在恢復(fù)的稍后階段期間,諸如用于實(shí)際數(shù)據(jù)遷移的后臺(tái)階段期間,選擇接下來恢復(fù)哪些所識(shí)別的資源會(huì)遵循立即動(dòng)態(tài)確定的次序或優(yōu)先級(jí)。多個(gè)資源可以被同時(shí)遷移以用于例如經(jīng)由多個(gè)線程或處理恢復(fù)。
[0086]依賴于為還有待于恢復(fù)或正在恢復(fù)的資源而配置的各種啟發(fā)式標(biāo)準(zhǔn)和/或設(shè)備 的工作狀態(tài),選擇接下來要遷移的(一個(gè)或多個(gè))資源的次序可以在運(yùn)行時(shí)期間更改。例如, 較小大小和/或要求較少遷移時(shí)間的資源(例如較高的帶寬可用于相關(guān)聯(lián)的資源)可以被排 得較高(例如具有被選作下一個(gè)要恢復(fù)的資源的較高可能性)。
[0087]在一個(gè)實(shí)施例中,可以跟蹤設(shè)備的使用來確定資源應(yīng)當(dāng)如何為恢復(fù)而排序或排列 優(yōu)先級(jí)以增大設(shè)備的可使用性。例如,可以按照相關(guān)聯(lián)的應(yīng)用來對(duì)資源排序。在某些實(shí)施 例中,最近使用的應(yīng)用的資源可以比較早使用的應(yīng)用的資源被指派更高的優(yōu)先級(jí)。當(dāng)前使 用的應(yīng)用(例如電影或視頻播放)可以被識(shí)別為最近使用的應(yīng)用,預(yù)期與該應(yīng)用相關(guān)聯(lián)的的 應(yīng)用數(shù)據(jù)會(huì)很快被用戶訪問。
[0088]在一些實(shí)施例中,要恢復(fù)的資源可以按照與資源相關(guān)聯(lián)的圖標(biāo)的顯示次序被排列 優(yōu)先級(jí)。例如,與資源相關(guān)聯(lián)的的應(yīng)用圖標(biāo)和/或媒體圖標(biāo)可以根據(jù)顯示次序在設(shè)備的顯 示器上呈現(xiàn)。顯示次序可以反映由設(shè)備的用戶隱含地指定的優(yōu)先級(jí)??蛇x地或另外地,可 以接收用戶輸入(例如在顯示器屏幕上的輕觸)來動(dòng)態(tài)地控制資源應(yīng)當(dāng)如何遷移(例如,暫 停、重新開始、開始等等)。
[0089]在一個(gè)實(shí)施例中,可以利用基于啟發(fā)式地配置的特征和/或動(dòng)態(tài)識(shí)別的因素而指 派的次序來建立用于恢復(fù)的資源的列表。特征可以包括有關(guān)資源的規(guī)范信息諸如大小、類 型、位置和/或與資源相關(guān)聯(lián)的的其它適用的元數(shù)據(jù)。例如,已購買資產(chǎn)的類型的資源可以 比用戶創(chuàng)建的內(nèi)容的類型的另一資源具有用于恢復(fù)的更高的優(yōu)先級(jí)。資源的位置可以指示 是在哪兒為設(shè)備生成或購買資源的。和與設(shè)備的當(dāng)前位置更靠近的位置相關(guān)聯(lián)的資源可以 比更遠(yuǎn)離設(shè)備的另一位置的另一資源具有更高優(yōu)先級(jí)。
[0090]動(dòng)態(tài)因素可以基于不斷改變的工作環(huán)境或設(shè)備中的使用模式即時(shí)確定。例如,動(dòng) 態(tài)因素可以包括可用(恢復(fù))源(例如云存儲(chǔ)裝置、商店、本地計(jì)算機(jī)等等)、應(yīng)用的使用歷 史、與應(yīng)用圖標(biāo)相關(guān)聯(lián)的顯示次序、用戶輸入或其它適用的因素。通常,可以從可用源遷移 的資源可以比不是從當(dāng)前可用的源找到的另一資源具有更高的優(yōu)先級(jí)。資源的使用歷史可 以包括例如頻率、資源(例如經(jīng)由應(yīng)用)被訪問的最后時(shí)間、使用賬戶和/或其它使用統(tǒng)計(jì) 值。具有較高使用頻率的資源可以被排列得較高。
[0091 ] 在一個(gè)實(shí)施例中,用于恢復(fù)的資源的初始列表可以在多階段恢復(fù)的第一階段(例 如模態(tài)階段)期間建立。啟發(fā)式地確定的特征和/或動(dòng)態(tài)因子可以表示為例如按照每個(gè)資 源的單獨(dú)的組合啟發(fā)式權(quán)重被指派并被組合來確定資源列表中的恢復(fù)次序的啟發(fā)式權(quán)重。 在資源的稍候階段期間,可以將具有(一個(gè)或多個(gè))最高權(quán)重的(一個(gè)或多個(gè))資源選擇為接 下來進(jìn)行下載。
[0092]例如,用于恢復(fù)的經(jīng)排序的資源列表可以被轉(zhuǎn)發(fā)給能夠從至少一個(gè)恢復(fù)源(例如 云存儲(chǔ)裝置、商店和/或iTunes?計(jì)算機(jī))恢復(fù)資源的恢復(fù)進(jìn)程。恢復(fù)進(jìn)程可以跟蹤恢復(fù) 的狀況、監(jiān)視環(huán)境的改變(例如網(wǎng)絡(luò)連接、電力狀況)、檢測用戶輸入等以改變用于恢復(fù)的資 源的次序?;謴?fù)可以被中斷(例如經(jīng)由用戶輸入和/或環(huán)境的改變)來重新建立具有新的次 序的新的資源列表來以新建立的列表繼續(xù)。
[0093]在一個(gè)實(shí)施例中,用于從特定源(例如iTunes?計(jì)算機(jī)或云存儲(chǔ)裝置等)恢復(fù)的 資源的隊(duì)列可以按照為恢復(fù)而識(shí)別的當(dāng)前已排序的資源列表來維護(hù)??梢詾椴煌脑淳S護(hù)單獨(dú)的隊(duì)列。在一些實(shí)施例中,當(dāng)在運(yùn)行時(shí)期間(例如由于用戶中斷、選擇和/或其它系統(tǒng) 事件等)動(dòng)態(tài)建立資源列表時(shí),可以根據(jù)新建立的資源列表來更新每個(gè)隊(duì)列(例如通過將特 定資源移動(dòng)到隊(duì)列的頂部)以繼續(xù)恢復(fù)。
[0094]在一些實(shí)施例中,可以按照經(jīng)由設(shè)備如何使用資源來以協(xié)作方式恢復(fù)資源的實(shí)際 內(nèi)容。例如,資源可以圍繞應(yīng)用被沙盒封裝(sandboxed)以允許應(yīng)用在恢復(fù)設(shè)備時(shí)迅速變 得可訪問。應(yīng)用程序和相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)(或設(shè)置)可以被沙盒封裝以一起被恢復(fù)。
[0095]依賴于用于應(yīng)用的資源,諸如可執(zhí)行程序、庫、應(yīng)用設(shè)置、應(yīng)用數(shù)據(jù)(或用戶輸入, 諸如由用戶經(jīng)由應(yīng)用創(chuàng)建的文檔)等,可以維護(hù)在沙盒內(nèi)以識(shí)別將這些資源恢復(fù)到設(shè)備的 次序。即使在所有被沙盒封裝的資源被恢復(fù)之前,也可以使應(yīng)用可用于設(shè)備的用戶。例如, 運(yùn)行音樂播放器應(yīng)用可以在音樂內(nèi)容文件被遷移到設(shè)備之前要求播放器設(shè)置被恢復(fù)。
[0096]在一個(gè)實(shí)施例中,多階段恢復(fù)可以與用戶接口協(xié)調(diào)來允許用戶在恢復(fù)期間與設(shè)備 交互(例如,在設(shè)備被完全恢復(fù)之前)??梢葬槍?duì)每個(gè)恢復(fù)階段的實(shí)況更新狀況或進(jìn)度而呈 現(xiàn)占位符??梢愿鶕?jù)經(jīng)由用戶接口接收的輸入動(dòng)態(tài)地重新排列資源的實(shí)際遷移的次序。
[0097]例如,應(yīng)用(例如,照片瀏覽器、視頻播放器、音樂播放器等)和相關(guān)聯(lián)的應(yīng)用設(shè)置 可以被恢復(fù)來在用戶接口上呈現(xiàn)對(duì)應(yīng)的應(yīng)用圖標(biāo)以指示該應(yīng)用是可用的。當(dāng)檢測到與應(yīng)用 的用戶交互(例如看著照片)時(shí),較高的優(yōu)先級(jí)可以被指派給與相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)(例如照 片)有關(guān)的資源以用于動(dòng)態(tài)地改變恢復(fù)次序。
[0098]在一個(gè)實(shí)施例中,當(dāng)設(shè)備正被恢復(fù)時(shí),應(yīng)用可以跟蹤應(yīng)用的恢復(fù)的狀態(tài)。應(yīng)用的恢 復(fù)的狀態(tài)可以例如經(jīng)由“下拉列表”型用戶接口元素、溫度計(jì)式進(jìn)度指示符的表示或其它適 用的用戶接口元素來呈現(xiàn)。用于應(yīng)用的資產(chǎn)是否可用可以經(jīng)由用戶接口指示。
[0099]在某些實(shí)施例中,用于呈現(xiàn)恢復(fù)的狀態(tài)的用戶接口元素可以包括基于影響恢復(fù)的 總體速度的因素的組合的合成進(jìn)度指示符。因素可以是根據(jù)例如應(yīng)用的大小、應(yīng)用從應(yīng)用 源下載的速度、用戶數(shù)據(jù)大小、從用戶數(shù)據(jù)的源下載用戶數(shù)據(jù)的速度、安裝時(shí)間、媒體內(nèi)容 (例如音樂、加密數(shù)據(jù)等)的解密時(shí)間和/或其它適用的因素。依賴于例如媒體類型和/或 上下文(例如對(duì)于跳板(springboard)上下文、iPod?應(yīng)用等),合成進(jìn)度指示符可以表示 或顯示為直觀的唯一的溫度計(jì)式指示符、餅圖式指示符或其它適用的用戶接口式指示符。
[0100]在一些實(shí)施例中,可以依賴于恢復(fù)的狀態(tài)來呈現(xiàn)(或使能)不同用戶接口組件/功 能。例如,(例如在恢復(fù)的第一階段期間)已經(jīng)被識(shí)別為要恢復(fù)但是還沒有被恢復(fù)的資產(chǎn)可 以被灰顯以例如禁用對(duì)針對(duì)這些資產(chǎn)的應(yīng)用的用戶激活。然而,可以針對(duì)還未被恢復(fù)的資 產(chǎn)允許某些用戶接口操作,諸如記錄、重命名和/或刪除。在一些實(shí)施例中,恢復(fù)的狀態(tài)可
以包括資產(chǎn)的可獲得性或不可獲得性。源接口模塊可以確定要從源(例如iTunes?商店、
資產(chǎn)商店或其它適用的存儲(chǔ)裝置)恢復(fù)的資產(chǎn)當(dāng)前是否可獲得,例如,是否存在于源中和/ 或是否與不正確的訪問憑證(例如資產(chǎn)的元數(shù)據(jù)中所包括的口令)相關(guān)聯(lián)。
[0101]在一個(gè)實(shí)施例中,為恢復(fù)識(shí)別的資源或資產(chǎn)的列表可以被維護(hù)在例如ATC模塊或 公共模塊中以用于同步和恢復(fù)操作兩者,以動(dòng)態(tài)地改變恢復(fù)次序和/或報(bào)告恢復(fù)進(jìn)度。應(yīng) 用可以經(jīng)由插件模塊(例如庫)和/或API (應(yīng)用編程接口)來訪問恢復(fù)進(jìn)度。相應(yīng)地,應(yīng)用 可以經(jīng)由用戶接口操作例如灰顯圖標(biāo)、旋轉(zhuǎn)圖標(biāo)、移動(dòng)進(jìn)度條或其它適用的用戶接口變化 等來提供恢復(fù)進(jìn)度的實(shí)況更新。例如,用戶接口可以呈現(xiàn)應(yīng)用的恢復(fù)進(jìn)度以指示已經(jīng)為該應(yīng)用恢復(fù)了 20%或其它百分比的資產(chǎn)。
[0102]應(yīng)用可以中斷或改變?cè)诤笈_(tái)階段中工作的恢復(fù)操作。例如,用戶可以輕觸針對(duì)從 商店購買的媒體資產(chǎn)(例如歌曲或視頻)的應(yīng)用。作為響應(yīng),該應(yīng)用可以例如經(jīng)由插件模塊 或API來例如經(jīng)由ATC模塊請(qǐng)求對(duì)資產(chǎn)遷移重新排列優(yōu)先級(jí)。用于云中的資產(chǎn)商店的源接 口模塊(例如itune商店化的)可以被指示將用戶輕觸的媒體資產(chǎn)放在相關(guān)聯(lián)的隊(duì)列頂部來 繼續(xù)恢復(fù)或遷移。
[0103]在一個(gè)實(shí)施例中,設(shè)備可以在備份操作期間監(jiān)視電源的狀態(tài)以保持魯棒的用戶體 驗(yàn)。在檢測到與電源的改變有關(guān)的系統(tǒng)事件時(shí),設(shè)備可以以透明的不會(huì)被用戶注意到的方 式終止或取消(例如在后臺(tái)中的)備份(或恢復(fù))資源的進(jìn)程。系統(tǒng)事件可以例如通過拔出 或斷開設(shè)備的電源線、感應(yīng)墊或其它電力傳輸機(jī)構(gòu)而引起。
[0104]在一些實(shí)施例中,事件可以基于監(jiān)視設(shè)備是否被插入到具有充足電力的電源而產(chǎn) 生(例如,如果電源不具有足夠的電力則停止備份)??商鎿Q地或可選地,事件可以基于設(shè)備 中的屏幕是打開還是關(guān)閉和/或設(shè)備的網(wǎng)絡(luò)連接的狀況。例如,如果屏幕打開(例如因?yàn)闊o 論什么原因),則可以取消設(shè)備的自動(dòng)備份以避免影響用戶接口性能。例如,如果事件指示 設(shè)備不再連接到WiFi網(wǎng)絡(luò),則可以暫停自動(dòng)備份以避免經(jīng)由蜂窩電話網(wǎng)絡(luò)使用蜂窩數(shù)據(jù)。
[0105]在一些實(shí)施例中,可以發(fā)布警告來為用戶提供選擇是否繼續(xù)備份/恢復(fù)的選項(xiàng)。 設(shè)備可以在工作狀態(tài)保持被供電以例如保存電池電力,而不會(huì)由于用戶不知道的后臺(tái)中的 備份/恢復(fù)操作引起電力泄漏。
[0106]在一個(gè)實(shí)施例中,備份/恢復(fù)狀態(tài)可以保持在設(shè)備中以允許例如當(dāng)外部電力線被 插回時(shí)繼續(xù)備份/恢復(fù)操作。備份操作可以被繼續(xù)以重新掃描設(shè)備來識(shí)別哪些資源已經(jīng)被 備份而不必對(duì)在例如當(dāng)外部電力線被拔出之前已經(jīng)被備份的資源執(zhí)行不必要的備份操作。
[0107]圖1是圖示出根據(jù)本文所描述的一個(gè)實(shí)施例的用于多階段多源備份和恢復(fù)的網(wǎng) 絡(luò)系統(tǒng)的一個(gè)實(shí)施例的框圖。聯(lián)網(wǎng)系統(tǒng)100可以包括動(dòng)態(tài)配置的網(wǎng)絡(luò)109,其連接服務(wù)101、 103、105、107、117和設(shè)備111、113。例如,客戶端設(shè)備113諸如電話設(shè)備可以根據(jù)設(shè)備113 所處的位置而被偶發(fā)地與資產(chǎn)商店服務(wù)107連接。設(shè)備113可以(例如經(jīng)由電線)本地地 耦接或直接地連接到本地備份設(shè)備111,本地備份設(shè)備111可以是能夠訪問大容量存儲(chǔ)設(shè) 備諸如硬盤、固態(tài)設(shè)備、閃存或其它存儲(chǔ)設(shè)備的臺(tái)式計(jì)算機(jī)。在一個(gè)實(shí)施例中,客戶端設(shè)備 113可以經(jīng)由即時(shí)識(shí)別的多個(gè)源(例如服務(wù)器、服務(wù)或本地設(shè)備)101、103、105、107、111、117 被備份和/或恢復(fù)。備份服務(wù)或源諸如服務(wù)101、103、105、107、111、117或其它適用的內(nèi)容 服務(wù)可以能夠在被請(qǐng)求時(shí)將資產(chǎn)或內(nèi)容重新存儲(chǔ)到設(shè)備諸如設(shè)備113,而不需要設(shè)備備份 資產(chǎn)。
[0108]圖2是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的用于多階段多源備份和恢復(fù)的 示例性系統(tǒng)的框圖。在一個(gè)實(shí)施例中,系統(tǒng)200可以基于圖1的客戶端設(shè)備113,其運(yùn)行操 作環(huán)境201,其可以基于來自蘋果公司的iOS?操作系統(tǒng)或其它適用的操作系統(tǒng)。
[0109]系統(tǒng)201可以包括備份/恢復(fù)管理模塊207,其用于經(jīng)由網(wǎng)絡(luò)接口模塊203利用 選定源來備份和恢復(fù)設(shè)備的資源。資源可以包括例如文件系統(tǒng)217中的文件。模塊207可 以在用戶配置的時(shí)間表上例如每天、每周或按需從經(jīng)由遠(yuǎn)程設(shè)備和/或用戶輸入接收的請(qǐng) 求啟動(dòng)備份/恢復(fù)操作。在一些實(shí)施例中,模塊207可以響應(yīng)于經(jīng)由系統(tǒng)事件處理器模塊 205監(jiān)視的系統(tǒng)事件諸如外部電源丟失(例如當(dāng)外部電源線被拔出時(shí))來中斷或繼續(xù)備份/恢復(fù)操作。
[0110]本地?cái)?shù)據(jù)庫209可以高速緩存或存儲(chǔ)為設(shè)備備份的一個(gè)或多個(gè)快照??煺湛梢员?示在某個(gè)時(shí)間點(diǎn)備份的設(shè)備的資源的狀態(tài)。備份/恢復(fù)操作可以允許系統(tǒng)201返回到與快 照對(duì)應(yīng)的之前狀態(tài)。
[0111]在一個(gè)實(shí)施例中,一個(gè)或多個(gè)應(yīng)用諸如應(yīng)用213可以經(jīng)由例如狀況接口模塊221 來與備份/恢復(fù)管理模塊207通信。應(yīng)用213可以作為插件或經(jīng)由API接口與狀況接口模 塊221鏈接。在一個(gè)實(shí)施例中,應(yīng)用213可以訪問相關(guān)聯(lián)的資源的備份/恢復(fù)狀況以經(jīng)由 用戶接口模塊225來呈現(xiàn)進(jìn)度。
[0112]可替換地,應(yīng)用213可以將經(jīng)由用戶接口模塊225接收的用戶請(qǐng)求例如用戶輕觸 動(dòng)作中繼到模塊207以用于即時(shí)對(duì)備份/恢復(fù)操作進(jìn)行重新排序或更改。用戶請(qǐng)求可以 經(jīng)由基于觸摸屏的、基于鼠標(biāo)的、基于指針的、基于語音的或其它適用的用戶接口技術(shù)來接 收。在一個(gè)實(shí)施例中,應(yīng)用213的使用歷史諸如使用內(nèi)容、使用頻率、使用時(shí)間或其它適用 的使用統(tǒng)計(jì)值可以被記錄在使用歷史211中。模塊207可以基于經(jīng)由使用歷史211收集的 信息來動(dòng)態(tài)地配置備份/恢復(fù)操作。
[0113]圖3是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的用于管理使用多個(gè)源在多個(gè)階 段中的備份和恢復(fù)的示例性系統(tǒng)的框圖。系統(tǒng)300可以基于圖2的系統(tǒng)200,系統(tǒng)200包括 備份/恢復(fù)管理模塊207。在一個(gè)實(shí)施例中,系統(tǒng)300可以包括服務(wù)框架309,其能夠發(fā)現(xiàn) 用于執(zhí)行備份/恢復(fù)操作的多個(gè)備份/恢復(fù)源和/或與之接口。
[0114]例如,(例如作為itune商店化進(jìn)程運(yùn)行的)商店接口模塊301可以與可用商店諸 如圖1的商店107通信以用于遷移已購買資源。云接口模塊307可以與云存儲(chǔ)裝置諸如 圖1的云備份服務(wù)101通信以遷移用于備份/恢復(fù)設(shè)備中的資源的實(shí)際內(nèi)容。(例如作為 itune化的進(jìn)程運(yùn)行的)本地設(shè)備接口模塊305可以通過與在本地計(jì)算機(jī)中運(yùn)行的對(duì)應(yīng)服
務(wù)諸如托管在圖1的本地備份設(shè)備ill中的iTunes?交換消息來備份、恢復(fù)和/或同步 資源。在一個(gè)實(shí)施例中,接口模塊301,305, 307可以共享公共接口引擎303,諸如ATC引擎 或模塊,其可以能夠在比接口模塊301,305,307更低抽象層執(zhí)行數(shù)據(jù)遷移。
[0115]多階段處理器模塊311 (例如作為備份進(jìn)程運(yùn)行)可以管理備份/恢復(fù)操作的不 同階段。例如,多階段處理器模塊311可以利用備份服務(wù)105 (例如根據(jù)配置的時(shí)間表)啟 動(dòng)備份操作來識(shí)別對(duì)要備份的資源的快照的描述。在一個(gè)實(shí)施例中,多階段處理器模塊311 可以識(shí)別在模態(tài)階段(或第一階段)和/或后續(xù)階段(例如,后臺(tái)階段)中要恢復(fù)哪些資源, 后續(xù)階段可以是非模態(tài)的(例如,允許與用戶的交互)。
[0116]在一些實(shí)施例中,資源隊(duì)列處理器模塊313可以根據(jù)例如配置的啟發(fā)式和/或用 戶請(qǐng)求來動(dòng)態(tài)地對(duì)用于恢復(fù)和/或備份的資源重新排序。資源或資產(chǎn)可以向根據(jù)服務(wù)框架 309的單獨(dú)的隊(duì)列排序的不同源遷移或從其遷移。在一個(gè)實(shí)施例中,響應(yīng)于在設(shè)備的(例如, 在后臺(tái)中的)恢復(fù)期間從應(yīng)用接收的用戶輕觸動(dòng)作或其它UI動(dòng)作(例如,鼠標(biāo)點(diǎn)擊、語音命 令、鍵盤選擇、手勢等),資源隊(duì)列處理器模塊313以有利于應(yīng)用的方式來對(duì)還有待恢復(fù)的資 源進(jìn)行重新排列優(yōu)先級(jí)。資源隊(duì)列處理器模塊313可以指示服務(wù)框架309更新隊(duì)列以對(duì)例 如與應(yīng)用相關(guān)聯(lián)的資源下載允許較高的優(yōu)先級(jí)。
[0117]圖4是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的用于為設(shè)備執(zhí)行增量備份操作 的處理的一個(gè)實(shí)施例的流程圖。示例性處理400可以由處理邏輯執(zhí)行,處理邏輯可以包括硬件(電路系統(tǒng)、專用邏輯等)、(諸如在專用機(jī)器上運(yùn)行的)軟件或兩者的組合。例如,處理 400可以由圖2的系統(tǒng)200的一些組件執(zhí)行。
[0118]在一個(gè)實(shí)施例中,處理400的處理邏輯可以執(zhí)行包括至少兩個(gè)步驟的備份操作。 處理400的處理邏輯可以將元數(shù)據(jù)發(fā)送給備份服務(wù)(例如,MBS)來從備份服務(wù)接收令牌以 用于對(duì)內(nèi)容服務(wù)(例如MMCS)進(jìn)行認(rèn)證。隨后,處理400的處理邏輯可以使用令牌將實(shí)際內(nèi) 容上載到內(nèi)容服務(wù)。備份服務(wù)中的文件的元數(shù)據(jù)可以利用認(rèn)證令牌更新。
[0119]在框401,處理400的處理邏輯可以在設(shè)備管理服務(wù)器(例如MBS)中定位與設(shè)備對(duì) 應(yīng)的備份。如果發(fā)現(xiàn)沒有與設(shè)備對(duì)應(yīng)的現(xiàn)有備份,則該備份可以被新創(chuàng)建。在框403,處理 400的處理邏輯可以重新建立快照高速緩存(或高速緩存清單)來與備份管理服務(wù)器同步。 在框405,處理400的處理邏輯可以識(shí)別前一備份操作的快照。所識(shí)別的快照可以是未提交 的快照或新創(chuàng)建的快照。所識(shí)別的快照可以包括描述文件系統(tǒng)中的文件的元數(shù)據(jù)。
[0120]在框407,處理400的處理邏輯可以掃描文件系統(tǒng)以例如經(jīng)由與所識(shí)別的快照的 比較來找到文件系統(tǒng)的變化(例如新文件、刪除的文件、修改的文件等)。在框409處,處理 400的處理邏輯可以經(jīng)由與備份管理服務(wù)器、備份服務(wù)管理服務(wù)器(例如,MMCS)和存儲(chǔ)提供 商服務(wù)器(例如,Amazon、S3或云存儲(chǔ)裝置等)的協(xié)調(diào)事務(wù)來執(zhí)行備份操作。在框411,處理 400的處理邏輯可以融合之前創(chuàng)建的快照(例如,刪除舊的快照和/或維護(hù)具有多個(gè)增量快 照的、與一個(gè)完全文件集合對(duì)應(yīng)的一個(gè)完全快照,其中每個(gè)增量快照對(duì)應(yīng)于該文件集合的 相對(duì)于前一快照的增量變化)。
[0121]圖5是圖示出根據(jù)本文中描述的一個(gè)實(shí)施例的在設(shè)備中執(zhí)行增量恢復(fù)操作的處 理的一個(gè)實(shí)施例的流程圖。示例性處理500可以由處理邏輯執(zhí)行,處理邏輯可以包括硬件 (電路系統(tǒng)、專用邏輯等)、(諸如在專用機(jī)器上運(yùn)行的)軟件或兩者的組合。例如,處理500 可以由圖2的系統(tǒng)200的一些組件執(zhí)行。
[0122]在框510,處理500的處理邏輯可以將系統(tǒng)文件從云備份模態(tài)恢復(fù)至設(shè)備(例如, iOS?設(shè)備),而不必對(duì)來自用戶的輸入進(jìn)行響應(yīng)。在模態(tài)恢復(fù)期間,設(shè)備的操作系統(tǒng)可以 是可用的并且在運(yùn)行。在框503,處理500的處理邏輯可以利用恢復(fù)的系統(tǒng)文件來將設(shè)備重 新引導(dǎo)到用戶的工作情況。
[0123]在框505,處理500的處理邏輯可以在后臺(tái)將文件恢復(fù)到設(shè)備。資產(chǎn)(例如已購買 的或已遷移的)可以從云商店(例如,iTunes?商店)下載并且數(shù)據(jù)可以從云備份恢復(fù)。在 框507,處理500的處理邏輯可以從(例如,運(yùn)行iTunes?備份軟件的)用戶計(jì)算機(jī)同步/
分割恢復(fù)文件。文件可以包括已購買的資產(chǎn)和/或不是從云備份恢復(fù)的數(shù)據(jù)。
[0124]圖6是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的動(dòng)態(tài)地對(duì)資源排列優(yōu)先級(jí)以恢 復(fù)設(shè)備的處理的一個(gè)實(shí)施例的流程圖。示例性處理600可以由處理邏輯執(zhí)行,處理邏輯可 以包括硬件(電路系統(tǒng)、專用邏輯等)、(諸如在專用機(jī)器上運(yùn)行的)軟件或兩者的組合。例 如,處理600可以由圖2的系統(tǒng)200的一些組件執(zhí)行。
[0125]在框601,處理600的處理邏輯可以跟蹤設(shè)備(例如,基于iOS?的移動(dòng)設(shè)備)中所 托管的應(yīng)用和/或內(nèi)容的使用模式(例如,次數(shù)、使用時(shí)間、使用位置、使用持續(xù)時(shí)間等)。在 框603,處理600的處理邏輯可以創(chuàng)建要恢復(fù)到設(shè)備的應(yīng)用和/或內(nèi)容的列表。在框605, 處理600的處理邏輯可以確定設(shè)備的當(dāng)前位置。在框607,處理600的處理邏輯可以基于使用模式、與應(yīng)用程序和/或內(nèi)容相關(guān)聯(lián)的適用的元數(shù)據(jù)(例如大小、類型等)和/或在當(dāng)前 位置的可獲得性以一次序來對(duì)要恢復(fù)的應(yīng)用和/或內(nèi)容的列表排列優(yōu)先級(jí)。
[0126]在框609,處理600的處理邏輯使用經(jīng)優(yōu)先級(jí)排序的列表來在當(dāng)前位置將應(yīng)用程 序和/或內(nèi)容恢復(fù)到設(shè)備。在框611,處理600的處理邏輯可以例如經(jīng)由輕觸輸入來檢測 用戶請(qǐng)求,指示一個(gè)或多個(gè)應(yīng)用程序/內(nèi)容上的期望的恢復(fù)優(yōu)先級(jí)。在框613,處理600的 處理邏輯可以根據(jù)所請(qǐng)求的期望的恢復(fù)優(yōu)先級(jí)來動(dòng)態(tài)地改變經(jīng)優(yōu)先級(jí)排序的列表的要恢 復(fù)的應(yīng)用程序和/或內(nèi)容的次序。
[0127]圖7是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的監(jiān)視用于備份和/或恢復(fù)操作的 設(shè)備的電源的示例性系統(tǒng)的框圖。系統(tǒng)700可以基于客戶端設(shè)備,諸如圖1的設(shè)備113。
[0128]系統(tǒng)700可以配置為響應(yīng)于檢測到從外部電源(例如AC/DC適配器、太陽能電池 板、感應(yīng)充電板等)719已經(jīng)停止而終止已經(jīng)開始并正在進(jìn)行中的空中(無線)備份操作。系 統(tǒng)700包括外部電源端口 713諸如耦接到AC/DC適配器或其它外部電源的輸出端的插頭或 插頭的插座,以及在再充電控制器的控制下被再充電的電池717。
[0129]電力檢測器709被耦接到外部電源端口并被耦接到處理系統(tǒng)711,處理系統(tǒng)711可 以是芯片或其它處理系統(tǒng)上的基于微處理器的系統(tǒng);電力檢測器監(jiān)視外部電源的可用性和 再充電處理的狀態(tài)并且基于該監(jiān)視來確定再充電的處理是否已經(jīng)由于從外部電源斷開連 接而終止。電力檢測器可以響應(yīng)于檢測到再充電處理已經(jīng)由于斷開連接而終止,生成使得 處理系統(tǒng)終止無線備份操作的終止信號(hào)(例如,耦接到處理系統(tǒng)的總線上的中斷信號(hào))。
[0130]在一個(gè)實(shí)施例中,備份操作在終止之前已經(jīng)開始并且在進(jìn)行中并且正在備份可以 存儲(chǔ)在系統(tǒng)700的存儲(chǔ)器715中的軟件或用戶數(shù)據(jù)(例如聯(lián)系人、日歷表?xiàng)l目、用戶文本文 件、用戶媒體文件諸如歌曲或照片等)或者兩者。系統(tǒng)700中的處理系統(tǒng)可以執(zhí)行本文中所 描述的任何一個(gè)備份方法來使得軟件和/或用戶數(shù)據(jù)通過備份操作被存儲(chǔ)在遠(yuǎn)程設(shè)備諸 如耦接到網(wǎng)絡(luò)703的服務(wù)器701上。備份處理是通過系統(tǒng)700中的一個(gè)或多個(gè)無線電裝置 (例如,WiFi無線電裝置或蜂窩電話無線電裝置)707而無線地執(zhí)行的,并且這些無線電裝置 耦接到系統(tǒng)700中的處理系統(tǒng)并被耦接到一個(gè)或多個(gè)網(wǎng)絡(luò)。網(wǎng)絡(luò)可以是單個(gè)網(wǎng)絡(luò)(例如無 線LAN)或多個(gè)網(wǎng)絡(luò)或耦接到因特網(wǎng)的蜂窩電話網(wǎng)絡(luò)等等。
[0131]響應(yīng)于終止信號(hào),處理系統(tǒng)可以立即或在為備份操作中的當(dāng)前處理的文件完成備 份操作之后終止正在進(jìn)行的備份處理(其在此時(shí)是未完成的)。本文中所描述的處理系統(tǒng)和 /或一個(gè)或多個(gè)服務(wù)器可以使用簽名或同步錨或其它機(jī)制來保持對(duì)原子備份操作的跟蹤以 便跟蹤提前終止的備份操作中已經(jīng)完成了什么以及提前終止的備份操作中沒完成什么???以由系統(tǒng)700自動(dòng)執(zhí)行備份操作的終止,而沒有用戶請(qǐng)求或交互。
[0132]當(dāng)系統(tǒng)700再次被從外部電源充電時(shí),備份處理可以從終止的狀態(tài)繼續(xù)。在一個(gè) 實(shí)施例中,系統(tǒng)700在其正通過外部電源再充電時(shí)根據(jù)本文中所描述的一種或多種方法被 備份,并且其在與外部電源斷開連接時(shí)終止備份并在再充電繼續(xù)時(shí)從終止的備份狀態(tài)繼 續(xù)。因此,在一個(gè)實(shí)施例中,備份處理響應(yīng)于檢測到外部電源已經(jīng)被連接并且現(xiàn)在正在對(duì)系 統(tǒng)700中的電池充電而或者開始或者繼續(xù),如圖8所示。
[0133]圖8是圖示出根據(jù)本文中所描述的一個(gè)實(shí)施例的中斷設(shè)備的備份和/或恢復(fù)操作 以保存電力的處理的一個(gè)實(shí)施例的流程圖。示例性處理800可以由處理邏輯執(zhí)行,處理邏 輯可以包括硬件(電路系統(tǒng)、專用邏輯等)、(諸如在專用機(jī)器上運(yùn)行的)軟件或兩者的組合。例如,處理800可以由圖2的系統(tǒng)200或圖1的系統(tǒng)700的一些組件執(zhí)行。
[0134]在框801,處理800的處理邏輯可以確定內(nèi)部電池正在再充電。在框803,處理800 的處理邏輯可以作為后臺(tái)進(jìn)程利用(一個(gè)或多個(gè))遠(yuǎn)程備份服務(wù)器來開始備份操作并且監(jiān) 視內(nèi)部電池的再充電狀況。在框805,處理800的處理邏輯可以根據(jù)再充電狀況確定內(nèi)部 電池中的再充電已經(jīng)終止(例如,與AC/DC適配器斷開連接,等等)。在框807,處理800的 處理邏輯可以響應(yīng)于檢測到電池的再充電已經(jīng)終止而終止備份操作。在框809,處理800 的處理邏輯可以響應(yīng)于檢測到電池開始再充電而繼續(xù)備份操作。
[0135]圖9示出可以與本文中所描述的實(shí)施例一起使用的數(shù)據(jù)處理系統(tǒng)的一個(gè)示例。圖 9中示出的數(shù)據(jù)處理系統(tǒng)900包括處理系統(tǒng)911,處理系統(tǒng)911可以是一個(gè)或多個(gè)微處理 器,或者可以是芯片集成電路上的系統(tǒng),并且該系統(tǒng)還包括用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器901和 用于由處理系統(tǒng)執(zhí)行的程序。系統(tǒng)900還包括音頻輸入/輸出子系統(tǒng)905,音頻輸入/輸出 子系統(tǒng)905可以包括麥克風(fēng)和揚(yáng)聲器用于例如播放音樂或通過揚(yáng)聲器和麥克風(fēng)提供電話 功能性。在至少某些實(shí)施例中,系統(tǒng)900可以通過網(wǎng)絡(luò)或本地連接來自動(dòng)地和/或手動(dòng)地 執(zhí)行多階段多源恢復(fù)和備份。在一個(gè)實(shí)施例中,系統(tǒng)900可以包括圖2中所示的系統(tǒng)。
[0136]顯示控制器和顯示設(shè)備907為用戶提供視覺用戶接口 ;該數(shù)字接口可以包括與 Macintosh計(jì)算機(jī)上在運(yùn)行OS X?操作系統(tǒng)軟件時(shí)示出的圖形用戶界面類似的圖形用戶 界面。系統(tǒng)900還包括用于與另一數(shù)據(jù)處理系統(tǒng)通信的一個(gè)或多個(gè)無線收發(fā)器903。無線 收發(fā)器可以是WiFi收發(fā)器、紅外收發(fā)器、藍(lán)牙收發(fā)器和/或無線蜂窩電話收發(fā)器。將明白: 在某些實(shí)施例中,沒有示出的額外的組件也可以是系統(tǒng)900的一部分,而在某些實(shí)施例中, 比圖9中所示更少的組件也可以用在數(shù)據(jù)處理系統(tǒng)中。
[0137]數(shù)據(jù)處理系統(tǒng)還包括被提供以允許用戶向系統(tǒng)提供輸入的一個(gè)或多個(gè)輸入設(shè)備 913。這些輸入設(shè)備可以是小鍵盤或鍵盤或觸摸面板或迷你觸摸面板。數(shù)據(jù)處理系統(tǒng)900 還包括可選的輸入/輸出設(shè)備915,其可以是用于擴(kuò)展塢的連接器。將明白,未示出的一條 或多條總線可以用于互連本領(lǐng)域已知的各種組件。圖9中示出的數(shù)據(jù)處理系統(tǒng)可以是手持 計(jì)算機(jī)或個(gè)人數(shù)字助理(PDA)或具有PDA類似功能性的蜂窩電話,或包括蜂窩電話的手持 計(jì)算機(jī),或諸如iPod之類的媒體播放器,或組合這些設(shè)備的各個(gè)方面或功能的設(shè)備,諸如 在一個(gè)設(shè)備中結(jié)合PDA和蜂窩電話的媒體播放器。在其它實(shí)施例中,數(shù)據(jù)處理系統(tǒng)900可 以是網(wǎng)絡(luò)計(jì)算機(jī)或在另一設(shè)備內(nèi)的嵌入式處理設(shè)備,或者具有比圖9中所示更少組件或可 能更多組件的其它類型的數(shù)據(jù)處理系統(tǒng)。
[0138]圖10示出可以與本發(fā)明中的一個(gè)實(shí)施例一起使用的諸如計(jì)算機(jī)系統(tǒng)之類的數(shù)據(jù) 處理系統(tǒng)的一個(gè)示例。例如,系統(tǒng)1000可以實(shí)現(xiàn)為圖1中所示的系統(tǒng)的一部分。注意,盡 管圖10圖示出計(jì)算機(jī)系統(tǒng)的各種組件,但是不意圖表示互連組件的任何具體的體系架構(gòu) 或方式,因?yàn)檫@樣的細(xì)節(jié)與本發(fā)明關(guān)系不大。還應(yīng)當(dāng)明白,網(wǎng)絡(luò)計(jì)算機(jī)和具有更少組件或可 能更多組件的其它數(shù)據(jù)處理系統(tǒng)也可以與本發(fā)明一起使用。
[0139]如圖10中所示,數(shù)據(jù)處理系統(tǒng)的形式的計(jì)算機(jī)系統(tǒng)1000包括總線1003,總線 1003耦接到(一個(gè)或多個(gè))微處理器1005和ROM (只讀存儲(chǔ)器)1007以及易失性RAM1009和 非易失性存儲(chǔ)器1011。微處理器1005可以從存儲(chǔ)器1007、1009、1011檢索指令并執(zhí)行這些 指令來執(zhí)行上述操作。總線1003將這各種組件互連到一起并且還將這些組件1005、1007、 1009和1011互連到顯示控制器和顯示設(shè)備1013以及到外圍設(shè)備,外圍設(shè)備諸如是輸入/輸出(I/O)設(shè)備,其可以是鼠標(biāo)、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口、打印機(jī)和本領(lǐng)域公知的其它 設(shè)備。通常,輸入/輸出設(shè)備1015通過輸入/輸出控制器1017耦接到系統(tǒng)。易失性RAM (隨機(jī)存取存儲(chǔ)器)1009通常實(shí)現(xiàn)為動(dòng)態(tài)RAM (DRAM),其持續(xù)地要求電力以便刷新或保持存 儲(chǔ)器中的數(shù)據(jù)。
[0140]大容量存儲(chǔ)裝置1011通常是磁硬驅(qū)或磁光驅(qū)或光驅(qū)或DVDRAM或閃存或其它類型 的存儲(chǔ)系統(tǒng),其即便在從系統(tǒng)移除電力之后也保持?jǐn)?shù)據(jù)(例如,大量數(shù)據(jù))。通常,大容量存 儲(chǔ)裝置1011還可以是隨機(jī)存取存儲(chǔ)器,但是這不是必需的。盡管圖10示出大容量存儲(chǔ)裝 置1011是直接地耦接到數(shù)據(jù)處理系統(tǒng)中的組件的其余部分的本地設(shè)備,但是將明白,本發(fā) 明可以利用遠(yuǎn)離系統(tǒng)的非易失性存儲(chǔ)器,諸如通過諸如調(diào)制解調(diào)器或以太網(wǎng)接口或無線聯(lián) 網(wǎng)接口之類的網(wǎng)絡(luò)接口與數(shù)據(jù)處理系統(tǒng)耦接的網(wǎng)絡(luò)存儲(chǔ)設(shè)備??偩€1003可以包括通過本 領(lǐng)域公知的各種橋接器、控制器和/或適配器彼此連接的一條或多條總線。
[0141]以上描述的內(nèi)容中的一些部分可以利用諸如是專用邏輯電路之類的邏輯電路實(shí) 現(xiàn),或者利用執(zhí)行程序代碼指令的微控制器或其它形式的處理核心實(shí)現(xiàn)。通過以上論述教 導(dǎo)的這樣的處理可以利用諸如機(jī)器可執(zhí)行指令之類的程序代碼執(zhí)行,其中機(jī)器可執(zhí)行指令 使得執(zhí)行這些指令的機(jī)器執(zhí)行確定的功能。在該上下文中,“機(jī)器”可以是將中間形式(或 “抽象”)指令轉(zhuǎn)換為處理器特定的指令(例如,抽象執(zhí)行環(huán)境,諸如“虛擬機(jī)”(例如Java虛 擬機(jī))、翻譯器、公共語言運(yùn)行時(shí)、高級(jí)語言虛擬機(jī)等)的機(jī)器,和/或,布置在半導(dǎo)體芯片上 的被設(shè)計(jì)用于執(zhí)行指令的電子電路系統(tǒng)(例如,利用晶體管實(shí)現(xiàn)的“邏輯電路”),諸如通用 處理器和/或?qū)S锰幚砥?。還可以由被設(shè)計(jì)用于執(zhí)行處理(或部分處理)而不必執(zhí)行程序代 碼的電子電路(作為機(jī)器的替代或與機(jī)器組合)來執(zhí)行通過以上論述教導(dǎo)的處理。
[0142]一種制造件可以用于存儲(chǔ)程序代碼。存儲(chǔ)程序代碼的制造件可以實(shí)現(xiàn)為但不限 于一個(gè)或多個(gè)存儲(chǔ)器(例如一個(gè)或多個(gè)閃存、隨機(jī)存取存儲(chǔ)器(靜態(tài)、動(dòng)態(tài)或其它))、光盤、 CD-ROM、DVD ROM、EPROM、EEPR0M、磁卡或光卡或適合用于存儲(chǔ)電子指令的其它類型的機(jī)器 可讀介質(zhì)。程序代碼也可以從遠(yuǎn)程計(jì)算機(jī)(例如服務(wù)器)通過傳播介質(zhì)中包含的數(shù)據(jù)信號(hào) (例如經(jīng)由通信鏈路(例如網(wǎng)絡(luò)連接))下載到進(jìn)行請(qǐng)求的計(jì)算機(jī)(例如,客戶端)。
[0143]這里使用的術(shù)語“存儲(chǔ)器”意圖包含所有易失性存儲(chǔ)介質(zhì),諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ) 器(DRAM)和靜態(tài)RAM (SRAM)0計(jì)算機(jī)可執(zhí)行指令可以存儲(chǔ)在非易失性存儲(chǔ)設(shè)備諸如磁硬 盤和光盤上并且通常在處理器執(zhí)行軟件期間通過直接存儲(chǔ)器存取處理被寫入存儲(chǔ)器中。本 領(lǐng)域技術(shù)人員將立即認(rèn)識(shí)到,術(shù)語“機(jī)器可讀存儲(chǔ)介質(zhì)”包括處理器可訪問的任何類型的易 失性或非易失性存儲(chǔ)設(shè)備。
[0144]前述詳細(xì)描述是鑒于對(duì)計(jì)算機(jī)存儲(chǔ)器內(nèi)的數(shù)據(jù)比特的操作的算法和符號(hào)表示來 介紹的。這些算法描述和表示是數(shù)據(jù)處理領(lǐng)域技術(shù)人員為了將他們的工作的實(shí)質(zhì)最有效地 傳達(dá)給本領(lǐng)域其它技術(shù)人員所使用的工具。算法在這里通常是構(gòu)想為是導(dǎo)致期望結(jié)果的自 一致的操作序列。這些操作是要求對(duì)物理量的物理操作的那些操作。通常,盡管不是必需 的,這些量采用能夠被存儲(chǔ)、遷移、組合、比較和以其他方式操縱的電信號(hào)或磁信號(hào)的形式。 已經(jīng)證實(shí),有時(shí)主要因?yàn)楣彩褂玫脑?,將這些信號(hào)稱為比特、值、元素、符號(hào)、字符、項(xiàng)、 數(shù)字等是方便的。
[0145]然而,應(yīng)當(dāng)謹(jǐn)記的是,所有這些和類似的術(shù)語將與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)并且僅僅 是應(yīng)用于這些量的便利標(biāo)簽。除非另外具體指明,否則,從以上論述顯見,將明白,通過該描述,利用諸如“處理”或“計(jì)算”或“確定”或“顯示”等的術(shù)語進(jìn)行的論述是指計(jì)算機(jī)系統(tǒng)或 類似的電子計(jì)算設(shè)備將被表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù) 操縱和變換成被類似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它這樣的信息存儲(chǔ)裝置、傳 輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)的動(dòng)作和處理。
[0146]本發(fā)明還涉及用于執(zhí)行本文中所描述的操作的裝置。該裝置可以被具體地構(gòu)造 用于所需的目的,或者其可以包括用存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配 置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,計(jì)算機(jī)可讀存儲(chǔ) 介質(zhì)諸如但不限于是任何類型的盤包括軟盤、光盤、CD-ROM和磁光盤、只讀存儲(chǔ)器(ROM)、 RAM、EPROM、EEPR0M、磁卡或光卡或適合用于存儲(chǔ)電子指令的任何類型的介質(zhì),并且每一個(gè) 都耦接到計(jì)算機(jī)系統(tǒng)總線。
[0147]本文中介紹的處理和顯示并不固有地涉及任何特定的計(jì)算機(jī)或其它裝置。各種通 用系統(tǒng)可以于根據(jù)本文中的教導(dǎo)的程序一起使用,或可以證實(shí),構(gòu)建更專門的裝置用于執(zhí) 行所述操作是便利的。用于各種這些系統(tǒng)的所需結(jié)構(gòu)將從以下描述顯見。另外,本發(fā)明不 是參考任何具體編程語言來描述的。將明白,各種編程語言都可以用于實(shí)現(xiàn)本文中所描述 的本發(fā)明的教導(dǎo)。
[0148]在以上說明中,已經(jīng)參考本發(fā)明的具體示例性實(shí)施例描述了本發(fā)明。將顯見的是, 可以在不偏離對(duì)以下權(quán)利要求書中所闡述的本發(fā)明的更寬的精神和范圍的情況下對(duì)其進(jìn) 行各種修改。相應(yīng)地,說明書和附圖應(yīng)當(dāng)從說明性的含義而不是限制性含義上去理解。
【權(quán)利要求】
1.一種機(jī)器可讀的非暫時(shí)性存儲(chǔ)介質(zhì),其具有指令,所述指令當(dāng)被機(jī)器執(zhí)行時(shí)使得機(jī)器執(zhí)行一種方法,所述方法包括:向第一備份源識(shí)別設(shè)備中的資源的變化;響應(yīng)于從第一備份源接收到用于向第二備份源授權(quán)的令牌,利用所述令牌將所述資源的變化備份到第二備份源;以及如果將所述資源的變化備份到第二備份源是成功的,則將所述資源的變化提交到第一備份源。
2.如權(quán)利要求1所述的介質(zhì),其中,所述識(shí)別包括:將所述設(shè)備的前一快照與第一備份源同步,所述前一快照指示在前一時(shí)間點(diǎn)已經(jīng)為所述設(shè)備備份的資源;將所述設(shè)備的所述資源與所述前一快照比較來得出所述變化。
3.如權(quán)利要求2所述的介質(zhì),其中,所述設(shè)備存儲(chǔ)高速緩存快照并且其中所述同步包括: 經(jīng)由第一備份源確定高速緩存快照是否相對(duì)于所述前一快照過期。
4.如權(quán)利要求2所述的介質(zhì),其中,所述同步基于所述設(shè)備的標(biāo)識(shí)符并且其中在第一備份源中所述前一快照是對(duì)應(yīng)于所述標(biāo)識(shí)符而維護(hù)的。
5.如權(quán)利要求2所述的介質(zhì),其中,所述設(shè)備包括文件系統(tǒng),其中,所述資源包括所述文件系統(tǒng)中的文件并且其中所述比較包括:掃描所述文件系統(tǒng)來基于所述前一快照跟蹤需要備份哪些文件以及已經(jīng)備份了哪些文件。
6.如權(quán)利要求5所述的介質(zhì),其中,如果文件可從網(wǎng)絡(luò)可訪問站點(diǎn)獲得,則所述文件不需要被備份。
7.如權(quán)利要求1所述的介質(zhì),還包括維護(hù)所述資源的元數(shù)據(jù),其中,所述元數(shù)據(jù)描述有關(guān)所述資源的信息而不描述所述資源的實(shí)際內(nèi)容,其中,第一備份源與所述設(shè)備之間的通信是基于作為所述資源的一個(gè)抽象層的所述元數(shù)據(jù)的,以允許用于所述通信的輕量網(wǎng)絡(luò);其中,第二備份源與所述設(shè)備之間的通信是基于作為所述資源的分離的抽象層的、所述資源的實(shí)際內(nèi)容的,以允許第二備份源中的備份存儲(chǔ)裝置的共享。
8.如權(quán)利要求7所述的介質(zhì),其中,所述設(shè)備與具有備份配額的賬戶相關(guān)聯(lián)并且其中所述授權(quán)指示用于所述資源的所述變化的備份空間被保存在所述備份存儲(chǔ)裝置中而不超過所述備份配額。
9.如權(quán)利要求7所述的介質(zhì),其中,所述實(shí)際內(nèi)容的一部分對(duì)應(yīng)于所述資源的所述變化,并且其中,所述備份包括:經(jīng)由所述令牌對(duì)第三備份源進(jìn)行認(rèn)證,第三備份源由第一備份源引用;并且響應(yīng)于從第三備份源接收到的指令,根據(jù)所述資源的所述分離的抽象層將所述實(shí)際內(nèi)容的所述部分分割成數(shù)據(jù)組塊。
10.如權(quán)利要求9所述的介質(zhì),還包括:經(jīng)由第三備份源識(shí)別哪些數(shù)據(jù)組塊不存在并且需要被備份;以及將所識(shí)別的數(shù)據(jù)組塊更新到第二備份源。
11.如權(quán)利要求10所述的介質(zhì),其中,識(shí)別哪些數(shù)據(jù)組塊包括:生成唯一地識(shí)別每個(gè)數(shù)據(jù)組塊的組塊標(biāo)識(shí)符,其中,第三備份源根據(jù)數(shù)據(jù)組塊的組塊標(biāo)識(shí)符來確定該數(shù)據(jù)組塊是否已經(jīng)被備份。
12.如權(quán)利要求11所述的介質(zhì),其中,所述組塊標(biāo)識(shí)符是從對(duì)應(yīng)的組塊數(shù)據(jù)散列的簽名。
13.如權(quán)利要求11所述的介質(zhì),其中,所述資源包括文件,所述文件與從所述文件分割的數(shù)據(jù)組塊中的至少一個(gè)數(shù)據(jù)組塊相關(guān)聯(lián),所述方法還包括:向所述文件指派任意標(biāo)識(shí)符來作為第三備份源中針對(duì)相關(guān)聯(lián)的數(shù)據(jù)組塊的引用,以允許如果所述任意標(biāo)識(shí)符不再被引用則經(jīng)由第三備份源進(jìn)行垃圾回收。
14.如權(quán)利要求13所述的介質(zhì),其中,如果所述備份存儲(chǔ)裝置中存在所述數(shù)據(jù)組塊中的第二數(shù)據(jù)組塊并且第二數(shù)據(jù)組塊由識(shí)別第一數(shù)據(jù)組塊的特定標(biāo)識(shí)符識(shí)別,則第一數(shù)據(jù)組塊不需要被備份,并且其中第一數(shù)據(jù)組塊和第二數(shù)據(jù)組塊與被指派了分別的任意標(biāo)識(shí)符的分別的文件相關(guān)聯(lián)。
15.如權(quán)利要求10所述的介質(zhì),其中,所述上載通過在所述設(shè)備中從第三備份源接收的認(rèn)證密鑰來使能。
16.—種機(jī)器可讀的非暫時(shí)性存儲(chǔ)介質(zhì),其具有指令,所述指令當(dāng)被機(jī)器執(zhí)行時(shí)使得機(jī)器執(zhí)行一種方法,所述方法包括:維護(hù)描述被存儲(chǔ)在設(shè)備中的文件的實(shí)際內(nèi)容的元數(shù)據(jù),所述元數(shù)據(jù)表示用于表示所述文件的第一抽象層;從第一抽象層識(shí)別所述實(shí)際內(nèi)容的一部分,所述實(shí)際內(nèi)容的所述部分要從所述設(shè)備被備份;動(dòng)態(tài)生成要備份的所述實(shí)·際內(nèi)容的所述部分的內(nèi)容標(biāo)識(shí)符,所述內(nèi)容標(biāo)識(shí)符表示用于表示所述文件的第二抽象層,第二抽象層與第一抽象層是分離的;以及將所述實(shí)際內(nèi)容的所述部分經(jīng)由所述內(nèi)容標(biāo)識(shí)符上載到網(wǎng)絡(luò)可訪問存儲(chǔ)裝置。
17.如權(quán)利要求16所述的介質(zhì),所述實(shí)際內(nèi)容的所述部分屬于所述文件的一部分并且其中所述網(wǎng)絡(luò)可訪問存儲(chǔ)裝置存儲(chǔ)不足以恢復(fù)所述文件的所述部分的數(shù)據(jù)。
18.如權(quán)利要求17所述的介質(zhì),其中,所述識(shí)別基于使用與第一備份源通信的第一抽象層的網(wǎng)絡(luò)協(xié)議。
19.如權(quán)利要求17所述的介質(zhì),還包括:經(jīng)由使用第二抽象層的網(wǎng)絡(luò)協(xié)議利用第二備份源識(shí)別用于所述文件的所述部分的所述實(shí)際內(nèi)容的所述部分,所述實(shí)際內(nèi)容的所述部分將被上載到所述網(wǎng)絡(luò)可訪問存儲(chǔ)裝置。
20.如權(quán)利要求17所述的介質(zhì),其中,所述網(wǎng)絡(luò)可訪問存儲(chǔ)裝置經(jīng)由第二備份源被動(dòng)態(tài)配置來增大所述上載的效率。
21.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:向第一備份源識(shí)別設(shè)備中的資源的變化;響應(yīng)于從第一備份源接收到用于向第二備份源授權(quán)的令牌,利用所述令牌將所述資源的變化備份到第二備份源;以及如果將所述資源的變化備份到第二備份源是成功的,則將所述變化提交到第一備份源。
22.—種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括:維護(hù)描述被存儲(chǔ)在設(shè)備中的文件的實(shí)際內(nèi)容的元數(shù)據(jù),所述元數(shù)據(jù)表示用于表示所述文件的第一抽象層;從第一抽象層識(shí)別所述實(shí)際內(nèi)容的一部分,所述實(shí)際內(nèi)容的所述部分要從所述設(shè)備被備份;動(dòng)態(tài)生成要備份的所述實(shí)際內(nèi)容的所述部分的內(nèi)容標(biāo)識(shí)符,所述內(nèi)容標(biāo)識(shí)符表示用于表示所述文件的第二抽象層,第二抽象層與第一抽象層是分離的;以及將所述實(shí)際內(nèi)容的所述部分經(jīng)由所述內(nèi)容標(biāo)識(shí)符上載到網(wǎng)絡(luò)可訪問存儲(chǔ)裝置。
23.一種計(jì)算機(jī)系統(tǒng),包括:存儲(chǔ)可執(zhí)行指令的存儲(chǔ)器;耦接到至少第一和第二備份源的網(wǎng)絡(luò)接口;耦接到所述存儲(chǔ)器和所述網(wǎng)絡(luò)接口以執(zhí)行來自所述存儲(chǔ)器的指令的處理器,所述處理器被配置為:向第一備份源識(shí)別計(jì)算機(jī)系統(tǒng)中的資源的變化;響應(yīng)于從第一備份源接收到用于向第二備份源授權(quán)的令牌,利用所述令牌將所述資源的變化備份到第二備份源;以及如果將所述資源的變化備份到第二備份源是成功的,則將所述變化提交到第一備份源。`
【文檔編號(hào)】G06F11/14GK103597801SQ201280027326
【公開日】2014年2月19日 申請(qǐng)日期:2012年5月22日 優(yōu)先權(quán)日:2011年6月3日
【發(fā)明者】K·B·米內(nèi)爾, G·J·弗里德曼, E·克里杰勒 申請(qǐng)人:蘋果公司