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

預(yù)熱軟件安裝的制作方法

文檔序號:11949677閱讀:244來源:國知局
預(yù)熱軟件安裝的制作方法與工藝

技術(shù)領(lǐng)域

本發(fā)明的實施例涉及將軟件安裝到計算機上,尤其涉及使用軟件的新版本來更新計算系統(tǒng)。



背景技術(shù):

計算系統(tǒng)和各種軟件應(yīng)用的更新在現(xiàn)今的計算世界中是切實需要的。開發(fā)人員一直致力于改進(jìn)我們使用的計算系統(tǒng)和應(yīng)用的質(zhì)量、效率和功能。傳統(tǒng)地,為計算系統(tǒng)安裝更新需要很長時間。進(jìn)一步地,在更新安裝期間,在計算系統(tǒng)上運行的其他應(yīng)用或進(jìn)程可能會被中斷或干擾。于是,計算系統(tǒng)的用戶在被提示時總是會推遲安裝更新,以避免其工作長時間的中斷。



技術(shù)實現(xiàn)要素:

本公開的一些實施例包括自動下載軟件的可用更新并啟動所下載更新的安裝。在一個實施例中,在計算系統(tǒng)內(nèi)的計算環(huán)境的后臺操作中,軟件的更新包被從遠(yuǎn)程源下載到計算系統(tǒng)。隨后,在不向計算系統(tǒng)提交軟件更新的情況下以隔離方式在后臺自動啟動對更新包的安裝。后臺操作可以是在允許用戶與控制最前用戶界面元件(例如,在前窗口)并具有輸入焦點(例如,鍵盤和鼠標(biāo)或觸摸輸入被引至用戶當(dāng)前正與其交互的最前進(jìn)程)的其他進(jìn)程交互的同時被執(zhí)行的操作。換句話說,雖然后臺操作能夠是用戶可見的,但是前臺進(jìn)程或操作能夠接收用戶輸入(例如,鍵盤、鼠標(biāo)、觸摸輸入等)而后臺操作則不能。

本公開的某些實施例包括一種預(yù)安裝軟件更新的方法。在一個實施例中,在不干擾計算系統(tǒng)上當(dāng)前正運行進(jìn)程的情況下,在該計算系統(tǒng)上僅執(zhí)行對軟件的一組更新的部分安裝。隨后,向計算系統(tǒng)的用戶通知該組更新,進(jìn)而整組更新的完全安裝被推遲,直到用戶肯定地允許或批準(zhǔn)整組更新為止。

本公開的某些實施例包括一種預(yù)安裝軟件更新的裝置。在一個實施例中,所述裝置包括用于存儲軟件數(shù)據(jù)和指令的計算機可讀存儲設(shè)備、經(jīng)由網(wǎng)絡(luò)通信耦接至計算機器以下載對軟件的更新的網(wǎng)絡(luò)接口、以及處理設(shè)備。處理設(shè)備可操作用于在計算機可讀存儲設(shè)備上的保留區(qū)域中預(yù)安裝所述更新,而不蓋寫現(xiàn)有的軟件數(shù)據(jù)和指令。

本公開的某些實施例包括一種預(yù)安裝軟件更新的方法。在一個實施例中,軟件更新經(jīng)由在計算系統(tǒng)的后臺操作中運行的進(jìn)程被部分安裝在計算系統(tǒng)上。隨后向計算系統(tǒng)的用戶通知更新。在一個替換實施例中,計算系統(tǒng)能夠在后臺操作之前或期間向用戶通知所述后臺操作。響應(yīng)于用戶批準(zhǔn)更新,在計算系統(tǒng)上完成更新的安裝。在某些實施例中,用戶可以批準(zhǔn)所述更新的一部分。作為響應(yīng),到目前為止執(zhí)行用于預(yù)安裝更新的工作可被撤銷,并在隨后僅安裝批準(zhǔn)的更新。

還描述執(zhí)行一種或多種前述方法的各種設(shè)備以及在由處理系統(tǒng)執(zhí)行時使處理系統(tǒng)執(zhí)行這些方法的機器可讀介質(zhì)。

還描述其他方法、設(shè)備和計算機可讀存儲介質(zhì)。

附圖說明

如下的描述包括對具有借助本發(fā)明各實施例的實現(xiàn)示例給出的例示的附圖的討論。各附圖應(yīng)被理解為示例而非限制。如在此處使用的,對一個或多個“實施例”的參考會被理解為描述包括在本發(fā)明至少一個實現(xiàn)中的具體特征、結(jié)構(gòu)或特性。于是,本文中出現(xiàn)的諸如“在某些實施例中”或“在一個替換實施例中”的短語描述了本發(fā)明的各種實施例和實現(xiàn),并且不必全都指向同一實施例。盡管如此,它們也不是必須互斥的。

圖1A-1B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。

圖2A-2B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。

圖3A-3B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。

圖4是例示了可在預(yù)熱軟件安裝中使用的計算系統(tǒng)內(nèi)的計算機可讀存儲設(shè)備的一個實施例的框圖。

圖5是可在本公開的某些實施例中使用的計算設(shè)備的一個實施例。

具體實施方式

在此描述的實施例便于對計算系統(tǒng)的新軟件和/或軟件更新的安裝。為了保持描述的清楚明了,在此討論的實施例將頻繁涉及為軟件(例如,操作系統(tǒng)、用戶應(yīng)用等)安裝更新。然而,各實施例不限于更新的安裝。在此描述的方法、技術(shù)、系統(tǒng)和部件等還可針對新的應(yīng)用使用。

在某些實施例中,在向計算系統(tǒng)的用戶告知或通知更新之前,計算系統(tǒng)上軟件更新的安裝處理在盡可能不干擾計算系統(tǒng)上軟件的當(dāng)前版本的情況下被啟動并執(zhí)行。于是,所執(zhí)行的安裝處理的上述部分還可以被稱為更新的預(yù)安裝,或是更新安裝的預(yù)熱。在預(yù)熱該更新安裝之后,向用戶通知更新并詢問用戶是否批準(zhǔn)更新。如果用戶批準(zhǔn)更新,則安裝處理完成以向計算系統(tǒng)提交更新。否則,如果用戶拒絕更新,則可撤銷在預(yù)熱期間執(zhí)行的工作。

在某些實施例中,如果用戶批準(zhǔn)部分更新,但拒絕其余更新,則可撤銷預(yù)熱期間執(zhí)行的工作并可重啟安裝處理以僅安裝批準(zhǔn)的更新。在一個替換實施例中,預(yù)熱可以包括多個更新的預(yù)定組合的預(yù)安裝。如果由用戶批準(zhǔn)的更新組合是這些預(yù)定組合之一時,則一旦用戶批準(zhǔn),就能夠完成對該更新組合的安裝。否則,可以撤銷在預(yù)定更新組合的預(yù)安裝期間執(zhí)行的工作,并且可以重啟安裝處理以僅安裝批準(zhǔn)的更新。

通過在向用戶通知更新之前執(zhí)行更新安裝的至少一部分,可以顯著減少用戶批準(zhǔn)更新后仍需完成的更新安裝工作。結(jié)果,用戶察覺的安裝更新所需時間變得顯著縮短,并由此改善更新安裝的用戶體驗。此外,因為安裝處理的一部分或是幾乎全部已在不干擾用戶或在計算系統(tǒng)上運行的其他進(jìn)程的情況下在后臺執(zhí)行,所以由安裝更新導(dǎo)致的對用戶的干擾得以減輕。由于用戶察覺的安裝時間的縮短以及對用戶干擾的減輕,用戶將更可能批準(zhǔn)在計算系統(tǒng)上更新軟件。

圖1A-1B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。該處理可以通過包括軟件、硬件、固件或上述任意組合的處理邏輯執(zhí)行。例如,該處理可以由如下討論的在圖5中例示的計算設(shè)備實現(xiàn)的處理邏輯執(zhí)行。

參見圖1A,處理邏輯將計算系統(tǒng)連接至遠(yuǎn)程源以在計算系統(tǒng)的后臺更新軟件(處理框110)。遠(yuǎn)程源可以是經(jīng)由無線網(wǎng)絡(luò)和/或有線網(wǎng)絡(luò)連接至計算系統(tǒng)的諸如服務(wù)器和個人計算機之類的另一計算設(shè)備。網(wǎng)絡(luò)可以包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和以太網(wǎng)等。對軟件的更新可以包括對軟件、軟件的新版本、軟件的安全補丁的更新。注意到處理邏輯在計算系統(tǒng)的后臺中將計算系統(tǒng)連接至遠(yuǎn)程源,并由此不對正在計算系統(tǒng)內(nèi)運行的當(dāng)前進(jìn)程產(chǎn)生干擾。因此,計算系統(tǒng)的用戶可能不會察覺處理邏輯正在干什么。在某些實施例中,處理邏輯可以周期性地問詢遠(yuǎn)程源以檢測可用更新。

基于遠(yuǎn)程源處可用更新的元數(shù)據(jù),處理邏輯確定哪個或哪些更新適用于計算系統(tǒng)(處理框112)。一些元數(shù)據(jù)的例子可以包括版本號、證書或授權(quán)信息、系統(tǒng)要求等。處理邏輯將合適更新的包從遠(yuǎn)程源下載到計算系統(tǒng)(處理框114)。

在某些實施例中,處理邏輯在計算系統(tǒng)的計算機可讀存儲設(shè)備(例如,盤)上的臨時區(qū)域中啟動對所下載的包的安裝(處理框116)。處理邏輯還可以保留盤上的這一臨時區(qū)域用以安裝更新。此外,盤上的這一臨時區(qū)域可以與盤上的其余區(qū)域相隔離,以使得在更新被提交之前,部分安裝在這一臨時區(qū)域內(nèi)的更新不會蓋寫或干擾計算系統(tǒng)內(nèi)的當(dāng)前版本軟件。由此,這一臨時區(qū)域可被稱為沙箱(sandbox),并且上述被部分安裝的更新還可被稱為是被放入沙箱的(sandboxed)。安裝可以包括下載將作為安裝處理的一部分而被解壓的壓縮文件;此外,安裝處理可以包括在諸如磁性硬盤驅(qū)動器或非易失性半導(dǎo)體存儲器之類的存儲設(shè)備中布置包括可執(zhí)行軟件在內(nèi)的文件。安裝還可以包括創(chuàng)建或修改文件夾或目錄、注冊表(例如,在微軟Windows中)、配置文件項、鏈接或快捷方式、以及這些項目的子集。處理邏輯可以使用下載到臨時區(qū)域內(nèi)的包來建立系統(tǒng)高速緩存(處理框118)。在某些實施例中,計算機可讀存儲設(shè)備內(nèi)用于構(gòu)造預(yù)啟動狀態(tài)的存儲器組塊可被節(jié)省,并在隨后讀回,并且能夠在沒有進(jìn)一步麻煩的情況下被使用??杀淮谢帘P的這一存儲器組塊就是高速緩存。例如,處理邏輯可以從包(可以是已被壓縮和/或加密的)中提取更新的文件,在需要時解壓和/或解密這些文件,并在隨后在臨時區(qū)域內(nèi)以預(yù)定層級布置這些文件,鏡像當(dāng)前在計算系統(tǒng)中使用的系統(tǒng)高速緩存中類似文件的層級。

在某些實施例中,存在需要更新的兩個不同的高速緩存,即:內(nèi)核/kext高速緩存以及dyld共享的高速緩存。內(nèi)核/kext高速緩存與需要在內(nèi)核空間內(nèi)運行的驅(qū)動程序代碼(其可由計算系統(tǒng)的操作系統(tǒng)廠商和/或第三方提供)相關(guān)。dyld共享的高速緩存則與由計算系統(tǒng)的用戶空間中的應(yīng)用所使用的共享代碼庫相關(guān)。這兩個高速緩存防止系統(tǒng)在隨后的引導(dǎo)或應(yīng)用裝入循環(huán)期間運行進(jìn)入常規(guī)的、更為耗時的啟動處理。與高速緩存有關(guān)的更多細(xì)節(jié)可以在發(fā)明人為Michael Smith和Joseph Sokol,Jr.的題為"Method for Booting an Operating System"的美國專利No.7,607,000中找出,其中該專利通過引用藉此全文并入在此。

接下來,處理邏輯向計算系統(tǒng)的用戶告知可用更新(處理框120)。上述處理可被稱為更新的預(yù)安裝或是安裝更新的預(yù)熱。在某些實施例中,處理邏輯可以產(chǎn)生用戶界面(例如,圖形用戶界面)以顯示通知用戶可用更新的消息。用戶界面還可以允許用戶指示其是批準(zhǔn)還是拒絕可用更新。在某些實施例中,用戶界面可以包括允許用戶選擇可用更新的子集以進(jìn)行批準(zhǔn)或是拒絕的用戶界面控制(例如,按鈕、校驗框、下拉菜單等)。換句話說,并非批準(zhǔn)或是拒絕全部可用更新,用戶可以通過僅選擇某些更新進(jìn)行安裝來定制所述處理。

在預(yù)安裝更新并通知用戶更新可用之后,處理邏輯等待有關(guān)更新的用戶輸入(處理框122)。在框124,處理邏輯確定是否接收到任何用戶輸入。如果沒有,則處理邏輯返回到框122以繼續(xù)等待用戶輸入。否則,處理邏輯轉(zhuǎn)到圖1B的框126。

參見圖1B,處理邏輯檢查用戶是否批準(zhǔn)了全部可用更新的安裝(處理框126)。如果是,則處理邏輯提交全部更新(處理框128)。例如,處理邏輯可以通過將在臨時區(qū)域內(nèi)建立的系統(tǒng)高速緩存交換到文件系統(tǒng)內(nèi)以代替當(dāng)前系統(tǒng)高速緩存來完成或結(jié)束更新的安裝。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)的新建系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將新建系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存。與完成軟件安裝有關(guān)的進(jìn)一步細(xì)節(jié)可以在發(fā)明人為Jack R.Matthew和John R.Chang的題為"Installation of Software onto a Computer"的美國專利申請12/242,348中找出,其中該專利申請通過引用藉此全文并入在此。可選地,處理邏輯可以在需要時重啟計算系統(tǒng)以使更新有效(處理框130)。

在某些實施例中,如果用戶在框126沒有批準(zhǔn)安裝全部可用的更新,則處理邏輯可以進(jìn)一步檢查用戶是否批準(zhǔn)安裝可用更新的子集(處理框132)。如果用戶批準(zhǔn)安裝可用更新的子集,則處理邏輯可以撤銷建立的系統(tǒng)高速緩存(處理框134)。例如,處理邏輯可以簡單地刪除在盤的臨時區(qū)域內(nèi)建立的系統(tǒng)高速緩存。隨后,處理邏輯可以基于用戶批準(zhǔn)了哪些更新來重建系統(tǒng)高速緩存(處理框136)。處理邏輯于是可以僅提交用戶批準(zhǔn)的更新(處理框138)。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)的新建系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將新建系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存??蛇x地,處理邏輯可以在需要時重啟計算系統(tǒng)以使更新有效(處理框140)。

如果在框132,處理邏輯確定用戶甚至連可用更新的子集都不批準(zhǔn),即用戶拒絕了全部可用更新,則處理邏輯可以撤銷建立的系統(tǒng)高速緩存(處理框142)。在某些實施例中,處理邏輯可以將所下載的包保留在計算系統(tǒng)中以供將來使用(處理框144)。例如,處理邏輯可以在隨后再次檢查更新,并且發(fā)現(xiàn)第二組更新。進(jìn)一步地,處理邏輯可以確定在前下載的某些包還需要安裝該第二組更新,于是就可以在隨后使用這些在前下載的包。

圖2A-2B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。與前述處理類似,這一處理也可以通過包括軟件、硬件、固件或上述任意組合的處理邏輯執(zhí)行。例如,該處理可以由如下討論的在圖5中例示的計算設(shè)備實現(xiàn)的處理邏輯執(zhí)行。

參見圖2A,處理邏輯將計算系統(tǒng)連接至遠(yuǎn)程源以在計算系統(tǒng)的后臺更新軟件(處理框210)。遠(yuǎn)程源可以是經(jīng)由無線網(wǎng)絡(luò)和/或有線網(wǎng)絡(luò)連接至計算系統(tǒng)的諸如服務(wù)器和個人計算機之類的另一計算設(shè)備。網(wǎng)絡(luò)可以包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和以太網(wǎng)等。對軟件的更新可以包括對軟件、軟件的新版本、軟件的安全補丁的更新。注意到處理邏輯在計算系統(tǒng)的后臺中將計算系統(tǒng)連接至遠(yuǎn)程源,并由此不對正在計算系統(tǒng)內(nèi)運行的當(dāng)前進(jìn)程產(chǎn)生干擾。因此,計算系統(tǒng)的用戶可能不會察覺處理邏輯正在干什么。

基于遠(yuǎn)程源處可用更新的元數(shù)據(jù),處理邏輯確定哪個或哪些更新適用于計算系統(tǒng)(處理框212)。一些元數(shù)據(jù)的例子已在上文中討論。處理邏輯將合適更新的包從遠(yuǎn)程源下載到計算系統(tǒng)(處理框214)。

在某些實施例中,處理邏輯在計算系統(tǒng)的計算機可讀存儲設(shè)備上的臨時區(qū)域中啟動對下載的包的安裝(處理框216)。對于每個可能的更新組合,處理邏輯使用下載到臨時區(qū)域內(nèi)的、被放入沙箱的包建立系統(tǒng)高速緩存(處理框218)。系統(tǒng)高速緩存的某些實施例的細(xì)節(jié)已在上文中討論。為每個更新組合建立的系統(tǒng)高速緩存也被放入沙箱,即,該系統(tǒng)高速緩存與臨時區(qū)域內(nèi)建立的其他系統(tǒng)高速緩存隔離。應(yīng)該注意到,由于這些系統(tǒng)高速緩存可以在安裝時間建立,因此計算系統(tǒng)可以是動態(tài)的。換句話說,不同的內(nèi)核擴展和庫可以跨不同的部署存在。例如,可以存在兩個系統(tǒng),其各自具有同一操作系統(tǒng)的拷貝,但是一個拷貝可以具有支持硬件產(chǎn)品的第三方內(nèi)核擴展,而另一個拷貝則不具有。在另一例中,可以存在兩個計算系統(tǒng),這兩個計算系統(tǒng)都具有伴隨可要求不同的dyld共享高速緩存的一個或多個預(yù)選用戶應(yīng)用一起的較新版本的系統(tǒng)共享庫。

隨后,處理邏輯向計算系統(tǒng)的用戶告知可用更新(處理框220)。上述處理可被稱為更新的預(yù)安裝或是安裝更新的預(yù)熱。在某些實施例中,處理邏輯可以產(chǎn)生用戶界面(例如,圖形用戶界面)以顯示通知用戶可用更新的消息。用戶界面的某些實施例的細(xì)節(jié)已在上文中討論。

在預(yù)安裝更新并通知用戶更新可用之后,處理邏輯等待有關(guān)更新的用戶輸入(處理框222)。在框224,處理邏輯確定是否接收到任何用戶輸入。如果沒有,則處理邏輯返回到框222以繼續(xù)等待用戶輸入。否則,處理邏輯轉(zhuǎn)到圖2B的框226。

參見圖2B,處理邏輯檢查用戶是否批準(zhǔn)了全部可用更新的安裝(處理框226)。如果是,則處理邏輯提交全部更新(處理框228)。例如,處理邏輯可以通過將在臨時區(qū)域內(nèi)建立的系統(tǒng)高速緩存交換到文件系統(tǒng)內(nèi)以代替當(dāng)前系統(tǒng)高速緩存來完成或結(jié)束更新的安裝。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)的新建系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將新建系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存。可選地,處理邏輯可以在需要時重啟計算系統(tǒng)以使更新有效(處理框230)。

在某些實施例中,如果用戶在框226沒有批準(zhǔn)安裝全部可用的更新,則處理邏輯可以進(jìn)一步檢查用戶是否批準(zhǔn)安裝可用更新的子集(處理框232)。如果用戶批準(zhǔn)安裝可用更新的子集,則處理邏輯找出在臨時區(qū)域內(nèi)建立的與用戶批準(zhǔn)的更新組合相匹配的系統(tǒng)高速緩存(處理框234)。處理邏輯可以用找出的系統(tǒng)高速緩存代替當(dāng)前系統(tǒng)高速緩存,以提交批準(zhǔn)的更新組合(處理框236)。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)找出的系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將找出的系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存。處理邏輯可以進(jìn)一步刪除或移除在臨時區(qū)域內(nèi)建立的、用于其他更新組合的其余系統(tǒng)高速緩存。最后,處理邏輯可以在需要時重啟計算系統(tǒng)可以使更新有效(處理框238)。因為系統(tǒng)高速緩存已在向用戶通知更新之前被推測性地建立,所以用戶察覺的更新時間(可以是從用戶批準(zhǔn)所選更新到所選更新被提交的時間)比常規(guī)更新安裝時間要短。進(jìn)一步地,在更新預(yù)安裝期間推測性地建立系統(tǒng)高速緩存可以允許不同的內(nèi)核擴展和庫跨不同部署存在。

如果在框232,處理邏輯確定用戶不批準(zhǔn)任一可用更新,即用戶拒絕了全部可用更新,則處理邏輯可以撤銷建立的系統(tǒng)高速緩存(處理框242)。在某些實施例中,處理邏輯可以將所下載的包保留在計算系統(tǒng)中以供將來使用(處理框244)。例如,處理邏輯可以在隨后再次檢查更新,并且發(fā)現(xiàn)第二組更新。進(jìn)一步地,處理邏輯可以確定在前下載的某些包還需要安裝該第二組更新,于是就可以在隨后使用這些在前下載的包。

圖3A-3B例示了根據(jù)各實施例用于在計算系統(tǒng)上進(jìn)行軟件更新的預(yù)熱安裝的處理的流程圖。與前述處理類似,這一處理也可以通過包括軟件、硬件、固件或上述任意組合的處理邏輯執(zhí)行。例如,該處理可以由如下討論的在圖5中例示的計算設(shè)備實現(xiàn)的處理邏輯執(zhí)行。

參見圖3A,處理邏輯將計算系統(tǒng)連接至遠(yuǎn)程源以在計算系統(tǒng)的后臺更新軟件(處理框310)。遠(yuǎn)程源可以是經(jīng)由無線網(wǎng)絡(luò)和/或有線網(wǎng)絡(luò)連接至計算系統(tǒng)的諸如服務(wù)器和個人計算機之類的另一計算設(shè)備。網(wǎng)絡(luò)可以包括局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和以太網(wǎng)等。對軟件的更新可以包括對軟件、軟件的新版本、軟件的安全補丁的更新。注意到處理邏輯在計算系統(tǒng)的后臺中將計算系統(tǒng)連接至遠(yuǎn)程源,并由此不對正在計算系統(tǒng)內(nèi)運行的當(dāng)前進(jìn)程產(chǎn)生干擾。因此,計算系統(tǒng)的用戶可能不會察覺處理邏輯正在干什么。

基于遠(yuǎn)程源處可用更新的元數(shù)據(jù),處理邏輯確定哪個或哪些更新適用于計算系統(tǒng)(處理框312)。一些元數(shù)據(jù)的例子已在上文中討論。處理邏輯將合適更新的包從遠(yuǎn)程源下載到計算系統(tǒng)(處理框314)。

在某些實施例中,處理邏輯在計算系統(tǒng)的計算機可讀存儲設(shè)備上的臨時區(qū)域中啟動對所下載的包的安裝(處理框316)。對于一組預(yù)定的可能的更新組合,處理邏輯使用下載到臨時區(qū)域內(nèi)的、被放入沙箱的包,建立針對這些組合中的每一個組合的系統(tǒng)高速緩存(處理框318)。系統(tǒng)高速緩存的某些實施例的細(xì)節(jié)已在上文中討論。典型地,該組預(yù)定的可能組合包括全部合適更新的組合以及合適更新的一個或多個流行組合。換句話說,處理邏輯推測性地建立多個系統(tǒng)高速緩存,并且其中的一個可被選擇以提交隨后由用戶批準(zhǔn)的更新。為每個更新組合建立的系統(tǒng)高速緩存也被放入沙箱,即,該系統(tǒng)高速緩存與臨時區(qū)域內(nèi)建立的其他系統(tǒng)高速緩存隔離。于是,處理邏輯向計算系統(tǒng)的用戶告知可用更新(處理框320)。上述處理可被稱為更新的預(yù)安裝或是安裝更新的預(yù)熱。在某些實施例中,處理邏輯可以產(chǎn)生用戶界面(例如,圖形用戶界面)以顯示通知用戶可用更新的消息。用戶界面的某些實施例的細(xì)節(jié)已在上文中討論。

在預(yù)安裝更新并通知用戶更新可用之后,處理邏輯等待有關(guān)更新的用戶輸入(處理框322)。在框324,處理邏輯確定是否接收到任何用戶輸入。如果沒有,則處理邏輯返回到框322以繼續(xù)等待用戶輸入。否則,處理邏輯轉(zhuǎn)到圖3B的框326。

參見圖3B,處理邏輯檢查用戶是否批準(zhǔn)了全部可用更新的安裝(處理框326)。如果是,則處理邏輯提交全部更新(處理框328)。例如,處理邏輯可以通過將在臨時區(qū)域內(nèi)建立的系統(tǒng)高速緩存交換到文件系統(tǒng)內(nèi)以代替當(dāng)前系統(tǒng)高速緩存來完成或結(jié)束更新的安裝。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)的新建系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將新建系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存??蛇x地,處理邏輯可以在需要時重啟計算系統(tǒng)以使更新有效(處理框330)。

在某些實施例中,如果用戶在框326沒有批準(zhǔn)安裝全部可用的更新,則處理邏輯可以進(jìn)一步檢查用戶是否批準(zhǔn)安裝可用更新的子集(處理框332)。如果用戶批準(zhǔn)安裝可用更新的子集,隨后處理邏輯檢查批準(zhǔn)的子集是否是預(yù)定組合之一(處理框333)。如果是,處理邏輯找出在臨時區(qū)域內(nèi)建立的、與用戶批準(zhǔn)的更新組合相匹配的系統(tǒng)高速緩存(處理框334)。處理邏輯可以用找出的系統(tǒng)高速緩存代替當(dāng)前系統(tǒng)高速緩存,以提交批準(zhǔn)的更新組合(處理框336)。在某些實施例中,處理邏輯可以將指向當(dāng)前系統(tǒng)高速緩存的指針改為指向臨時區(qū)域內(nèi)找出的系統(tǒng)高速緩存,并且刪除當(dāng)前系統(tǒng)高速緩存。在某些實施例中,處理邏輯可以執(zhí)行單粒操作(例如,推放操作)以刪除當(dāng)前系統(tǒng)高速緩存并將找出的系統(tǒng)高速緩存移入當(dāng)前系統(tǒng)高速緩存的位置,以代替當(dāng)前系統(tǒng)高速緩存。處理邏輯可以進(jìn)一步刪除或移除在臨時區(qū)域內(nèi)建立的、用于其他更新組合的其余系統(tǒng)高速緩存。最后,處理邏輯可以在需要時重啟計算系統(tǒng)以使批準(zhǔn)的更新有效(處理框338)。因為系統(tǒng)高速緩存已在向用戶通知更新之前被推測性地建立,所以用戶察覺的更新時間(可以是從用戶批準(zhǔn)所選更新到所選更新被提交的時間)比常規(guī)更新安裝時間要短。進(jìn)一步地,在更新預(yù)安裝期間推測性地建立系統(tǒng)高速緩存可以允許不同的內(nèi)核擴展和庫跨不同部署存在。

但是,如果處理邏輯在框333確定批準(zhǔn)的子集不是預(yù)定組合之一,隨后處理邏輯可以撤銷建立的全部系統(tǒng)高速緩存(處理框335),基于用戶批準(zhǔn)了哪些更新重建系統(tǒng)高速緩存(處理框339),并且僅提交經(jīng)用戶批準(zhǔn)的更新(處理框340)。最后,處理邏輯可以在需要時重啟計算系統(tǒng)以使批準(zhǔn)的更新有效(處理框338)。

如果在框332,處理邏輯確定用戶甚至不批準(zhǔn)任一可用更新,即用戶拒絕了全部可用更新,則處理邏輯可以撤銷建立的系統(tǒng)高速緩存(處理框342)。在某些實施例中,處理邏輯可以將所下載的包保留在計算系統(tǒng)中以供將來使用(處理框344)。例如,處理邏輯可以在隨后再次檢查更新,并且發(fā)現(xiàn)第二組更新。進(jìn)一步地,處理邏輯可以確定在前下載的某些包還需要安裝該第二組更新,于是就可以在隨后使用這些在前下載的包。

圖4是例示了根據(jù)本發(fā)明某些實施例的可在預(yù)熱軟件安裝中使用的計算系統(tǒng)內(nèi)的計算機可讀存儲設(shè)備的一個實施例的框圖。計算機可讀存儲設(shè)備400可以包括計算系統(tǒng)內(nèi)的硬盤。計算機可讀存儲設(shè)備400存儲計算系統(tǒng)的當(dāng)前文件系統(tǒng)410。此外,保留與當(dāng)前文件系統(tǒng)410隔離的臨時區(qū)域用于更新的預(yù)安裝。在更新的預(yù)安裝期間,通過鏡像當(dāng)前文件系統(tǒng)410的層級而以目錄層級組織和存儲與更新相關(guān)聯(lián)的文件,可以在臨時區(qū)域420內(nèi)建立系統(tǒng)高速緩存425。還可以在臨時區(qū)域420內(nèi)建立用于不同的更新組合的額外系統(tǒng)高速緩存。

如果用戶批準(zhǔn)全部更新,則在臨時區(qū)域420中建立的系統(tǒng)高速緩存425可被交換到當(dāng)前文件系統(tǒng)410內(nèi)。如果用戶拒絕了全部更新,則可以刪除建立的系統(tǒng)高速緩存425。如果用戶僅批準(zhǔn)更新的子集,則可以刪除建立的系統(tǒng)高速緩存425,并且可以經(jīng)抓取建立批準(zhǔn)的更新的子集。在某些實施例中,在已經(jīng)建立的對應(yīng)于預(yù)定更新組合的多個系統(tǒng)高速緩存的情況下,如果批準(zhǔn)的更新子集正好是預(yù)定的更新組合之一,就可以使用建立的系統(tǒng)高速緩存之一來提交該批準(zhǔn)的更新子集。預(yù)安裝軟件更新的某些實施例的細(xì)節(jié)已在上述討論。

圖5是例示了用于實踐在此描述的各實施例的合適的計算環(huán)境的框圖。一般地,這些部件旨在表示廣義類型的硬件系統(tǒng),包括但不限于:通用計算機系統(tǒng)(例如,服務(wù)器、個人計算機、膝上型計算機等)以及專用手持計算機設(shè)備(例如,個人數(shù)字助理(PDA)、智能電話等)。

計算系統(tǒng)500包括經(jīng)由總線580相互耦接的處理器510、I/O設(shè)備540、主存儲器520和閃存530??梢园ㄒ粋€或多個系統(tǒng)存儲器(RAM)和非易失性存儲設(shè)備(例如,磁盤或光盤)的主存儲器520存儲供處理器510使用的指令和數(shù)據(jù)。此外,網(wǎng)絡(luò)接口570和數(shù)據(jù)存儲560經(jīng)由總線580相互耦接。數(shù)據(jù)存儲560存儲在此描述的結(jié)構(gòu)性數(shù)據(jù)(例如,聯(lián)系人信息、日歷等)。

計算系統(tǒng)500的各個部件可以在各實施例中被重新布置,并且某些實施例可以不要求或包括上述部件的全部。此外,系統(tǒng)500中還可以包括額外的部件,諸如額外的處理器(例如,數(shù)字信號處理器、圖形處理器等)、存儲設(shè)備、存儲器、網(wǎng)絡(luò)/通信接口等。

在某些實施例中,用于如上討論根據(jù)本發(fā)明預(yù)熱軟件安裝或預(yù)安裝軟件更新的方法和裝置可被實現(xiàn)為由圖5的計算系統(tǒng)500運行的一系列軟件例程。這些軟件例程包括將由諸如處理器510的硬件系統(tǒng)中的處理系統(tǒng)執(zhí)行的多個指令系列。初始地,這些指令系列存儲在數(shù)據(jù)存儲設(shè)備560、處理器520和/或閃存530中。

在此描述的各部件可以是用于執(zhí)行在此描述的各功能的途徑。在此描述的每個部件包括軟件、硬件或兩者的組合。部件可被實現(xiàn)為軟件模塊、硬件模塊、專用硬件(例如、專用硬件、專用集成電路(ASIC)、數(shù)字信號處理器(DSP)等)、嵌入式控制器、硬連線電路等。軟件內(nèi)容(例如,數(shù)據(jù)、指令、配置等)則可經(jīng)由包括計算機可讀介質(zhì)的、提供表示可被執(zhí)行的指令的內(nèi)容的計算機可讀介質(zhì)的制品提供。所述內(nèi)容可以導(dǎo)致計算機執(zhí)行在此描述的各種功能/操作。計算機可讀(或機器可讀或電子可訪問)介質(zhì)包括以可由計算設(shè)備(例如,計算機、PAD、電子系統(tǒng)等)訪問的形式提供(例如,存儲和/或傳送)信息的任何機構(gòu),諸如可記錄/不可記錄介質(zhì)(例如,只讀存儲器(ROM)、隨機存取存儲器(RAM)、磁盤存儲介質(zhì)、光學(xué)存儲介質(zhì)、閃存設(shè)備等)。所述內(nèi)容可以是直接可執(zhí)行的(例如,“對象”或“可執(zhí)行”形式)、源代碼等。計算機可讀介質(zhì)還可以包括可以從中下載內(nèi)容的存儲裝置或數(shù)據(jù)庫。計算機可讀介質(zhì)還可以包括在販賣或遞送之時具有存儲在其上的內(nèi)容的設(shè)備或產(chǎn)品。于是,具有所存儲內(nèi)容的設(shè)備的遞送,或是供應(yīng)經(jīng)通信介質(zhì)下載的內(nèi)容可被理解為提供具有在此描述的這一內(nèi)容的制品。

除了在此描述的內(nèi)容之外,可以對本發(fā)明的公開實施例和實現(xiàn)做出各種修改而不背離本發(fā)明的范圍。因此,在此的說明和例子應(yīng)被理解為是示例性而非限制性的。本發(fā)明的范圍應(yīng)僅僅通過參考所附權(quán)利要求而得出。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
德安县| 陇川县| 区。| 荔浦县| 博白县| 长乐市| 吉木萨尔县| 鲁甸县| 望奎县| 乌兰浩特市| 全椒县| 兴和县| 枣强县| 巴林左旗| 沂南县| 正宁县| 浪卡子县| 建湖县| 霞浦县| 乌恰县| 秀山| 大英县| 叶城县| 崇文区| 郴州市| 牟定县| 偏关县| 新丰县| 千阳县| 桓台县| 天等县| 财经| 吉林市| 东乡县| 夏邑县| 会泽县| 浦城县| 马山县| 高雄市| 宝应县| 满城县|