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

應(yīng)用還原點(diǎn)的制作方法

文檔序號(hào):6595468閱讀:218來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):應(yīng)用還原點(diǎn)的制作方法
技術(shù)領(lǐng)域
本發(fā)明的實(shí)施例總體上涉及在計(jì)算系統(tǒng)中備份和還原應(yīng)用,并且更具體地涉及使用應(yīng)用還原點(diǎn)將應(yīng)用(或者操作系統(tǒng)組件)還原至安裝(或者更新)應(yīng)用之前所具有的狀態(tài)。
背景技術(shù)
安裝新應(yīng)用以及更新現(xiàn)有應(yīng)用或操作系統(tǒng)是一種常見(jiàn)處理。例如,應(yīng)用(以及操作系統(tǒng))供應(yīng)商經(jīng)常發(fā)布更新應(yīng)用、修復(fù)“漏洞”或安全問(wèn)題的補(bǔ)丁。然而,安裝新應(yīng)用或者更新現(xiàn)有應(yīng)用有時(shí)會(huì)破壞計(jì)算機(jī)系統(tǒng)。也就是說(shuō),更新有時(shí)“毀壞”應(yīng)用(或者系統(tǒng)上運(yùn)行的其它應(yīng)用)。例如,如果沒(méi)有成功地完成更新處理,則應(yīng)用可能不能正常運(yùn)行和/或數(shù)據(jù)可能丟失。類(lèi)似地,已更新的應(yīng)用有時(shí)會(huì)以不可預(yù)知的方式影響其它系統(tǒng)應(yīng)用,如阻止它們正常運(yùn)行。因此,在某些情況下,可能需要?jiǎng)h除應(yīng)用或更新以使計(jì)算系統(tǒng)恢復(fù)正常運(yùn)行。刪除應(yīng)用更新的一種方法是在安裝(或者更新)應(yīng)用之前創(chuàng)建計(jì)算系統(tǒng)的完整鏡像,然后在需要時(shí)還原該鏡像。然而,該方法常常需要大量的存儲(chǔ)資源。此外,還原應(yīng)用至更新之前的狀態(tài)需要計(jì)算系統(tǒng)的用戶在啟動(dòng)更新處理之前記得創(chuàng)建系統(tǒng)鏡像。而且,該方法經(jīng)常導(dǎo)致備份處理期間、安裝處理期間或者還原處理期間(如果使用鏡像來(lái)還原系統(tǒng)) 的實(shí)質(zhì)停機(jī)。

發(fā)明內(nèi)容
根據(jù)第一方面,提供了一種為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的計(jì)算機(jī)實(shí)現(xiàn)方法,包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理;生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由安裝器處理施加安裝包時(shí)要被修改的應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本;當(dāng)由安裝器處理施加安裝包時(shí)對(duì)于由安裝器處理所修改的應(yīng)用的每一組件,在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)組件的未修改副本,以及對(duì)于由安裝器處理添加至計(jì)算系統(tǒng)的每一新組件,向新組件列表添加對(duì)新組件的引用。該方法進(jìn)一步包含在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)新組件列表。根據(jù)第二方面,提供了一種包含程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述程序執(zhí)行為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的操作,包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理;生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由安裝器處理施加安裝包時(shí)要被修改的應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本; 當(dāng)由安裝器處理施加安裝包時(shí)對(duì)于由安裝器處理所修改的應(yīng)用的每一組件,在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)組件的未修改副本,以及對(duì)于由安裝器處理添加至計(jì)算系統(tǒng)的每一新組件,向新組件列表添加對(duì)新組件的引用。該操作進(jìn)一步包含在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)新組件列表。根據(jù)第三方面,提供了一種系統(tǒng),包含處理器;以及存儲(chǔ)應(yīng)用安裝器處理的存儲(chǔ)器,當(dāng)由處理器執(zhí)行時(shí),所述應(yīng)用安裝器處理被配置成執(zhí)行為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的操作,該操作包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理,生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由安裝器處理施加安裝包時(shí)要被修改的應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本,當(dāng)由安裝器處理施加安裝包時(shí) (i)對(duì)于由安裝器處理所修改的應(yīng)用的每一組件,在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)組件的未修改副本,以及(ii)對(duì)于由安裝器處理添加至計(jì)算系統(tǒng)的每一新組件,向新組件列表添加對(duì)新組件的引用。該操作進(jìn)一步包含在應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)新組件列表。


現(xiàn)在將結(jié)合附圖僅僅以示例的方式來(lái)描述
具體實(shí)施例方式圖1是例示根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算系統(tǒng)的框圖;圖2例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的應(yīng)用還原點(diǎn);圖3例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的創(chuàng)建應(yīng)用還原點(diǎn)的方法的流程圖;以及圖4例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的基于應(yīng)用還原點(diǎn)還原應(yīng)用的方法的流程圖。
具體實(shí)施例方式本發(fā)明的實(shí)施例提供安裝、更新或者修補(bǔ)應(yīng)用時(shí)創(chuàng)建應(yīng)用還原點(diǎn)的技術(shù)。當(dāng)需要時(shí),可以使用應(yīng)用還原點(diǎn)將應(yīng)用和計(jì)算系統(tǒng)的相關(guān)部分還原至該應(yīng)用還原點(diǎn)所具有的狀態(tài)。在一個(gè)實(shí)施例中,應(yīng)用還原點(diǎn)捕獲與安裝(更新)應(yīng)用時(shí)被修改、創(chuàng)建或刪除的應(yīng)用和 /或運(yùn)行應(yīng)用的計(jì)算系統(tǒng)的那些組件、文件或者其它元素相關(guān)的信息。重要的是,創(chuàng)建和還原處理不破壞計(jì)算系統(tǒng)上運(yùn)行的其它應(yīng)用。換言之,當(dāng)創(chuàng)建應(yīng)用還原點(diǎn)或者使用應(yīng)用還原點(diǎn)來(lái)還原應(yīng)用(即,有效地撤銷(xiāo)安裝或者補(bǔ)丁)時(shí),可以使用計(jì)算系統(tǒng)的其它組件和應(yīng)用。 此外,因?yàn)閯?chuàng)建和還原處理主要涉及安裝處理所需的文件,所以節(jié)省了計(jì)算系統(tǒng)的資源并且可以出于不同的目的而使用計(jì)算系統(tǒng)的這些資源。在一個(gè)實(shí)施例中,用戶調(diào)用安裝器處理來(lái)安裝、更新或者修補(bǔ)計(jì)算系統(tǒng)中的應(yīng)用。 安裝器處理為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)。在安裝器處理的執(zhí)行期間,可能需要修改計(jì)算系統(tǒng)的某些文件和/或可能需要?jiǎng)?chuàng)建新文件。如果文件被安裝器處理修改,則將該文件的原始副本(即,文件處于其被安裝器處理修改之前的狀態(tài)時(shí)的副本)放置于應(yīng)用還原點(diǎn)中。如果文件被安裝器處理創(chuàng)建,則在應(yīng)用還原點(diǎn)中包含對(duì)此文件的引用。依此,當(dāng)安裝器處理成功或者不成功地完成安裝、更新或者修補(bǔ)應(yīng)用時(shí),應(yīng)用還原點(diǎn)包含安裝器處理所修改(或者刪除)的每個(gè)文件的原始副本和安裝器處理所創(chuàng)建的文件(即,新文件)列表。因此,為了將應(yīng)用和計(jì)算系統(tǒng)的相應(yīng)部分還原至安裝器處理做出任何改變之前的狀態(tài),刪除新文件列表中包括的計(jì)算系統(tǒng)的文件,而用安裝(或者更新)處理期間捕獲的未修改版本(即,原始副本)替換安裝器所修改的文件。在下面,將參考本發(fā)明的實(shí)施例。然而,應(yīng)當(dāng)理解的是,本發(fā)明不限于具體描述的實(shí)施例。相反,以下特征和元素的任何組合(無(wú)論是否涉及不同的實(shí)施例)都被預(yù)期用來(lái)實(shí)現(xiàn)和實(shí)施本發(fā)明。此外,在各種實(shí)施例中,本發(fā)明提供優(yōu)于現(xiàn)有技術(shù)的許多優(yōu)點(diǎn)。然而, 盡管本發(fā)明的實(shí)施例可以獲得優(yōu)于其它可能的解決方案和/或優(yōu)于現(xiàn)有技術(shù)的優(yōu)點(diǎn),但是特定的優(yōu)點(diǎn)是否由給定的實(shí)施例來(lái)獲得并不限制本發(fā)明。因而,以下方面、特征、實(shí)施例和優(yōu)點(diǎn)僅僅是示例性的并且不被認(rèn)為是所附權(quán)利要求的要素或限制,除非權(quán)利要求中明確說(shuō)明。類(lèi)似地,對(duì)“本發(fā)明”的提及不應(yīng)該被認(rèn)為是在此所公開(kāi)的任何本發(fā)明主題的概括并且不應(yīng)該被認(rèn)為是所附權(quán)利要求的要素或限制,除非權(quán)利要求中明確說(shuō)明。本發(fā)明的一個(gè)實(shí)施例被實(shí)現(xiàn)為由計(jì)算系統(tǒng)使用的程序產(chǎn)品。程序產(chǎn)品的程序限定實(shí)施例(包括在此所述的方法)的功能并且可以被包含在各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。示例性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于(i)其上永久存儲(chǔ)信息的不可寫(xiě)存儲(chǔ)介質(zhì)(例如, 計(jì)算機(jī)中的只讀存儲(chǔ)器裝置,如CD-ROM驅(qū)動(dòng)器可讀的CD-ROM盤(pán));(ii)其上存儲(chǔ)可改變信息的可寫(xiě)存儲(chǔ)介質(zhì)(例如,軟盤(pán)驅(qū)動(dòng)器中的軟盤(pán)或者硬盤(pán)驅(qū)動(dòng)器)。當(dāng)載有控制本發(fā)明功能的計(jì)算機(jī)可讀指令時(shí),這類(lèi)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是本發(fā)明的實(shí)施例。其它介質(zhì)包括經(jīng)由其傳遞信息至計(jì)算機(jī)的通信介質(zhì),如通過(guò)計(jì)算機(jī)或電話網(wǎng)絡(luò),包括無(wú)線通信網(wǎng)絡(luò)。后一實(shí)施例具體包括向/從因特網(wǎng)和其它網(wǎng)絡(luò)傳輸信息。當(dāng)載有控制本發(fā)明功能的計(jì)算機(jī)可讀指令時(shí),這類(lèi)通信介質(zhì)是本發(fā)明的實(shí)施例。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和通信介質(zhì)在此可以被概括地稱(chēng)為計(jì)算機(jī)可讀介質(zhì)。一般而言,被執(zhí)行用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例的例程可以是操作系統(tǒng)或者具體應(yīng)用、 組件、程序、模塊、對(duì)象或者指令序列的一部分。本發(fā)明的計(jì)算機(jī)程序通常由將被本地計(jì)算機(jī)翻譯成機(jī)器可讀格式以及由此可執(zhí)行指令的大量指令組成。此外,程序由本地駐留于程序或者在存儲(chǔ)器或存儲(chǔ)裝置中找到的變量和數(shù)據(jù)結(jié)構(gòu)組成。此外,可以基于本發(fā)明的具體實(shí)施例中實(shí)現(xiàn)它們的應(yīng)用來(lái)標(biāo)識(shí)以下所述的各種程序。然而,應(yīng)當(dāng)認(rèn)識(shí)到,以下任何具體的程序術(shù)語(yǔ)僅僅是為了方便而被使用,因而本發(fā)明不應(yīng)當(dāng)限于僅僅使用在這類(lèi)術(shù)語(yǔ)所標(biāo)識(shí)和 /或暗示的任何具體應(yīng)用中。圖1是例示根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算系統(tǒng)100的示例的框圖。如圖所示,計(jì)算系統(tǒng)100包括諸如鍵盤(pán)和鼠標(biāo)定位裝置的輸入裝置110、諸如CRT或IXD顯示器的顯示裝置 120和計(jì)算機(jī)系統(tǒng)130。示例性地,計(jì)算機(jī)系統(tǒng)130包括通過(guò)總線接口 134相互耦合的一個(gè)或更多個(gè)中央處理單元(“CPU”) 132、存儲(chǔ)器140和存儲(chǔ)設(shè)備150。CPU 104表示執(zhí)行計(jì)算機(jī)中的所有指令、邏輯和數(shù)學(xué)處理的一個(gè)或更多個(gè)可編程邏輯裝置。例如,CPU 104可以表示單個(gè)CPU、多個(gè)CPU、具有多個(gè)處理核的單個(gè)CPU及類(lèi)似物。存儲(chǔ)器140可以是存儲(chǔ)裝置中的一個(gè)或組合,包括大到足以保持所需的編程和數(shù)據(jù)結(jié)構(gòu)的隨機(jī)訪問(wèn)存儲(chǔ)器。存儲(chǔ)設(shè)備 150可以是存儲(chǔ)設(shè)備中的一個(gè)或組合,其包括但不限于物理磁盤(pán)驅(qū)動(dòng)器、快閃存儲(chǔ)裝置等, 以及網(wǎng)絡(luò)附加儲(chǔ)存裝置和經(jīng)由網(wǎng)絡(luò)安裝的存儲(chǔ)卷。計(jì)算機(jī)系統(tǒng)130被包含用來(lái)表示現(xiàn)有計(jì)算機(jī)系統(tǒng),例如,臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)及類(lèi)似物。然而,圖1中所示的服務(wù)器系統(tǒng)僅僅是計(jì)算系統(tǒng)的示例??梢允褂闷渌?jì)算系統(tǒng)來(lái)實(shí)現(xiàn)本發(fā)明的實(shí)施例,無(wú)論計(jì)算機(jī)系統(tǒng)是否為復(fù)雜多用戶計(jì)算系統(tǒng)(如通過(guò)高速網(wǎng)絡(luò)連接的個(gè)體計(jì)算機(jī)的集群)、單用戶工作站或者不具有非易失性存儲(chǔ)設(shè)備的網(wǎng)絡(luò)設(shè)備。進(jìn)一步地,可以使用現(xiàn)有計(jì)算機(jī)系統(tǒng)上執(zhí)行的計(jì)算機(jī)軟件應(yīng)用來(lái)實(shí)現(xiàn)在此所述的軟件應(yīng)用。然而,在此所述的軟件應(yīng)用不限于任何當(dāng)前現(xiàn)有的計(jì)算環(huán)境或編程語(yǔ)言,并且可以適合于在新計(jì)算系統(tǒng)變得可用時(shí)采用新計(jì)算系統(tǒng)。如圖所示,存儲(chǔ)器140包括被配置成在計(jì)算系統(tǒng)100上運(yùn)行的安裝器142、應(yīng)用更新組件144和應(yīng)用146。安裝器142、應(yīng)用更新組件144和應(yīng)用146通常由也駐留于存儲(chǔ)器 140中的操作系統(tǒng)(未示出)來(lái)支持。操作系統(tǒng)的示例包括IBM AIX 、UNIX 、 Microsoft Windows 以及Linux 操作系統(tǒng)的發(fā)行套件和類(lèi)似物。更一般地來(lái)說(shuō),可
7以使用能夠支持在此所述的功能的任何操作系統(tǒng)。IBM和AIX是國(guó)際商業(yè)機(jī)器公司在美國(guó)、其它國(guó)家或這些國(guó)家的商標(biāo);UNIX是開(kāi)放群組(Open Group)在美國(guó)和其它國(guó)家的注冊(cè)商標(biāo);Microsoft和Windows是微軟公司在美國(guó)、其它國(guó)家或這些國(guó)家的商標(biāo);以及Linux是李納斯托沃茲(Linus Torvalds)在美國(guó)、其它國(guó)家或這些國(guó)家的注冊(cè)商標(biāo)。一般而言,通過(guò)使用應(yīng)用更新組件144,安裝器142可以被用來(lái)安裝、更新、修補(bǔ)和 /或刪除計(jì)算系統(tǒng)100中的應(yīng)用144。在這樣的處理期間,可以創(chuàng)建、修改或者刪除一個(gè)或更多個(gè)文件巧4和還原點(diǎn)152。文件巧4和還原點(diǎn)152駐留于存儲(chǔ)設(shè)備150中。更具體地, 文件巧4包括應(yīng)用146和/或計(jì)算系統(tǒng)100的被安裝器處理142在更新應(yīng)用146時(shí)修改的文件、組件或者其它元素。每個(gè)應(yīng)用還原點(diǎn)152提供與安裝器142所安裝的應(yīng)用更新對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,在更新應(yīng)用146時(shí)創(chuàng)建至少一個(gè)應(yīng)用還原點(diǎn)152。這樣的應(yīng)用還原點(diǎn)152可以隨后被用來(lái)(如果需要)還原應(yīng)用146和/或計(jì)算系統(tǒng)100的文件、組件和/或其它元素。圖2例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的示例性應(yīng)用還原點(diǎn)152。一般而言,應(yīng)用還原點(diǎn)152是存儲(chǔ)與相應(yīng)應(yīng)用的可能還原相關(guān)的信息的數(shù)據(jù)結(jié)構(gòu)。如圖所示,應(yīng)用還原點(diǎn)152 包括標(biāo)識(shí)與應(yīng)用還原點(diǎn)相關(guān)聯(lián)的具體應(yīng)用的信息,如應(yīng)用名稱(chēng)205 ;可以指定應(yīng)用上執(zhí)行的具體處理的安裝/更新日期和時(shí)間210,如執(zhí)行處理時(shí)的日期和時(shí)間,執(zhí)行了哪種類(lèi)型的處理(例如,安裝、更新、打補(bǔ)丁及類(lèi)似處理)。應(yīng)用還原點(diǎn)152還包括一個(gè)或更多個(gè)原始文件2201-220M(共同被稱(chēng)為文件220)和由安裝器處理所創(chuàng)建的新文件列表(如新文件 2301-230N),其中每個(gè)原始文件是由應(yīng)用還原點(diǎn)在安裝器處理修改文件之前所捕獲的、由安裝器處理所修改的文件的副本。如下面所做的更加詳細(xì)的描述,在一個(gè)實(shí)施例中,寫(xiě)時(shí)復(fù)制(copy-onirite)處理可以被用來(lái)在安裝器142修改文件之前捕獲該文件的未修改副本。進(jìn)一步地,通過(guò)將修改文件的處理的處理id與安裝器(或者子處理)的處理id匹配,可以將通過(guò)寫(xiě)時(shí)復(fù)制機(jī)制保存至應(yīng)用還原點(diǎn)的文件標(biāo)識(shí)為可應(yīng)用于還原點(diǎn)。依此,由安裝更新期間也運(yùn)行的應(yīng)用所修改的其它文件不被添加至還原點(diǎn)。文件列表可以包括所創(chuàng)建文件的識(shí)別信息(如每個(gè)新創(chuàng)建文件的名稱(chēng)及其位置)以及當(dāng)還原至應(yīng)用還原點(diǎn)152時(shí)還原原始文件(或者刪除新安裝文件)所需的任何其它信息。圖3例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的創(chuàng)建應(yīng)用還原點(diǎn)的方法300的流程圖。如上所述,應(yīng)用還原點(diǎn)(如還原點(diǎn)152)捕獲和存儲(chǔ)與由安裝或更新處理所導(dǎo)致的包括應(yīng)用的計(jì)算系統(tǒng)元素(即,文件154)中的改變相關(guān)的信息。為了存儲(chǔ)這類(lèi)信息,在步驟305,創(chuàng)建和 /或初始化應(yīng)用還原點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。在步驟310,調(diào)用安裝器處理(如圖1所示的安裝器142)來(lái)更新(或者安裝)應(yīng)用146,其中應(yīng)用146適合于在計(jì)算系統(tǒng)100上運(yùn)行。一般而言,安裝器處理142被配置成使用應(yīng)用更新組件144來(lái)更新應(yīng)用146,并且在更新時(shí)監(jiān)控更新處理所導(dǎo)致的改變。當(dāng)識(shí)別到改變時(shí),安裝器處理142存儲(chǔ)描述應(yīng)用還原點(diǎn)152中發(fā)生了何種改變的信息。在一個(gè)實(shí)施例中,安裝器處理142被實(shí)現(xiàn)為打包管理系統(tǒng)(S卩,用于使安裝、更新、配置和刪除計(jì)算系統(tǒng)的程序的處理自動(dòng)化的工具系統(tǒng))的組件。在此情況下,啟動(dòng)安裝器來(lái)安裝、更新或者刪除應(yīng)用的組件(或者應(yīng)用自身)。進(jìn)一步地,作為執(zhí)行任何這類(lèi)動(dòng)作的一部分,安裝器處理1342可以創(chuàng)建與所執(zhí)行的更新、修補(bǔ)或者安裝處理對(duì)應(yīng)的應(yīng)用還原點(diǎn)152。在步驟315,對(duì)于在更新期間由安裝器處理142所修改的每個(gè)文件,添加未修改文件(即,原始文件220)的副本至應(yīng)用還原點(diǎn)。在一個(gè)實(shí)施例中,當(dāng)在更新處理期間多次修改同一文件時(shí),僅僅保存原始文件的一個(gè)副本,例如,在第一次修改文件時(shí)。依此,當(dāng)完成安裝處理時(shí),應(yīng)用還原點(diǎn)包括安裝處理期間計(jì)算系統(tǒng)中被修改(或者被刪除)的任何文件的原始副本。某些安裝或者更新處理可能在計(jì)算系統(tǒng)中創(chuàng)建新的文件。因此,為了刪除安裝處理所導(dǎo)致的改變,應(yīng)當(dāng)刪除這類(lèi)新的文件。為了記錄這類(lèi)文件,在步驟320,將更新期間由安裝器處理142所創(chuàng)建的每個(gè)文件作為新文件230列入應(yīng)用還原點(diǎn)中。注意,所創(chuàng)建文件中的一部分可能是僅僅針對(duì)更新處理期間而創(chuàng)建的臨時(shí)文件。在一個(gè)實(shí)施例中,安裝器處理142不將這些臨時(shí)文件放置于新文件列表中。替代地,安裝器處理142不識(shí)別臨時(shí)文件, 然而,當(dāng)需要?jiǎng)h除文件時(shí)安裝器處理檢查文件是否在新文件列表中。如果是,則從新文件列表中刪除該文件并且不創(chuàng)建該文件的副本。依此,當(dāng)安裝器處理142成功地(或者不成功地)完成安裝處理時(shí),應(yīng)用還原點(diǎn)152包含對(duì)更新處理期間由安裝器處理所創(chuàng)建的文件的引用。安裝器處理142可以使用各種工具來(lái)執(zhí)行步驟315和320以及僅僅識(shí)別在具體安裝處理期間所修改的文件。例如,在一個(gè)實(shí)施例中,使用由日志或者追蹤文件系統(tǒng)所提供的工具。在日志文件系統(tǒng)中,改變?cè)诒惶峤恢氨挥涗浽谌罩局?。因此,安裝器處理142可以使用這類(lèi)日志來(lái)檢測(cè)改變被提交之前由更新處理所導(dǎo)致的文件改變。例如,可以使用“寫(xiě)時(shí)復(fù)制”處理。眾所知的,“寫(xiě)時(shí)復(fù)制”處理允許應(yīng)用(事實(shí)上多個(gè)應(yīng)用)訪問(wèn)文件。在應(yīng)用寫(xiě)(即,修改)文件的情況下,寫(xiě)時(shí)復(fù)制處理創(chuàng)建應(yīng)用所寫(xiě)入的文件的副本。在一個(gè)實(shí)施例中,不是向安裝器處理提供“寫(xiě)時(shí)復(fù)制”副本,而是僅僅添加這樣的副本至應(yīng)用還原點(diǎn),并且由安裝器處理142寫(xiě)入文件的真實(shí)副本。依此,安裝器處理142在作為安裝(或者更新、修補(bǔ))應(yīng)用的一部分的修改或者刪除文件之前保存文件的原始副本。在另一實(shí)施例中,在啟動(dòng)更新處理之前,安裝器處理142立即使用例如公知的 Unux 邏輯卷管理打包提供的工具來(lái)創(chuàng)建計(jì)算系統(tǒng)的快照(如計(jì)算系統(tǒng)文件的只讀副本)。接下來(lái),當(dāng)安裝器處理142檢測(cè)到相關(guān)的文件改變時(shí),其從快照獲取文件的未修改版本。一旦完成更新處理,安裝器處理142可以刪除快照。在一個(gè)實(shí)施例中,當(dāng)用戶調(diào)用安裝器處理142來(lái)更新應(yīng)用146時(shí),安裝器處理142 自動(dòng)生成應(yīng)用還原點(diǎn)152并且執(zhí)行上述步驟305、315和320。因此,用戶不需要在更新處理之前備份數(shù)據(jù)。更確切地說(shuō),每次用戶使用安裝器處理來(lái)更新應(yīng)用時(shí),創(chuàng)建允許用戶(當(dāng)需要時(shí))將更新處理期間由更新處理所修改的文件還原至執(zhí)行該處理之前的狀態(tài)的相應(yīng)應(yīng)用還原點(diǎn)??蛇x地,安裝器處理可以被配置成在更新處理的不同階段期間創(chuàng)建多個(gè)應(yīng)用還原點(diǎn)。圖4例示了根據(jù)本發(fā)明一個(gè)實(shí)施例的使用還原點(diǎn)還原應(yīng)用的方法400的流程圖。 在步驟405,接收對(duì)應(yīng)用還原點(diǎn)的選擇。在一個(gè)實(shí)施例中,應(yīng)用可能與多個(gè)應(yīng)用還原點(diǎn)相關(guān)聯(lián)。如上所述,每個(gè)應(yīng)用還原點(diǎn)表示應(yīng)用和由補(bǔ)丁、更新或者應(yīng)用自身的安裝所修改的相關(guān)元素(如文件、注冊(cè)表鍵等等)的具體狀態(tài)。例如,應(yīng)用還原點(diǎn)可以捕獲安裝應(yīng)用之前多個(gè)文件的狀態(tài)、安裝處理期間在特定點(diǎn)之前相關(guān)文件的狀態(tài)、在更新應(yīng)用至一個(gè)版本之前相關(guān)文件的狀態(tài)、在更新應(yīng)用至另一個(gè)版本之前相關(guān)文件的狀態(tài)等等。在一個(gè)實(shí)施例中,向用戶提供允許用戶選擇期望的應(yīng)用還原點(diǎn)的接口??蛇x地,為了向用戶提供撤銷(xiāo)還原處理的機(jī)會(huì),在步驟410,于撤銷(xiāo)應(yīng)用還原點(diǎn)中保存和存儲(chǔ)對(duì)還原處理要?jiǎng)?chuàng)建的文件的引用和由還原處理所修改或者刪除的文件的副本。 在一個(gè)實(shí)施例中,使用所選應(yīng)用還原點(diǎn)中包含的信息來(lái)確定這類(lèi)文件。也就是說(shuō),還原應(yīng)用還原點(diǎn)的處理自身可以被視為更新,為此可以生成相應(yīng)的應(yīng)用還原點(diǎn)。如上所述,應(yīng)用還原點(diǎn)中被作為新文件而列出的文件是安裝器處理所創(chuàng)建的文件,并且因此需要在還原處理期間被刪除。因此,在撤銷(xiāo)應(yīng)用還原點(diǎn)中保存這類(lèi)文件的副本。如果文件具有相應(yīng)的原始副本被存儲(chǔ)在應(yīng)用還原點(diǎn)中,那么該文件或者已由安裝器處理修改或者已由安裝器處理刪除,并且因此在撤銷(xiāo)應(yīng)用還原點(diǎn)中保存文件的當(dāng)前副本(處于啟動(dòng)還原處理之前的狀態(tài))。 當(dāng)文件不存在時(shí),在撤銷(xiāo)應(yīng)用還原點(diǎn)的新文件列表中包括對(duì)文件的引用。在另一個(gè)實(shí)施例中,使用創(chuàng)建應(yīng)用還原點(diǎn)的方法(如上面結(jié)合圖3所述)生成撤銷(xiāo)應(yīng)用還原點(diǎn),其中安裝器處理執(zhí)行應(yīng)用的還原處理。在方法400的步驟415,可以刪除應(yīng)用還原點(diǎn)中作為新文件而列出的每個(gè)文件。如上所述,如果文件被作為新的而列入在應(yīng)用還原點(diǎn)中,那么在創(chuàng)建該具體應(yīng)用還原點(diǎn)時(shí)由安裝器處理初始地創(chuàng)建這樣的文件。因此,為了將應(yīng)用和由安裝器處理所影響的計(jì)算系統(tǒng)的部分還原至所選應(yīng)用還原點(diǎn)中所捕獲的狀態(tài),刪除應(yīng)用還原點(diǎn)中列出的新文件。注意,應(yīng)用還原點(diǎn)包含需要用來(lái)在計(jì)算系統(tǒng)中定位這樣的文件的信息,例如,路徑名和文件名。在步驟420,通過(guò)被還原的應(yīng)用還原點(diǎn)中存儲(chǔ)的原始副本替換安裝器處理期間修改的每個(gè)文件。如上所述,應(yīng)用還原點(diǎn)包含安裝器處理期間修改或者刪除的文件的原始副本。因此,為了將應(yīng)用和由安裝器處理所影響的計(jì)算系統(tǒng)的部分還原至應(yīng)用還原點(diǎn)所表示的狀態(tài),還原應(yīng)用還原點(diǎn)中存儲(chǔ)的原始副本。更具體地,如果文件因?yàn)槠浔话惭b器處理修改過(guò)而已被刪除,則還原這樣的文件,例如,將應(yīng)用還原點(diǎn)中存儲(chǔ)的文件的原始副本放置于計(jì)算系統(tǒng)中。如果安裝器處理所修改的計(jì)算系統(tǒng)的文件仍然位于計(jì)算系統(tǒng)中,那么從計(jì)算系統(tǒng)中刪除當(dāng)前版本并且將應(yīng)用還原點(diǎn)中存儲(chǔ)的文件的副本放置于計(jì)算系統(tǒng)中。在一個(gè)實(shí)施例中,逐個(gè)文件地執(zhí)行步驟420。可替代地,將應(yīng)用還原點(diǎn)中包含的所有原始副本拷入計(jì)算系統(tǒng)中替換現(xiàn)有文件。當(dāng)步驟415和420完成還原應(yīng)用還原點(diǎn)中標(biāo)識(shí)的所有文件時(shí),方法400完成。可選地,一旦方法400完成,刪除該方法所使用的應(yīng)用還原點(diǎn)。有利地,如在此所述的那樣,本發(fā)明的實(shí)施例能夠在安裝、更新或者修補(bǔ)應(yīng)用時(shí)創(chuàng)建應(yīng)用還原點(diǎn)并且在需要時(shí)將應(yīng)用和計(jì)算系統(tǒng)的相關(guān)部分還原至應(yīng)用還原點(diǎn)中捕獲的狀態(tài)。例如,通過(guò)監(jiān)控安裝處理并且僅僅保存相關(guān)數(shù)據(jù)(如安裝處理期間由安裝處理修改的文件),創(chuàng)建和還原處理不破壞計(jì)算系統(tǒng)上運(yùn)行的其它應(yīng)用。而且,因?yàn)閯?chuàng)建和還原處理主要涉及安裝處理所需的文件,所以節(jié)省了計(jì)算系統(tǒng)的資源并且可以出于不同的目的而使用計(jì)算系統(tǒng)的這些資源。盡管上文涉及本發(fā)明的實(shí)施例,但是在不偏離本發(fā)明基本范圍的前提下可以設(shè)計(jì)出本發(fā)明的其它和進(jìn)一步的實(shí)施例,并且本發(fā)明的范圍由以下的權(quán)利要求書(shū)確定。
權(quán)利要求
1.一種為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的計(jì)算機(jī)實(shí)現(xiàn)方法,包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理;生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由所述安裝器處理施加所述安裝包時(shí)要被修改的所述應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本;當(dāng)由所述安裝器處理施加所述安裝包時(shí)對(duì)于由所述安裝器處理所修改的所述應(yīng)用的每一組件,在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述組件的未修改副本,以及對(duì)于由所述安裝器處理添加至計(jì)算系統(tǒng)的每一新組件, 向所述新組件列表添加對(duì)所述新組件的引用;以及在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述新組件列表。
2.如權(quán)利要求1所述的方法,其中使用寫(xiě)時(shí)復(fù)制機(jī)制標(biāo)識(shí)由所述安裝器處理所修改的所述應(yīng)用的每一組件,并且其中使用與所述安裝器處理相關(guān)聯(lián)的處理ID來(lái)標(biāo)識(shí)所述組件。
3.如權(quán)利要求1或2所述的方法,其中調(diào)用所述安裝器處理來(lái)執(zhí)行安裝所述應(yīng)用、更新所述應(yīng)用、修補(bǔ)所述應(yīng)用和刪除所述應(yīng)用中的一個(gè)。
4.如權(quán)利要求1、2或3所述的方法,其中所修改的組件和添加至所述計(jì)算系統(tǒng)的所述新組件中的一個(gè)或更多個(gè)是存儲(chǔ)在文件系統(tǒng)中指定位置的文件。
5.如權(quán)利要求1、2、3或4所述的方法,其中所述新組件列表包含所述新組件列表上的相應(yīng)文件在所述計(jì)算系統(tǒng)中的文件名列表和路徑位置列表。
6.如權(quán)利要求1所述的方法,其中所修改的組件或者添加至所述計(jì)算系統(tǒng)的所述新組件中的至少一個(gè)是注冊(cè)表鍵、配置文件設(shè)置和系統(tǒng)設(shè)置。
7.如權(quán)利要求1所述的方法,其中所述安裝器處理被配置成訪問(wèn)文件系統(tǒng)機(jī)制以標(biāo)識(shí)由所述安裝器處理所修改的每一組件并且獲得每個(gè)所修改組件的所述未修改副本。
8.如任一在前權(quán)利要求所述的方法,其中所述應(yīng)用是操作系統(tǒng)并且其中所述安裝包是所述操作系統(tǒng)的更新或者補(bǔ)丁。
9.如任一在前權(quán)利要求所述的方法,進(jìn)一步包含創(chuàng)建所述計(jì)算系統(tǒng)的快照;從所述快照獲得由施加所述安裝包所修改的組件的每個(gè)未修改組件;以及一旦完成安裝處理,刪除所創(chuàng)建的快照。
10.如任一在前權(quán)利要求所述的方法,進(jìn)一步包含從所述新組件列表中刪除與作為施加所述安裝包的一部分的由所述安裝器處理先安裝并且隨后刪除的組件對(duì)應(yīng)的至少一個(gè)條目。
11.一種包含程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述程序執(zhí)行為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的操作,包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理;生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由所述安裝器處理施加所述安裝包時(shí)要被修改的所述應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本;當(dāng)由所述安裝器處理施加所述安裝包時(shí)對(duì)于由所述安裝器處理所修改的所述應(yīng)用的每一組件,在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述組件的未修改副本,以及對(duì)于由所述安裝器處理添加至計(jì)算系統(tǒng)的每一新組件, 向所述新組件列表添加對(duì)所述新組件的引用;以及在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述新組件列表。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中使用寫(xiě)時(shí)復(fù)制機(jī)制標(biāo)識(shí)由所述安裝器處理所修改的所述應(yīng)用的每一組件,并且其中使用與所述安裝器處理相關(guān)聯(lián)的處理ID 來(lái)標(biāo)識(shí)所述修改的組件。
13.如權(quán)利要求11或12所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中調(diào)用所述安裝器處理來(lái)執(zhí)行安裝所述應(yīng)用、更新所述應(yīng)用、修補(bǔ)所述應(yīng)用和刪除所述應(yīng)用中的一個(gè)。
14.如權(quán)利要求11、12或13所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所修改的組件和添加至所述計(jì)算系統(tǒng)的所述新組件中的一個(gè)或更多個(gè)是存儲(chǔ)在文件系統(tǒng)中指定位置的文件。
15.如權(quán)利要求11、12、13或14所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述新組件列表包含所述新組件列表上的相應(yīng)文件在所述計(jì)算系統(tǒng)中的文件名列表和路徑位置列表。
16.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所修改的組件或者添加至所述計(jì)算系統(tǒng)的所述新組件中的至少一個(gè)是注冊(cè)表鍵、配置文件設(shè)置和系統(tǒng)設(shè)置。
17.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述安裝器處理被配置成訪問(wèn)文件系統(tǒng)機(jī)制以標(biāo)識(shí)由所述安裝器處理所修改的每一組件并且獲得每個(gè)所修改組件的所述未修改副本。
18.如權(quán)利要求11至17中任一項(xiàng)所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述應(yīng)用是操作系統(tǒng)并且其中所述安裝包是所述操作系統(tǒng)的更新或者補(bǔ)丁。
19.如權(quán)利要求11至18中任一項(xiàng)所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述操作進(jìn)一步包含創(chuàng)建所述計(jì)算系統(tǒng)的快照;從所述快照獲得由施加所述安裝包所修改的組件的每一個(gè)未修改組件;以及一旦完成所述安裝器處理,刪除所創(chuàng)建的快照。
20.如權(quán)利要求11至19中任一項(xiàng)所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述操作進(jìn)一步包含從所述新組件列表中刪除與作為施加所述安裝包的一部分的由所述安裝器處理先安裝并且隨后刪除的組件對(duì)應(yīng)的至少一個(gè)條目。
21.—種系統(tǒng),包含 處理器;以及存儲(chǔ)應(yīng)用安裝器處理的存儲(chǔ)器,當(dāng)由所述處理器執(zhí)行時(shí),所述應(yīng)用安裝器處理被配置成執(zhí)行為應(yīng)用創(chuàng)建應(yīng)用還原點(diǎn)的操作,所述操作包含調(diào)用被配置成向應(yīng)用施加安裝包的安裝器處理,生成應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu),所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)被配置成存儲(chǔ)新組件列表以及在由所述安裝器處理施加所述安裝包時(shí)要被修改的所述應(yīng)用的一個(gè)或更多個(gè)組件中每一個(gè)的未修改副本,當(dāng)由所述安裝器處理施加所述安裝包時(shí)(i)對(duì)于由所述安裝器處理所修改的所述應(yīng)用的每一組件,在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述組件的未修改副本,以及( )對(duì)于由所述安裝器處理添加至所述計(jì)算系統(tǒng)的每一新組件,向所述新組件列表添加對(duì)所述新組件的引用;以及在所述應(yīng)用還原點(diǎn)數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)所述新組件列表。
22.如權(quán)利要求21所述的系統(tǒng),其中使用寫(xiě)時(shí)復(fù)制機(jī)制標(biāo)識(shí)由所述安裝器處理所修改的所述應(yīng)用的每一組件,并且其中使用與所述安裝器處理相關(guān)聯(lián)的處理ID來(lái)標(biāo)識(shí)所述修改的組件。
23.如權(quán)利要求21或22所述的系統(tǒng),其中調(diào)用所述安裝器處理來(lái)執(zhí)行安裝所述應(yīng)用、 更新所述應(yīng)用、修補(bǔ)所述應(yīng)用和刪除所述應(yīng)用中的一個(gè)。
24.如權(quán)利要求21、22或23所述的系統(tǒng),其中所修改的組件和添加至所述計(jì)算系統(tǒng)的所述新組件中的一個(gè)或更多個(gè)是存儲(chǔ)在文件系統(tǒng)中指定位置的文件。
25.如權(quán)利要求21、22、23或?qū)λ龅南到y(tǒng),其中所述新組件列表包含所述新組件列表上的相應(yīng)文件在所述計(jì)算系統(tǒng)中的文件名列表和路徑位置列表。
26.如權(quán)利要求21所述的系統(tǒng),其中所修改的組件或者添加至所述計(jì)算系統(tǒng)的所述新組件中的至少一個(gè)是注冊(cè)表鍵、配置文件設(shè)置和系統(tǒng)設(shè)置。
27.如權(quán)利要求21所述的系統(tǒng),其中所述安裝器處理被配置成訪問(wèn)文件系統(tǒng)機(jī)制以標(biāo)識(shí)由所述安裝器處理所修改的每一組件并且獲得每個(gè)所修改組件的所述未修改副本。
28.如權(quán)利要求21至27中任一項(xiàng)所述的系統(tǒng),其中所述應(yīng)用是操作系統(tǒng)并且其中所述安裝包是所述操作系統(tǒng)的更新或者補(bǔ)丁。
29.如權(quán)利要求21至28中任一項(xiàng)所述的系統(tǒng),其中所述操作進(jìn)一步包含創(chuàng)建所述計(jì)算系統(tǒng)的快照;從所述快照獲得由施加所述安裝包所修改的組件的每一個(gè)未修改組件;以及一旦完成安裝處理,刪除所創(chuàng)建的快照。
30.如權(quán)利要求21至四中任一項(xiàng)所述的系統(tǒng),其中所述操作進(jìn)一步包含從所述新組件列表中刪除與作為施加所述安裝包的一部分的由所述安裝器處理先安裝并且隨后刪除的組件對(duì)應(yīng)的至少一個(gè)條目。
31.一種計(jì)算機(jī)程序,包含被配置為當(dāng)所述程序運(yùn)行于計(jì)算機(jī)上時(shí)用來(lái)執(zhí)行權(quán)利要求 1至10中任一項(xiàng)所述的方法的程序代碼裝置。
全文摘要
公開(kāi)了當(dāng)安裝或者更新應(yīng)用時(shí)創(chuàng)建應(yīng)用還原點(diǎn)并且將應(yīng)用和由安裝和更新處理所修改的計(jì)算系統(tǒng)的其它元素還原至應(yīng)用還原點(diǎn)所具有的狀態(tài)的技術(shù)。應(yīng)用還原點(diǎn)捕獲與哪些文件由安裝和更新處理來(lái)修改、創(chuàng)建或者刪除有關(guān)的信息。在一個(gè)實(shí)施例中,用戶調(diào)用安裝器處理來(lái)安裝或者更新應(yīng)用。當(dāng)安裝器處理修改或者創(chuàng)建文件時(shí),將文件的原始副本或者對(duì)文件的引用放置于應(yīng)用還原點(diǎn)中。為了還原應(yīng)用,通過(guò)原始副本替換具有應(yīng)用還原點(diǎn)中的原始副本的計(jì)算系統(tǒng)的文件而刪除應(yīng)用還原點(diǎn)中引用的所有新文件。
文檔編號(hào)G06F11/14GK102216905SQ200980145171
公開(kāi)日2011年10月12日 申請(qǐng)日期2009年11月12日 優(yōu)先權(quán)日2008年11月14日
發(fā)明者D·M·查特朗德, E·A·鮑爾, K·W·科克比, S·派特爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
和硕县| 西峡县| 沂源县| 连州市| 攀枝花市| 富宁县| 玉溪市| 荥经县| 桑植县| 江川县| 中超| 曲沃县| 樟树市| 北京市| 丰原市| 岳阳市| 两当县| 马公市| 宣威市| 天长市| 东光县| 武胜县| 乌拉特中旗| 安龙县| 德州市| 五家渠市| 鹤壁市| 金秀| 乌审旗| 济宁市| 万盛区| 东乡族自治县| 孟连| 常德市| 阿勒泰市| 蒙自县| 定兴县| 电白县| 三门县| 筠连县| 保康县|