為相同網(wǎng)絡(luò)上的計(jì)算設(shè)備提供軟件更新的制作方法
【專利摘要】一種用于在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新的系統(tǒng)和機(jī)器實(shí)現(xiàn)方法。識別用于對所述軟件更新進(jìn)行安裝的所述多個(gè)計(jì)算設(shè)備的子集。將所述軟件更新提供至在用于安裝的所述子集內(nèi)的所述計(jì)算設(shè)備。在提供所述軟件更新之后,為在所述子集內(nèi)的所述計(jì)算設(shè)備中的至少一個(gè)計(jì)算設(shè)備獲取軟件版本或者連接性狀態(tài)?;谒霁@取的軟件版本或者連接性狀態(tài),確定所述軟件更新是無效的。
【專利說明】為相同網(wǎng)絡(luò)上的計(jì)算設(shè)備提供軟件更新
【背景技術(shù)】
[0001] 本公開大體上涉及軟件更新,并且具體地,涉及對網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備提供軟件更 新。
[0002] 對網(wǎng)絡(luò)(例如,局域網(wǎng)(LAN))內(nèi)的計(jì)算設(shè)備部署軟件更新可能會造成問題,這是因 為在安裝這樣的更新時(shí)可能引入軟件錯(cuò)誤或者引起其它問題。因此,需要避免對網(wǎng)絡(luò)內(nèi)的 多個(gè)計(jì)算設(shè)備部署無效的軟件更新。
【發(fā)明內(nèi)容】
[0003] 所公開的主題涉及一種在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新的計(jì)算機(jī)實(shí) 現(xiàn)方法。所述方法包括:識別用于對軟件更新進(jìn)行安裝的多個(gè)計(jì)算設(shè)備的子集;以及,將軟 件更新提供至用于安裝的子集內(nèi)的計(jì)算設(shè)備。所述方法進(jìn)一步包括:在提供軟件更新之后, 為在子集內(nèi)的計(jì)算設(shè)備中的至少一個(gè)獲取軟件版本或者連接性狀態(tài);以及,基于所獲取的 軟件版本或者連接性狀態(tài),確定軟件更新是無效的。
[0004] 所公開的主題進(jìn)一步涉及一種用于在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新 的系統(tǒng)。所述系統(tǒng)包括:一個(gè)或者多個(gè)處理器;以及,機(jī)器可讀介質(zhì),所述機(jī)器可讀介質(zhì)包括 存儲在其中的指令,所述指令當(dāng)由處理器執(zhí)行時(shí),使得處理器執(zhí)行操作,所述操作包括:識 別用于對軟件更新進(jìn)行安裝的多個(gè)計(jì)算設(shè)備的子集。所述操作進(jìn)一步包括:將軟件更新提 供至在用于安裝的子集內(nèi)的計(jì)算設(shè)備;以及,在提供軟件更新之后,為在子集內(nèi)的計(jì)算設(shè)備 中的至少一個(gè)獲取軟件版本或者連接性狀態(tài)。此外,基于獲取的軟件版本或者連接性狀態(tài), 所述操作包括:確定軟件更新是否有效;以及,在確定了軟件更新是無效的情況下,禁止將 軟件更新提供至多個(gè)計(jì)算設(shè)備中的剩余計(jì)算設(shè)備。
[0005] 所公開的主題還涉及機(jī)器可讀介質(zhì),所述機(jī)器可讀介質(zhì)包括存儲在其中的指令, 所述指令當(dāng)由系統(tǒng)執(zhí)行時(shí),使得系統(tǒng)執(zhí)行操作,所述操作包括:識別用于對軟件更新進(jìn)行安 裝的多個(gè)計(jì)算設(shè)備的子集,以及,將軟件更新提供至在用于安裝的子集內(nèi)的計(jì)算設(shè)備。所述 方法進(jìn)一步包括:在提供軟件更新之后,為在子集內(nèi)的計(jì)算設(shè)備中的至少一個(gè)獲取軟件版 本或者連接性狀態(tài);以及,基于所獲取的軟件版本或者連接性狀態(tài),確定軟件更新是否是有 效的。此外,所述操作包括:在確定軟件更新是有效的情況下,將軟件更新提供至多個(gè)計(jì)算 設(shè)備中的剩余計(jì)算設(shè)備;以及,在確定軟件更新是無效的情況下,禁止將軟件更新提供至多 個(gè)計(jì)算設(shè)備中的剩余計(jì)算設(shè)備。
[0006] 應(yīng)該理解,對本領(lǐng)域中的技術(shù)人員而言,本主題技術(shù)的其它配置將通過下面的詳 細(xì)描述變得很顯而易見,其中,通過圖示的方式示出并且描述了該主題技術(shù)的各種配置。正 如將被意識到的,該主題技術(shù)能夠具有其它的和不同的配置,并且其多個(gè)細(xì)節(jié)能夠在各個(gè) 其它方面進(jìn)行修改,所有這些修改都不背離本主題技術(shù)的范圍。因此,附圖和詳細(xì)描述在本 質(zhì)上應(yīng)被視為示例性的,而非限制性的。
【附圖說明】
[0007] 在所附權(quán)利要求中闡述了本主題技術(shù)的特征。然而,為了進(jìn)行說明,在以下的附圖 中闡述了本主題技術(shù)的多個(gè)實(shí)施例。
[0008] 圖1圖示了可以提供對軟件更新進(jìn)行部署的示例網(wǎng)絡(luò)環(huán)境。
[0009] 圖2圖示了將軟件更新提供至網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備的示例過程。
[0010] 圖3圖示了將軟件更新提供至網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備的另一示例過程。
[0011] 圖4圖示了將軟件更新提供至網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備的另一示例過程。
[0012] 圖5圖示了在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)執(zhí)行軟件更新的示例過程。
[0013] 圖6概念性地圖示了可以實(shí)現(xiàn)本主題技術(shù)的一些實(shí)施方式的示例電子系統(tǒng)。
【具體實(shí)施方式】
[0014] 下面闡述的詳細(xì)描述旨在作為對本主題技術(shù)的各種配置的描述,而非旨在表示可 以實(shí)踐本主題技術(shù)的唯一配置。所附附圖被并入了本文,并且構(gòu)成本詳細(xì)描述的一部分。本 詳細(xì)描述包括具體細(xì)節(jié),以便提供對本主題技術(shù)的透徹理解。然而,對于本領(lǐng)域內(nèi)的技術(shù)人 員而言,將是清晰的并且顯而易見的是,本主題技術(shù)不限于本文中所闡述的具體細(xì)節(jié),并且 可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐本主題技術(shù)。在一些實(shí)例中,為了避免模糊本主題 技術(shù)的概念,以塊圖的形式示出了眾所周知的結(jié)構(gòu)和組件。
[0015] 如上所述,對網(wǎng)絡(luò)(諸如局域網(wǎng)(LAN))內(nèi)的計(jì)算設(shè)備部署軟件更新可能會造成問 題,這是因?yàn)樵诎惭b這樣的更新時(shí)可能引入軟件錯(cuò)誤或者引起其它問題。因此,需要避免對 網(wǎng)絡(luò)內(nèi)的多個(gè)計(jì)算設(shè)備部署無效的軟件更新。
[0016] 本主題公開大體上涉及在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新。識別多個(gè)計(jì) 算設(shè)備的子集用于軟件更新的安裝。將軟件更新提供至在用于安裝的子集內(nèi)的計(jì)算設(shè)備。 在提供軟件更新之后,為子集內(nèi)的計(jì)算設(shè)備中的至少一個(gè)獲取軟件版本或者連接性狀態(tài)。 基于獲取的軟件版本或者連接性狀態(tài),做出軟件更新是無效的確定。
[0017] 圖1示出了可以提供對軟件更新進(jìn)行部署的示例網(wǎng)絡(luò)環(huán)境。網(wǎng)絡(luò)環(huán)境100包括:計(jì) 算設(shè)備102a、102b、102c、102d、……、102n(下文稱為"102a_n")和計(jì)算系統(tǒng)106。雖然圖I為 102a-n圖示了五個(gè)設(shè)備,但是本主題技術(shù)可以應(yīng)用于更少數(shù)目的或者更多數(shù)目的計(jì)算設(shè) 備。計(jì)算設(shè)備l〇2a-n和計(jì)算系統(tǒng)106可以通過網(wǎng)絡(luò)104互相通信。計(jì)算系統(tǒng)106可以包括:一 個(gè)或者多個(gè)計(jì)算設(shè)備1〇8(例如,一個(gè)或者多個(gè)服務(wù)器)、以及一個(gè)或者多個(gè)計(jì)算機(jī)可讀存儲 設(shè)備11〇(例如,一個(gè)或者多個(gè)數(shù)據(jù)庫)。
[0018] 計(jì)算設(shè)備102a-n中的每個(gè)可以代表各種形式的處理設(shè)備。示例處理設(shè)備可以包 括:臺式計(jì)算機(jī)、膝上型計(jì)算機(jī)、手持式計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、網(wǎng)絡(luò)電器、 照相機(jī)、智能電話、增強(qiáng)通用分組無線電服務(wù)(EGPRS)移動電話、媒體播放器、導(dǎo)航設(shè)備、電 子郵件設(shè)備、游戲機(jī)、或者任何這些數(shù)據(jù)處理設(shè)備或者其它數(shù)據(jù)處理設(shè)備的組合。計(jì)算設(shè)備 102a-n和108可以被提供到其它計(jì)算設(shè)備102a-n和108中任一個(gè)的訪問或者接收在其它計(jì) 算設(shè)備102a-n和108中任一個(gè)上所執(zhí)行或者存儲的應(yīng)用軟件。
[0019] 計(jì)算設(shè)備108可以是具有處理器、存儲器、和將內(nèi)容提供至電子設(shè)備的通信能力的 任何系統(tǒng)或者設(shè)備。在一些示例方面中,服務(wù)器106可以是單個(gè)計(jì)算設(shè)備,例如,計(jì)算機(jī)服務(wù) 器。在其它實(shí)施例中,服務(wù)器106可以代表共同工作以執(zhí)行服務(wù)器計(jì)算機(jī)的動作(例如,云計(jì) 算)的一個(gè)以上的計(jì)算設(shè)備。進(jìn)一步地,計(jì)算設(shè)備108可以代表各種形式的服務(wù)器,所述服務(wù) 器包括,但不限于,web服務(wù)器、應(yīng)用服務(wù)器、代理服務(wù)器、網(wǎng)絡(luò)服務(wù)器、或者服務(wù)器群。
[0020] 在一些方面中,計(jì)算設(shè)備可以通過通信接口(未示出)無線地通信,該通信接口必 要時(shí)可以包括數(shù)字信號處理電路。通信接口可以根據(jù)各種模式或者協(xié)議提供通信,例如,全 球移動通信系統(tǒng)(GSM)語音呼叫、短信息服務(wù)(SMS)、增強(qiáng)型信息服務(wù)(EMS)、或者多媒體信 息服務(wù)(麗S)消息、碼分多址(⑶MA)、時(shí)分多址(TDMA)、個(gè)人數(shù)字蜂窩(PDC)、寬帶碼分多址 (WCDMA)、CDMA2000、或者通用分組無線業(yè)務(wù)(GPRS)等。例如,通過射頻收發(fā)器(未示出),可 以發(fā)生通信。此外,,例如,通過使用Bluet 〇〇th、WiFi、或者其它這樣的收發(fā)器可以發(fā)生短程 通信。
[0021] 在一些方面中,網(wǎng)絡(luò)環(huán)境100可以是跨越一個(gè)或者多個(gè)網(wǎng)絡(luò)的分布式客戶端/服務(wù) 器系統(tǒng)(例如,網(wǎng)絡(luò)104)。網(wǎng)絡(luò)104可以是大型計(jì)算機(jī)網(wǎng)絡(luò),例如,局域網(wǎng)(LAN)、廣域網(wǎng) (WAN)、互聯(lián)網(wǎng)、蜂窩網(wǎng)絡(luò)、或者連接任何數(shù)目的移動客戶端、固定客戶端、和服務(wù)器的組合。 進(jìn)一步地,網(wǎng)絡(luò)104可以包括,但不限于,以下網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的任意一個(gè)或者多個(gè),包括: 總線網(wǎng)絡(luò)、星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)、網(wǎng)狀網(wǎng)絡(luò)、星型總線網(wǎng)絡(luò)、樹形或者層級網(wǎng)絡(luò),等等。在一些 方面中,經(jīng)由虛擬專用網(wǎng)絡(luò)(VPN)、安全外殼(SSH)隧道、或者其它安全網(wǎng)絡(luò)連接,可以發(fā)生 在每個(gè)客戶端(例如,計(jì)算設(shè)備l〇2a-n)與服務(wù)器(例如,服務(wù)器106)之間的通信。在一些方 面中,網(wǎng)絡(luò)104可以進(jìn)一步包括:企業(yè)網(wǎng)絡(luò)(例如,內(nèi)聯(lián)網(wǎng))和一個(gè)或者多個(gè)無線接入點(diǎn)。
[0022] 網(wǎng)絡(luò)環(huán)境可以與對應(yīng)于組織(例如,商業(yè)、公司、學(xué)校)的企業(yè)系統(tǒng)對應(yīng)。計(jì)算設(shè)備 102a-n中的每個(gè)可以被分配到在組織內(nèi)的終端用戶(例如,雇員、學(xué)生)。在示例方面中,計(jì) 算設(shè)備102a-n可以與具有相同的或者相似的硬件的客戶端設(shè)備對應(yīng)(例如,所有的客戶端 設(shè)備都是具有相似硬件的筆記本式計(jì)算機(jī))。
[0023]在示例方面中,從計(jì)算機(jī)設(shè)備102a_2的角度來看,服務(wù)器106與在遠(yuǎn)程網(wǎng)絡(luò)上的服 務(wù)器對應(yīng)。服務(wù)器106可以為在網(wǎng)絡(luò)104內(nèi)的多個(gè)計(jì)算設(shè)備(例如,計(jì)算設(shè)備102a-n中的一個(gè) 或多個(gè))提供軟件更新。服務(wù)器106識別需要安裝軟件更新的多個(gè)計(jì)算設(shè)備(例如,計(jì)算設(shè)備 102a-c)的子集。服務(wù)器106將軟件更新提供至在子集內(nèi)的計(jì)算設(shè)備用于安裝,并且在子集 內(nèi)的計(jì)算設(shè)備加載(或者嘗試加載)軟件更新。
[0024] 將軟件更新提供至計(jì)算設(shè)備可以對應(yīng)于:經(jīng)請求,使軟件更新可用于子集內(nèi)的計(jì) 算設(shè)備。如此,在某種情況下,軟件更新可以可用于服務(wù)器供所有計(jì)算設(shè)備下載;然而,僅有 那些計(jì)算設(shè)備的子集才被挑選為真正檢索該更新并且試圖升級。如下面將參照圖3描述的, 在不從服務(wù)器106輸入的情況下(例如,在不包括服務(wù)器106的局域網(wǎng)內(nèi)),可以按照分布式 的方式執(zhí)行該挑選。
[0025] 在提供軟件更新之后,服務(wù)器106為在子集內(nèi)的計(jì)算設(shè)備中的至少一個(gè)獲取軟件 版本或者連接性狀態(tài)?;谒@得的軟件版本或者連接性狀態(tài),服務(wù)器106確定軟件更新是 否有效。在確定軟件更新是有效的情況下,服務(wù)器106將軟件更新提供至多個(gè)計(jì)算設(shè)備中的 剩余計(jì)算設(shè)備。在確定軟件更新是無效的情況下,服務(wù)器106禁止將軟件更新提供至多個(gè)計(jì) 算設(shè)備中的剩余計(jì)算設(shè)備。
[0026] 圖2圖示了將軟件更新提供至網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備的示例過程。如上所述,網(wǎng)絡(luò)可以 與LAN、WAN、互聯(lián)網(wǎng)、蜂窩網(wǎng)絡(luò)、或其組合對應(yīng)。此外,包括計(jì)算設(shè)備和服務(wù)器的網(wǎng)絡(luò)環(huán)境可 以與(例如,商業(yè)或者學(xué)校)企業(yè)系統(tǒng)對應(yīng)。
[0027] 軟件更新的示例包括,但不限于,在計(jì)算設(shè)備上運(yùn)行的應(yīng)用的更新、操作系統(tǒng)更 新、固件更新、或這些更新的組合。在一些方面中,計(jì)算設(shè)備具有相同的或者相似的硬件。替 選地,計(jì)算設(shè)備可以具有不同的硬件。在這方面,可能存在對不同CPU架構(gòu)的獨(dú)立更新、或者 在相同CPU架構(gòu)內(nèi)的不同芯片集和/或形狀因子的不同更新?;谙到y(tǒng)的外圍(例如,Wi-Fi 或者調(diào)制解調(diào)器),更新可以不同;或者基于設(shè)備制造商,在圖像中可能存在差別。
[0028]在塊202處,服務(wù)器106識別在網(wǎng)絡(luò)環(huán)境(例如,100)內(nèi)識的計(jì)算設(shè)備的子集(例如, 102a-n的子集)用于軟件更新。在圖2的示例中,計(jì)算設(shè)備的子集包括三個(gè)設(shè)備,即102a-c。 然而,不同數(shù)目的設(shè)備(例如,兩個(gè)設(shè)備、五個(gè)設(shè)備)或者設(shè)備中的不同設(shè)備(例如,設(shè)備 102b-d)可以用作子集。在示例方面中,設(shè)備的數(shù)目可以與預(yù)定百分比(例如,5%)的多個(gè)計(jì) 算設(shè)備對應(yīng)。
[0029] 對子集要包括哪些計(jì)算設(shè)備的識別可以基于一致性算法。通常,一致性算法被用 于一組裝置之間對一個(gè)結(jié)果的協(xié)定。此處,一致性算法可以被用于對要使用多個(gè)計(jì)算設(shè)備 中的哪些計(jì)算設(shè)備來進(jìn)行軟件更新的初始接收(和安裝)做出協(xié)定。例如,Paxos-致性算法 可以被用于識別在用于軟件更新的初始安裝的子集中要包括哪些計(jì)算設(shè)備。
[0030] 在塊204a-b處,一旦計(jì)算設(shè)備的子集已經(jīng)被識別,服務(wù)器106將軟件更新提供至計(jì) 算設(shè)備的子集。在這方面,服務(wù)器106可以控制發(fā)出哪些軟件更新、以及(例如,基于前述的 一致性算法)哪些計(jì)算設(shè)備將接收更新。例如,服務(wù)器106可以設(shè)定用于指示哪些計(jì)算設(shè)備 將接收更新的參數(shù),并且在每個(gè)計(jì)算設(shè)備上運(yùn)行的程序可以生成一個(gè)值,該值可以落在或 者可以不落在由服務(wù)器106所設(shè)定的參數(shù)內(nèi)。
[0031] 如上所述,將軟件更新提供至計(jì)算設(shè)備可以對應(yīng)于:經(jīng)請求,使軟件更新可用于子 集內(nèi)的計(jì)算設(shè)備(例如,l〇2a_c)。如此,在某種情況下,軟件更新可以可用于服務(wù)器供所有 計(jì)算設(shè)備(l〇2a-n)下載;然而,僅有那些計(jì)算設(shè)備(例如,102a-c)的子集才被挑選為真正檢 索該更新并且試圖升級。在一些實(shí)施例中,服務(wù)器106將足夠的信息提供至計(jì)算設(shè)備,使得 計(jì)算設(shè)備可以解譯更新部署說明,并且做出與計(jì)算設(shè)備的更新識別號碼是否有資格檢索軟 件更新有關(guān)的確定。在一些實(shí)施例中,服務(wù)器106將軟件更新發(fā)送至已經(jīng)落在所建立的參數(shù) 內(nèi)的計(jì)算設(shè)備,所述計(jì)算設(shè)備將是最終接收更新的計(jì)算設(shè)備中的所有的子集。因此,在創(chuàng)建 用于更新的接收或者釋放的受控環(huán)境方面,可以涉及到計(jì)算設(shè)備(例如,l〇2a-n)和服務(wù)器 106兩者。
[0032]在塊206處,在子集內(nèi)的計(jì)算設(shè)備(例如,102a_c)中的每個(gè)可以安裝從服務(wù)器106 所接收的軟件更新。在一些情況下,軟件更新的安裝可能給計(jì)算設(shè)備引起問題。例如,在軟 件更新的安裝之后,計(jì)算設(shè)備可能會意外地崩潰。
[0033] 在示例方面中,在崩潰或者在遇到閾值數(shù)目的崩潰之后,計(jì)算設(shè)備可以返回到運(yùn) 行軟件的先前版本(例如,操作系統(tǒng)、硬件、或者應(yīng)用的先前版本)??傊诮邮哲浖轮?后,計(jì)算設(shè)備可以生成新的用于啟動的分區(qū),其中,新的分區(qū)包括軟件更新。除了儲存該新 的用于啟動的分區(qū)之外,計(jì)算設(shè)備可以維持對一個(gè)或者多個(gè)先前的用于啟動的分區(qū)的存 儲,其中,先前的分區(qū)不包括軟件更新。一旦崩潰(例如,閾值次數(shù)),計(jì)算設(shè)備可能不會再從 新的分區(qū)進(jìn)行啟動,而是恢復(fù)到從先前的分區(qū)進(jìn)行啟動。計(jì)算設(shè)備可以設(shè)置標(biāo)記值,該標(biāo)記 值指示使用哪個(gè)(例如,由版本號指示的新的或者先前的)分區(qū)進(jìn)行啟動。
[0034] 在另一示例中,在對軟件更新進(jìn)行安裝之后,計(jì)算設(shè)備可能會遇到建立網(wǎng)絡(luò)連接 方面的問題。例如,在加載軟件更新時(shí),計(jì)算設(shè)備可能無法連接至網(wǎng)絡(luò)(例如,無線網(wǎng)),和/ 或可能在長期的時(shí)間內(nèi)一直無法建立網(wǎng)絡(luò)連接。
[0035]如此,計(jì)算設(shè)備的崩潰或在加載軟件更新之后無法連接至網(wǎng)絡(luò)與軟件更新無效的 示例對應(yīng)。應(yīng)該注意,可以發(fā)生計(jì)算設(shè)備的其它類型的失敗,并且這些失敗也可以指示軟件 更新無效。如下面將更詳細(xì)地描述的,如果軟件更新無效,服務(wù)器106可以不將軟件更新部 署到剩余的計(jì)算設(shè)備(例如,102d-n)。
[0036]在塊208a_b處,在子集內(nèi)的一個(gè)或者多個(gè)計(jì)算設(shè)備將軟件更新和/或連接性狀態(tài) 提供至服務(wù)器。如上面提及的,如果在加載軟件更新之后,一個(gè)或者多個(gè)計(jì)算設(shè)備l〇2a_c崩 潰了閾值次數(shù),那么,那些設(shè)備可以恢復(fù)到先前的用于啟動的分區(qū)。替選地,或者此外,那些 設(shè)備可以恢復(fù)到不是分區(qū)的軟件的先前版本進(jìn)行運(yùn)行。計(jì)算設(shè)備正在運(yùn)行的(例如,分區(qū)的 或者軟件的)版本可以被設(shè)置為標(biāo)記值,該值可由服務(wù)器106訪問。
[0037]除了獲取標(biāo)記值之外,服務(wù)器106可以檢測計(jì)算設(shè)備102a_c的連接性狀態(tài)。例如, 在發(fā)送軟件更新之后,服務(wù)器106可以在預(yù)定時(shí)間幀內(nèi)檢查計(jì)算設(shè)備102a_c中每個(gè)的連接 性狀態(tài)(例如,以允許設(shè)備中的每個(gè)都能安裝更新)。此外,例如,服務(wù)器106可以在當(dāng)前持續(xù) 時(shí)間內(nèi)持續(xù)檢查連接性,以確定計(jì)算設(shè)備已經(jīng)連接或者斷開了多長時(shí)間。
[0038]在示例方面中,發(fā)生失敗的計(jì)算設(shè)備(例如,崩潰、網(wǎng)絡(luò)連接失敗)可以廣播與失敗 相關(guān)聯(lián)的數(shù)據(jù),使得服務(wù)器106能夠具有對這樣的數(shù)據(jù)的訪問。例如,計(jì)算設(shè)備可以將與崩 潰或者失敗的網(wǎng)絡(luò)連接對應(yīng)的日志數(shù)據(jù)的一部分提供至服務(wù)器106。替選地,或者此外,計(jì) 算設(shè)備可以將這樣的信息(例如,日志數(shù)據(jù))傳送至網(wǎng)絡(luò)中的對等計(jì)算設(shè)備(例如,計(jì)算設(shè)備 102d-n中的任何一個(gè)),并且該對等計(jì)算設(shè)備可以將信息中繼至服務(wù)器106。
[0039] 一旦服務(wù)器106已經(jīng)獲取到與一個(gè)或者多個(gè)計(jì)算設(shè)備102a_n的軟件版本和/或連 接性狀態(tài)有關(guān)的信息,服務(wù)器106可以確定軟件更新是否有效。例如,服務(wù)器106可以訪問相 應(yīng)計(jì)算設(shè)備的分區(qū)的或者軟件應(yīng)用的版本。因此,服務(wù)器106可以檢測計(jì)算設(shè)備(例如, 102a-c)何時(shí)在運(yùn)行不一致的(例如,先前的)版本,指示計(jì)算設(shè)備的失敗(例如,崩潰)和無 效的軟件更新。
[0040] 參照連接性狀態(tài),基于預(yù)定的閾值,如果計(jì)算設(shè)備未連接至網(wǎng)絡(luò),服務(wù)器106可以 確定軟件更新是無效的。例如,如果計(jì)算設(shè)備l〇2a_c中的一個(gè)或者多個(gè)在預(yù)定時(shí)段內(nèi)未連 接,服務(wù)器106可以確定軟件更新是無效的。在另一示例中,如果計(jì)算設(shè)備102a_c中的一個(gè) 或者多個(gè)在預(yù)設(shè)持續(xù)時(shí)間之后持續(xù)斷開,服務(wù)器106可以確定軟件更新是無效的。應(yīng)該注 意,前述確定更新無效的方案與示例對應(yīng),并且可以使用其它方案或方案中任何的組合來 指示無效的軟件更新。
[0041] 如上所述,可以由服務(wù)器執(zhí)行對更新是無效的確定(例如,被選的計(jì)算設(shè)備無法再 次獲得網(wǎng)絡(luò)連接性,或者恢復(fù)到舊的版本)。替選地,并且如下面參照圖3將進(jìn)一步被描述 的,可以由次選的計(jì)算設(shè)備執(zhí)行更新是無效的確定,或者可以通過計(jì)算設(shè)備(例如,l〇2a_n) 中的一個(gè)或者多個(gè)以分布式的方式來確定。
[0042] 在示例方面中,如果是由設(shè)備執(zhí)行該確定,而不是(通過次選的計(jì)算設(shè)備和/或通 過計(jì)算設(shè)備l〇2a-n中的任何)由服務(wù)器106執(zhí)行該確定,那么可以將這樣的確定的指示提供 至服務(wù)器110,或者使這樣的確定的指示可用于服務(wù)器110。替選地,或者此外,可以將該指 示提供至局域網(wǎng)內(nèi)的所有其它設(shè)備(例如,l〇2a_n),或者使該指示可用于所有其它設(shè)備(例 如,102a-n)。例如,有可能經(jīng)由密碼學(xué)證明,給出的設(shè)備是(例如,針對具體的操作系統(tǒng))可 信的設(shè)備,或者有可能對僅僅在相同類型的可信設(shè)備附近方可解碼的消息進(jìn)行編碼。
[0043] 在步驟210a_b處,服務(wù)器106將軟件更新提供至網(wǎng)絡(luò)內(nèi)的剩余計(jì)算設(shè)備(例如, 102d-n)、或者禁止將軟件更新提供至網(wǎng)絡(luò)內(nèi)的剩余計(jì)算設(shè)備(例如,102d-n)。如果軟件更 新被確定為有效,服務(wù)器106將軟件更新提供至剩余設(shè)備。如下面將參照圖3進(jìn)一步描述的, 如果軟件更新被確定為有效,被挑選為執(zhí)行升級的計(jì)算設(shè)備中的子集中的一個(gè)子集(例如, 102a-c)現(xiàn)在具有有效更新的副本,該副本是從服務(wù)器106下載的。因此,附加的計(jì)算設(shè)備 (例如,102d-n)不一定需要(可能通過慢速的網(wǎng)絡(luò)鏈接)聯(lián)系遠(yuǎn)程服務(wù)器(例如,服務(wù)器1-6) 以檢索更新。相反,附加的計(jì)算設(shè)備(例如,l〇2d-n)可以選擇直接從已經(jīng)(例如,102a-c中的 任何一個(gè))進(jìn)行檢索的對等計(jì)算設(shè)備檢索更新。
[0044] 在這方面,從對等計(jì)算設(shè)備檢索更新可以被認(rèn)為是安全的,這是因?yàn)檐浖掠?效載荷的驗(yàn)證也是按照分布式的方式執(zhí)行的。每個(gè)計(jì)算設(shè)備(例如,l〇2a_n)可以具有工具 中的所有以驗(yàn)證圖像是否是可信的(例如,來自正確的源并且未經(jīng)修改)并且是適當(dāng)?shù)模ɡ?如,針對該計(jì)算設(shè)備所屬的實(shí)際平臺)。驗(yàn)證其平臺對等體中的一個(gè)是否已經(jīng)成功被啟動并 且已經(jīng)成功取得網(wǎng)絡(luò)連接性的附加步驟允許計(jì)算設(shè)備確認(rèn)該軟件圖像在網(wǎng)絡(luò)環(huán)境(例如, 網(wǎng)絡(luò)環(huán)境100)中正確工作。
[0045] 如果軟件更新被確定為無效,服務(wù)器106禁止將軟件更新提供至剩余設(shè)備。在步驟 212處,如果軟件更新是由服務(wù)器106所提供的(例如,如果服務(wù)器106確定更新有效),那么 剩余計(jì)算設(shè)備加載軟件更新。
[0046] 應(yīng)該注意,可以使用其它標(biāo)準(zhǔn)來識別參與了挑選和更新驗(yàn)證的計(jì)算設(shè)備的子集。 例如,可以使用設(shè)備的特定企業(yè)所有權(quán)來識別子集。這樣的所有權(quán)信息可以影響如何對系 統(tǒng)進(jìn)行配置(例如,阻止設(shè)備再次連接至網(wǎng)絡(luò),或者根據(jù)規(guī)則,設(shè)備可能都具有特定的擴(kuò)展, 該擴(kuò)展被安裝,使其可能無法與新的更新一起工作)。在示例方面中,設(shè)備的該子群可以單 獨(dú)參與挑選和有效性驗(yàn)證,但還是可以利用包含其預(yù)期的軟件更新的其它設(shè)備,或者可以 選擇直接從服務(wù)器下載其更新。
[0047] 圖3圖示了將軟件更新提供至網(wǎng)絡(luò)內(nèi)的計(jì)算設(shè)備的另一示例過程。如上面提及的, 網(wǎng)絡(luò)可以與LAN、WAN、互聯(lián)網(wǎng)、蜂窩網(wǎng)絡(luò)、或其組合對應(yīng)。此外,包括計(jì)算設(shè)備和服務(wù)器的網(wǎng) 絡(luò)環(huán)境可以與(例如,商業(yè)或者學(xué)校的)企業(yè)系統(tǒng)對應(yīng)。
[0048] 軟件更新的示例包括,但不限于,在計(jì)算設(shè)備上運(yùn)行的應(yīng)用的更新、操作系統(tǒng)更 新、固件更新、或這些更新的組合。在一些方面中,計(jì)算設(shè)備具有相同的或者相似的硬件。替 選地,計(jì)算設(shè)備可以具有不同的硬件。
[0049]在塊302a_c處,服務(wù)器106提供軟件更新可用于計(jì)算設(shè)備102a_c中一個(gè)或者多個(gè) 的指示。例如,服務(wù)器106可以將該指示提供至計(jì)算設(shè)備102a_c中任何一個(gè),并且接收設(shè)備 可以(例如,經(jīng)由不包括服務(wù)器106的局域網(wǎng))將該指示中繼至102a-n內(nèi)的所有剩余計(jì)算設(shè) 備。在另一示例中,服務(wù)器106可以將該指示提供至計(jì)算設(shè)備102d-n中任何一個(gè),并且接收 設(shè)備可以(例如,經(jīng)由局域網(wǎng))將該指示中繼至l〇2a-n內(nèi)的所有剩余計(jì)算設(shè)備。
[0050]除了對可用軟件更新的指示之外,可以針對軟件更新的初始接收確定計(jì)算設(shè)備的 子集。對于子集中有哪些計(jì)算設(shè)備的確定可以發(fā)生在服務(wù)器106處,或者可以發(fā)生在與計(jì)算 設(shè)備102a-n對應(yīng)的局域網(wǎng)內(nèi)。如上面提及的,對子集要包括哪些計(jì)算設(shè)備的識別可以基于 一致性算法(例如,Paxos-致性算法)。
[0051]在圖3的示例中,計(jì)算設(shè)備的子集包括三個(gè)設(shè)備,即102a-C。然而,不同數(shù)目的設(shè)備 (例如,兩個(gè)設(shè)備、五個(gè)設(shè)備)或者設(shè)備中的不同設(shè)備(例如,設(shè)備102b-d)可以被用于子集。 在示例方面中,設(shè)備的數(shù)目可以與預(yù)定百分比(例如,5%)的多個(gè)計(jì)算設(shè)備對應(yīng)。
[0052]服務(wù)器106,或者計(jì)算設(shè)備102a_n中任何一個(gè),可以設(shè)定用于指示哪些計(jì)算設(shè)備將 接收更新的參數(shù),并且在每個(gè)計(jì)算設(shè)備上運(yùn)行的程序可以生成一個(gè)值,該值可以落在或者 可以不落在由服務(wù)器106所設(shè)定的參數(shù)內(nèi)。此外,將軟件更新提供至計(jì)算設(shè)備可以與使軟件 更新可用于子集內(nèi)的計(jì)算設(shè)備(例如,102a-c)對應(yīng)。如此,在某種情況下,軟件更新可以可 用于服務(wù)器供所有計(jì)算設(shè)備(l〇2a-n)下載;然而,僅有那些計(jì)算設(shè)備(例如,102a-c)的子集 才被挑選為真正檢索該更新并且試圖升級。
[0053]在一些實(shí)施例中,服務(wù)器106,或者計(jì)算設(shè)備102a_n中的任意一個(gè),將足夠的信息 提供至計(jì)算設(shè)備,使得計(jì)算設(shè)備可以解譯更新部署說明,并且做出與計(jì)算設(shè)備的更新識別 號碼是否有資格檢索軟件更新有關(guān)的確定。在一些實(shí)施例中,服務(wù)器106將將軟件更新發(fā)送 至已經(jīng)落在所建立的參數(shù)內(nèi)的計(jì)算設(shè)備,所述計(jì)算設(shè)備將是將最終接收更新的計(jì)算設(shè)備中 的所有的子集。因此,在創(chuàng)建用于更新的接收或者釋放的受控環(huán)境方面,可以涉及到計(jì)算設(shè) 備(例如,102a-n)和服務(wù)器106兩者。
[0054]因此,在步驟304a_b處,在子集內(nèi)的計(jì)算設(shè)備中的一個(gè)或者多個(gè)(例如,102a_c中 的一個(gè)或者多個(gè))向服務(wù)器106請求軟件更新,并且服務(wù)器106接收該請求。在步驟306a-b 處,服務(wù)器106將軟件更新提供至請求軟件更新的計(jì)算設(shè)備。在示例方面中,服務(wù)器106將軟 件更新提供至計(jì)算設(shè)備l〇2a-c中的一個(gè)以上。在替選的方面中,服務(wù)器106將軟件更新提供 至計(jì)算設(shè)備l〇2a-c中的僅僅一個(gè),并且接收計(jì)算設(shè)備(例如,經(jīng)由局域網(wǎng))將軟件更新的副 本單獨(dú)地提供至l〇2a_c內(nèi)的剩余計(jì)算設(shè)備。
[0055]在步驟308處,計(jì)算設(shè)備102a_c中的一個(gè)或者多個(gè)加載軟件更新。如上面提及的, 軟件更新的安裝可能對計(jì)算設(shè)備引起問題。例如,在安裝軟件更新之后,計(jì)算設(shè)備可能會意 外地崩潰。在崩潰或者在遇到閾值數(shù)目的崩潰之后,計(jì)算設(shè)備可以返回到運(yùn)行軟件的先前 版本(例如,操作系統(tǒng)、硬件、或者應(yīng)用的先前版本)。在另一示例中,對軟件更新進(jìn)行安裝之 后,計(jì)算設(shè)備可能會遇到建立網(wǎng)絡(luò)連接方面的問題。在加載軟件更新時(shí),計(jì)算設(shè)備可能無法 連接至網(wǎng)絡(luò)(例如,無線網(wǎng)),和/或可能在長期的時(shí)間內(nèi)一直無法建立網(wǎng)絡(luò)連接。
[0056]因此,在步驟310a_b處,計(jì)算設(shè)備102a_c中的一個(gè)或者多個(gè)將軟件版本或者連接 性狀態(tài)提供至在子集之外的計(jì)算設(shè)備組(例如,計(jì)算設(shè)備l〇2d-n)。在這個(gè)階段中,基于由計(jì) 算設(shè)備102a-c所提供的軟件版本和/或連接性狀態(tài),計(jì)算設(shè)備102d-n中的一個(gè)或者多個(gè)可 以確定軟件更新是否有效。例如,由計(jì)算設(shè)備l〇2d-n進(jìn)行的這樣的確定與對上面參照圖2的 服務(wù)器106所描述的相似。
[0057]在步驟312a-b處,基于對軟件更新是否有效的確定,計(jì)算設(shè)備102d-n向計(jì)算設(shè)備 102a-n中的一個(gè)或者多個(gè)請求軟件更新或者禁止向計(jì)算設(shè)備102a-n中的一個(gè)或者多個(gè)請 求軟件更新。在步驟314a_b處,在對軟件更新的請求被接收的情況下,計(jì)算設(shè)備102a_c中的 一個(gè)或者多個(gè)將軟件更新提供至計(jì)算設(shè)備l〇2d-n。在圖3的示例中,計(jì)算設(shè)備102d-n本地 (例如,在包括設(shè)備102a-n但不包括服務(wù)器106的局域網(wǎng)內(nèi))接收更新。然而,如上面關(guān)于圖2 所提及的,計(jì)算設(shè)備102d-n可以(例如,基于計(jì)算設(shè)備102d-n中的一個(gè)或者多個(gè)所進(jìn)行的請 求)直接從服務(wù)器106接收軟件更新。在步驟316處,計(jì)算設(shè)備102d-n加載軟件更新(例如,軟 件更新已經(jīng)被確定為對計(jì)算設(shè)備102a-c有效)。
[0058]圖4圖示了將軟件更新提供至網(wǎng)絡(luò)(例如,LAN)內(nèi)的計(jì)算設(shè)備的另一示例過程。在 示例方面中,圖4的過程可以被視為與圖2的服務(wù)器側(cè)的步驟對應(yīng)。在開始塊402之后,在塊 404處,識別需要對軟件更新進(jìn)行安裝的多個(gè)計(jì)算設(shè)備的子集。
[0059] 子集可以與預(yù)定百分比的多個(gè)計(jì)算設(shè)備對應(yīng)。識別子集可以基于對多個(gè)計(jì)算設(shè)備 執(zhí)行標(biāo)準(zhǔn)的一致性算法。
[0060] 在塊406處,將軟件更新提供至用于安裝的子集內(nèi)的計(jì)算設(shè)備。在塊408處,在提供 軟件更新之后,為子集內(nèi)的計(jì)算設(shè)備中的至少一個(gè)計(jì)算設(shè)備獲取軟件版本或者連接性狀 態(tài)。獲得至少一個(gè)計(jì)算設(shè)備的軟件版本或者連接狀態(tài)可以是基于所述至少一個(gè)計(jì)算設(shè)備進(jìn) 行的廣播。
[0061] 在判定塊410處,基于所獲得的軟件版本或者連接性狀態(tài),確定軟件更新是否有 效。對軟件更新是否有效的確定可以包括:確定所述至少一個(gè)計(jì)算設(shè)備在預(yù)定時(shí)段之后是 否連接至網(wǎng)絡(luò)。如果連接了設(shè)備,那么可以確定軟件更新是有效的。如果未連接設(shè)備,那么 可以確定軟件更新是無效的。
[0062] 對軟件更新是否有效的確定還可以包括:確定所述至少一個(gè)計(jì)算設(shè)備在閾值時(shí)段 內(nèi)是否已經(jīng)連接至網(wǎng)絡(luò)。如果在閾值時(shí)段內(nèi)已經(jīng)連接了設(shè)備,那么可以確定軟件更新是有 效的。如果在閾值時(shí)段內(nèi)尚未連接設(shè)備,那么可以確定軟件更新是無效的。
[0063] 對軟件更新是否有效的確定還可以包括:確定在所述至少一個(gè)計(jì)算設(shè)備上運(yùn)行的 軟件版本是否與軟件更新一致。如果軟件版本一致,那么可以確定軟件更新是有效的。如果 軟件版本不一致,那么可以確定軟件更新是無效的。
[0064] 響應(yīng)于由所述至少一個(gè)計(jì)算設(shè)備所進(jìn)行的一次或者多次失敗的嘗試,所述至少一 個(gè)計(jì)算設(shè)備可以運(yùn)行不一致的軟件版本(例如,成功的先前版本),以利用軟件更新成功操 作。不一致的軟件版本可以與所述所述至少一個(gè)計(jì)算設(shè)備的第一分區(qū)對應(yīng),并且軟件更新 可以與所述所述至少一個(gè)計(jì)算設(shè)備的第二分區(qū)對應(yīng)。
[0065]如果在判定塊410處的回答為"是",那么在塊412處將軟件更新提供至多個(gè)計(jì)算設(shè) 備中的剩余計(jì)算設(shè)備。如果在判定塊410處的回答為"否",那么在塊414處,所述過程禁止將 軟件更新提供至多個(gè)(例如,未提供軟件更新)計(jì)算設(shè)備中的剩余計(jì)算設(shè)備。然后,所述過程 在結(jié)束塊416處結(jié)束。
[0066] 圖5圖示了在包括多多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)執(zhí)行軟件更新的示例過程。在示例方 面中,圖5的過程可以被視為與圖3的客戶端側(cè)(例如,計(jì)算設(shè)備102a-c中的任何)步驟對應(yīng)。 在開始塊502之后,多個(gè)計(jì)算設(shè)備中的第一計(jì)算設(shè)備接收軟件更新可用的指示,并且在塊 504處,將第一計(jì)算設(shè)備挑選為初始接收軟件更新。
[0067] 在塊506處,響應(yīng)于所接收到的指示,第一計(jì)算設(shè)備將向服務(wù)器發(fā)送對軟件更新的 請求。在塊508處,響應(yīng)于發(fā)送的請求,第一計(jì)算設(shè)備從服務(wù)器接收軟件更新。
[0068] 在塊510處,第一計(jì)算設(shè)備加載所接收到的軟件更新。在塊512處,基于對軟件更新 的加載,第一計(jì)算設(shè)備將軟件版本或者連接性狀態(tài)提供至多個(gè)計(jì)算設(shè)備中的第二計(jì)算設(shè) 備。第二計(jì)算設(shè)備未被挑選為初始接收軟件更新。
[0069] 第一計(jì)算設(shè)備可以在被挑選為初始接收軟件更新的計(jì)算設(shè)備的子集內(nèi)。第二計(jì)算 設(shè)備可以在未被挑選為初始接收軟件更新的計(jì)算設(shè)備組內(nèi)。
[0070] 在塊514處,響應(yīng)于所提供的軟件版本或者連接性狀態(tài),第一計(jì)算設(shè)備接收來自第 二計(jì)算設(shè)備的對軟件更新的請求。響應(yīng)于由第二計(jì)算設(shè)備對軟件更新有效的確定,可以執(zhí) 行對請求的接收,所述確定是基于軟件版本或者連接性狀態(tài)。在塊516處,響應(yīng)于接收到的 請求,第一計(jì)算設(shè)備將軟件更新發(fā)送至第二計(jì)算設(shè)備。
[0071] 在示例方面中,響應(yīng)于由第二計(jì)算設(shè)備對軟件更新無效的確定,不接收對軟件更 新的請求。所述無效性的確定是基于軟件版本或者連接性狀態(tài)。響應(yīng)于對軟件更新無效的 確定,第一計(jì)算設(shè)備可以禁止將軟件更新發(fā)送至第二計(jì)算設(shè)備。
[0072] 基于連接性狀態(tài)對軟件更新無效的確定可以與第一計(jì)算設(shè)備在預(yù)定時(shí)段之后未 連接至網(wǎng)絡(luò)對應(yīng)。替選地,或者此外,基于軟件版本對軟件更新無效的確定可以與在第一計(jì) 算設(shè)備上運(yùn)行的軟件版本與軟件更新不一致對應(yīng)。然后,所述過程在結(jié)束塊518處結(jié)束。
[0073] 圖6概念性地圖示了可以實(shí)現(xiàn)本主題技術(shù)的一些實(shí)施方式的示例電子系統(tǒng)。電子 系統(tǒng)600可以是計(jì)算機(jī)、電話、PDA、或者任何其它種類的電子設(shè)備。這樣的電子系統(tǒng)包括多 種類型的計(jì)算機(jī)可讀介質(zhì)、和用于各種其它類型的計(jì)算機(jī)可讀介質(zhì)的接口。電子系統(tǒng)600包 括:總線608、處理單元612、系統(tǒng)存儲器604、只讀存儲器(R0M)610、永久存儲設(shè)備602、輸入 設(shè)備接口 614、輸出設(shè)備接口 606、和網(wǎng)絡(luò)接口 616。
[0074]總線608共同表示可通信地連接電子系統(tǒng)600的眾多內(nèi)部設(shè)備的所有的系統(tǒng)、外 圍、和芯片集總線,。諸如,總線608可通信地將處理單元612與ROM 610、系統(tǒng)存儲器604、和 永久存儲設(shè)備602連接。
[0075]通過這些各種存儲器單元,處理單元612檢索需要執(zhí)行的指令和需要處理的數(shù)據(jù), 以便執(zhí)行本主題公開的過程。在不同實(shí)施方式中,處理單元可以是單個(gè)處理器或者多核處 理器。
[0076] ROM 610存儲處理單元612和電子系統(tǒng)的其它模塊所需的靜態(tài)數(shù)據(jù)和指令。另一方 面,永久存儲設(shè)備602是讀寫存儲器設(shè)備。該設(shè)備是即使當(dāng)電子系統(tǒng)600斷電時(shí)也能存儲指 令和數(shù)據(jù)的非易失性存儲器單元。本主題公開的一些實(shí)施方式使用大容量存儲設(shè)備(例如, 磁盤或者光盤及其對應(yīng)的磁盤驅(qū)動)作為永久存儲設(shè)備602。
[0077]其它實(shí)施方式使用可移除存儲設(shè)備(例如,軟盤、閃存驅(qū)動、及其對應(yīng)的磁盤驅(qū)動) 作為永久存儲設(shè)備602。類似于永久存儲設(shè)備602,系統(tǒng)存儲器604是讀寫存儲器設(shè)備。然而, 不同于存儲設(shè)備602,系統(tǒng)存儲604是易失性讀寫存儲器,諸如,隨機(jī)存取存儲器。系統(tǒng)存儲 器604存儲處理器在運(yùn)行時(shí)需要的指令和數(shù)據(jù)中的一些。在一些實(shí)施方式中,本主題公開的 過程存儲在系統(tǒng)存儲器604、永久存儲設(shè)備602、或者ROM 610中。例如,各種存儲器單元包括 用于提供軟件更新的指令。通過這些各種存儲器單元,處理單元612檢索需要執(zhí)行的指令和 需要處理的數(shù)據(jù),以便執(zhí)行一些實(shí)施方式的過程。
[0078]總線608也連接至輸入設(shè)備接口 614和輸出設(shè)備接口 606。輸入設(shè)備接口 614使用戶 能夠通信信息并且選擇命令至電子系統(tǒng)。與輸入設(shè)備接口 614-起使用的輸入設(shè)備包括:例 如,字母數(shù)字鍵盤和指示設(shè)備(也稱為"光標(biāo)控制設(shè)備")。輸出設(shè)備接口 606使能,例如,電子 系統(tǒng)600生成的圖像的顯示。與輸出設(shè)備接口 606-起使用的輸出設(shè)備包括:例如,打印機(jī)和 顯示器設(shè)備,例如,陰極射線管(CRT)或者液晶顯示器(LCD)。一些實(shí)施方式包括,例如,用作 輸入設(shè)備和輸出設(shè)備兩者的觸屏。
[0079] 最后,如圖6所示,總線608也通過網(wǎng)絡(luò)接口 616將電子系統(tǒng)600耦合至網(wǎng)絡(luò)(未示 出)。按照這樣的方式,計(jì)算機(jī)可以是計(jì)算機(jī)網(wǎng)絡(luò)的一部分(例如,局域網(wǎng)("LAN")、廣域網(wǎng) (WAN)、或者內(nèi)聯(lián)網(wǎng)、或者網(wǎng)絡(luò)的網(wǎng)絡(luò),例如互聯(lián)網(wǎng))。電子系統(tǒng)600的組件中的任何或者所有 都可以結(jié)合本主題公開來使用。
[0080] 上述的特征和應(yīng)用中的很多可以實(shí)現(xiàn)為軟件過程,該軟件過程被指定為在計(jì)算機(jī) 可讀存儲介質(zhì)(也稱計(jì)算機(jī)可讀介質(zhì))上記錄的指令的集合。當(dāng)這些指令由一個(gè)或者多個(gè)處 理單元(例如,一個(gè)或者多個(gè)處理器、處理器的核心、或者其它處理單元)執(zhí)行時(shí),這些指令 使處理單元執(zhí)行在指令中指示的動作。計(jì)算機(jī)可讀介質(zhì)的示例包括,但不限于,CD-ROM、閃 存驅(qū)動、RAM芯片、硬盤驅(qū)動、EPR0M,等等。計(jì)算機(jī)可讀介質(zhì)不包括無線傳送的或者通過有線 連接傳遞的載波和電子信號。
[0081] 在本說明書中,術(shù)語"軟件"意味著包括駐留在只讀存儲器中的固件或者存儲在磁 存儲中的應(yīng)用,該磁存儲設(shè)備可以被讀入存儲器中由處理器處理。而且,在一些實(shí)施方式 中,在保留本主題公開不同的軟件方面的同時(shí),本主題公開的多個(gè)軟件方面可以實(shí)現(xiàn)為更 大程序的子部分。在一些實(shí)施方式中,多個(gè)軟件方面也可以被實(shí)現(xiàn)為單獨(dú)的程序。最后,與 此處描述的軟件方面一起實(shí)現(xiàn)的單獨(dú)的程序的任何組合在本主題公開的范圍內(nèi)。在一些實(shí) 施方式中,當(dāng)將軟件程序安裝在一個(gè)或者多個(gè)電子系統(tǒng)上以操作時(shí),該軟件程序限定一個(gè) 或者多個(gè)具體的機(jī)器實(shí)施方式,該機(jī)器實(shí)施方式執(zhí)行并且進(jìn)行軟件程序的操作。
[0082] 計(jì)算機(jī)程序(也被稱為程序、軟件、軟件應(yīng)用、腳本、或者代碼)可以以任何形式的 編程語言寫入,包括編譯的或者解譯型語言、說明或過程語言,并且計(jì)算機(jī)程序可以以任何 形式部署,包括部署為獨(dú)立的程序或者部署為適合用在計(jì)算環(huán)境中的模塊、組件、子例程、 對象、或者其它單元。計(jì)算程序可以,但不需要,與文件系統(tǒng)中的文件對應(yīng)。程序可以存儲在 保存其它程序或者數(shù)據(jù)(例如,在標(biāo)記語言文檔中所存儲的一個(gè)或者多個(gè)腳本)的文件的一 部分中、專用于討論中的程序的單個(gè)文件中、或者在多個(gè)協(xié)調(diào)文件中(例如,存儲一個(gè)或者 多個(gè)模塊、子程序、或者代碼的部分的文件)。計(jì)算機(jī)程序可以部署以在一個(gè)計(jì)算機(jī)或者多 個(gè)計(jì)算機(jī)上執(zhí)行,所述多個(gè)計(jì)算機(jī)位于一個(gè)場所處或者跨多個(gè)場所分布并且通過通信網(wǎng)絡(luò) 相互連接。
[0083] 這些以上描述的功能可以被實(shí)現(xiàn)在數(shù)字電路系統(tǒng)中、或者實(shí)現(xiàn)在計(jì)算機(jī)軟件、固 件或者硬件中。可以使用一個(gè)或者多個(gè)計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn)該技術(shù)??删幊烫幚砥骱陀?jì) 算機(jī)可以包括在移動設(shè)備中或者被封裝成成移動設(shè)備??梢酝ㄟ^一個(gè)或者多個(gè)可編程處理 器并且通過一個(gè)或者多個(gè)可編程邏輯電路系統(tǒng),來執(zhí)行過程和邏輯流程。通用和專用計(jì)算 設(shè)備和存儲設(shè)備可以通過通信網(wǎng)絡(luò)相互連接。
[0084] -些實(shí)施方式包括電子組件,例如,在機(jī)器可讀介質(zhì)或者計(jì)算機(jī)可讀介質(zhì)中存儲 計(jì)算機(jī)程序指令的微處理器、存儲和存儲器(替選地被稱為計(jì)算機(jī)可讀存儲介質(zhì)、機(jī)器可讀 介質(zhì)、或者機(jī)器可讀存儲介質(zhì))。這樣的計(jì)算機(jī)可讀介質(zhì)的一些示例包括RAM、R0M、只讀光盤 (CD-ROM)、可記錄光壓縮盤(CD-R)、重寫壓縮(CD-RW)、只讀數(shù)字通用盤(例如,DVD-ROM、雙 層DVD-ROM )、多種可錄/可重寫DVD (例如,DVD-RAM、D VD-RW、DVD+RW等等)、閃速存儲器(例 如,SD卡、迷你 SD卡、微型SD卡)、磁性或者固態(tài)硬盤驅(qū)動、只讀并且可錄B_lu-R_ay?:光盤、超 密度光盤、任何其它光學(xué)或者磁性介質(zhì)、和軟盤。計(jì)算機(jī)可讀介質(zhì)可以存儲計(jì)算機(jī)程序,該 計(jì)算機(jī)程序由至少一個(gè)處理單元執(zhí)行并且包括用于執(zhí)行多種操作的指令集。計(jì)算機(jī)程序或 者計(jì)算機(jī)代碼的示例包括:例如,由編譯器產(chǎn)生的機(jī)器代碼、以及文件,該文件包括由計(jì)算 機(jī)、電子組件、或者使用解釋器的微處理器執(zhí)行的高級代碼。
[0085] 雖然上面的論述主要指執(zhí)行軟件的微處理器或者多核處理器,但是一些實(shí)施方式 通過一個(gè)或者多個(gè)集成電路來執(zhí)行,例如,專用集成電路(ASIC)或者現(xiàn)場可編程門陣列 (FPGA)。在一些實(shí)施方式中,這樣的集成電路執(zhí)行存儲在電路自身上的指令。
[0086] 在本說明書和本申請的任何權(quán)利要求項(xiàng)中使用的,術(shù)語"計(jì)算機(jī)"、"服務(wù)器"、"處 理器"、和"存儲器"都指電子的或者其它技術(shù)的設(shè)備。這些術(shù)語不包括人或者人群。為了說 明的目的,術(shù)語"顯示(display)"或者"正在顯示(displaying)"表示在電子設(shè)備上的顯示。 如在本說明書和本申請的任何權(quán)利要求項(xiàng)中的術(shù)語"計(jì)算機(jī)可讀介質(zhì)(computer readable medium)"和"計(jì)算機(jī)可讀介質(zhì)(computer readable media)"被完全限于以計(jì)算機(jī)可讀的形 式存儲信息的有形的、物理的對象。這些術(shù)語不包括任何無線信號、有線下載信號、和任何 其它瞬時(shí)信號。
[0087] 為了提供與用戶的交互,在本說明書中描述的主題的實(shí)施方式可以被實(shí)現(xiàn)在計(jì)算 機(jī)上,所述計(jì)算機(jī)具有用于向用戶顯示信息的顯示設(shè)備(例如,CRT(陰極射線管)或者LCD (液晶顯示器)監(jiān)視器)、以及用戶通過其可以將輸入提供至計(jì)算機(jī)的鍵盤和指示設(shè)備(例 如,鼠標(biāo)或者軌跡球)。其它種類的設(shè)備也可以用于提供與用戶的交互;例如,向用戶提供的 反饋可以是任何形式的感知反饋(例如視覺反饋、聽覺反饋或者觸覺反饋);以及來自用戶 的輸入可以通過任何形式接收,包括聲學(xué)輸入、語音輸入、或者觸覺輸入。此外,計(jì)算機(jī)可以 通過發(fā)送文檔至用戶使用的設(shè)備并且從用戶使用的設(shè)備接收文檔來與用戶交互,例如,響 應(yīng)于從web瀏覽器接收到的請求,通過將網(wǎng)頁發(fā)送至在用戶的客戶端設(shè)備上的web瀏覽器。
[0088] 在本說明書中描述的主題的實(shí)施例可以實(shí)現(xiàn)在計(jì)算系統(tǒng)中,該計(jì)算系統(tǒng)包括后端 組件(例如,作為數(shù)據(jù)服務(wù)器)、或者包括中間件組件(例如,應(yīng)用服務(wù)器)、或者包括前端組 件(例如,具有圖形用戶界面或者網(wǎng)絡(luò)瀏覽器的客戶端計(jì)算機(jī),通過其用戶可以與本說明書 中描述的主題的實(shí)施方式交互)、或者一個(gè)或多個(gè)這樣的后端組件、中間件組件、或者前端 組件的任何組合。系統(tǒng)的組件可由例如通信網(wǎng)絡(luò)的任何形式或者介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信來互 連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)("LAN")和廣域網(wǎng)("WAN")、互聯(lián)網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng))、和對 等網(wǎng)絡(luò)(例如,對等點(diǎn)對點(diǎn)網(wǎng)絡(luò))。
[0089] 計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器一般彼此遠(yuǎn)離開,并且通常 通過通信網(wǎng)絡(luò)交互。客戶端和服務(wù)器的關(guān)系通過在相應(yīng)的計(jì)算機(jī)上運(yùn)行的并且相互具有客 戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序產(chǎn)生。在一些實(shí)施例中,服務(wù)器將數(shù)據(jù)(例如,HTML頁面)傳 輸至客戶端設(shè)備(例如,為了顯示數(shù)據(jù)至并且接收來自與客戶端設(shè)備交互的用戶輸入)。在 客戶端設(shè)備處所生成的數(shù)據(jù)(例如,用戶交互的結(jié)果)可以從在服務(wù)器處的客戶端設(shè)備被接 收。
[0090] 應(yīng)該理解,在所公開的過程中的步驟的任何特定順序或者層級是示例辦法的圖 示。基于設(shè)計(jì)偏好,應(yīng)該理解,在過程中的步驟的具體順序或者層級可以被重新布置、或者 可以執(zhí)行所有圖示的步驟。一些步驟可以同時(shí)執(zhí)行。例如,在某些情況下,多任務(wù)處理和并 行處理可以是有優(yōu)勢的。此外,上面描述的實(shí)施例中的各種系統(tǒng)組件的分離不應(yīng)該被理解 為在所有實(shí)施例中要求這樣的分離,并且應(yīng)該理解,上述程序組件和系統(tǒng)通??梢砸黄鸨?集成在單個(gè)軟件產(chǎn)品中或者被封裝在多個(gè)軟件產(chǎn)品中。
[0091] 上述說明的提供是為了使本領(lǐng)域內(nèi)的任何技術(shù)人員能夠?qū)嵺`本文描述的各個(gè)方 面。對本領(lǐng)域內(nèi)的技術(shù)人員而言,這些方面的各種修改是很顯而易見的,并且本文限定的通 用原則也可以被應(yīng)用至其它方面。因此,本權(quán)利要求不旨在限于本文所示的方面,而是應(yīng)被 授予與權(quán)利要求的語言相一致的全部范圍,其中,除非特別如此聲明,否則對要素的單數(shù)形 式的引述并非旨在意味著"有且僅有一個(gè)",而是旨在意味著"一個(gè)或者多個(gè)"。除非特別聲 明,否則術(shù)語"一些"指一個(gè)或者多個(gè)。男性代詞(例如,他的)包括女性和中性(例如,她的和 它的),反之亦然。標(biāo)題和副標(biāo)題(如果有)的使用僅是為了方便,并不限制本主題公開。
[0092]諸如"方面"的短語不暗示這樣的方面對本主題技術(shù)是必要的,或者該方面適用于 本主題技術(shù)的所有配置。與方面相關(guān)的公開可以適用于所有配置、或者一個(gè)或者多個(gè)配置。 諸如"方面"的短語可以指一個(gè)或者多個(gè)方面,反之亦然。諸如"配置"的短語不暗示這樣的 配置對本主題技術(shù)是必要的,或者這樣的配置適用于本主題技術(shù)的所有配置。與配置相關(guān) 的公開可以適用于所有配置、或者一個(gè)或者多個(gè)配置。諸如"配置"的短語可以指一個(gè)或者 多個(gè)配置,反之亦然。
【主權(quán)項(xiàng)】
1. 一種在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新的計(jì)算機(jī)實(shí)現(xiàn)方法,所述方法包 括: 識別用于對所述軟件更新進(jìn)行安裝的所述多個(gè)計(jì)算設(shè)備的子集; 將所述軟件更新提供至在用于安裝的所述子集內(nèi)的所述計(jì)算設(shè)備; 在提供所述軟件更新之后,為在所述子集內(nèi)的所述計(jì)算設(shè)備中的至少一個(gè)計(jì)算設(shè)備獲 取軟件版本或者連接性狀態(tài);以及 基于所獲取的軟件版本或者連接性狀態(tài),確定所述軟件更新是無效的。2. 根據(jù)權(quán)利要求1所述的方法,所述方法進(jìn)一步包括: 響應(yīng)于所述確定,禁止將所述軟件更新提供至所述多個(gè)計(jì)算設(shè)備中的剩余計(jì)算設(shè)備。3. 根據(jù)權(quán)利要求1所述的方法,其中,基于所述連接性狀態(tài)確定所述軟件更新是無效的 包括:確定所述至少一個(gè)計(jì)算設(shè)備在預(yù)定時(shí)段之后未連接至所述網(wǎng)絡(luò)。4. 根據(jù)權(quán)利要求1所述的方法,其中,基于所述連接性狀態(tài)確定所述軟件更新是無效的 包括:確定所述至少一個(gè)計(jì)算設(shè)備在閾值時(shí)段內(nèi)從未連接至所述網(wǎng)絡(luò)。5. 根據(jù)權(quán)利要求1所述的方法,其中,獲取所述至少一個(gè)計(jì)算設(shè)備的所述軟件版本或者 所述連接性狀態(tài)是基于通過所述至少一個(gè)計(jì)算設(shè)備進(jìn)行的廣播。6. 根據(jù)權(quán)利要求1所述方法,其中,基于所述軟件版本確定所述軟件更新是無效的包 括:確定運(yùn)行在所述至少一個(gè)計(jì)算設(shè)備上的所述軟件版本與所述軟件更新不一致。7. 根據(jù)權(quán)利要求6所述的方法,其中,響應(yīng)于所述至少一個(gè)計(jì)算設(shè)備進(jìn)行的一次或者多 次失敗的嘗試,所述至少一個(gè)計(jì)算設(shè)備運(yùn)行所述不一致的軟件版本以利用所述軟件更新成 功操作。8. 根據(jù)權(quán)利要求6所述的方法,其中,所述不一致的軟件版本與所述至少一個(gè)計(jì)算設(shè)備 的第一分區(qū)對應(yīng),并且所述軟件更新與所述至少一個(gè)計(jì)算設(shè)備的第二分區(qū)對應(yīng)。9. 根據(jù)權(quán)利要求1所述的方法,其中,所述子集與預(yù)定百分比的所述多個(gè)計(jì)算設(shè)備對 應(yīng)。10. 根據(jù)權(quán)利要求1所述的方法,其中,識別所述子集是基于對所述多個(gè)計(jì)算設(shè)備執(zhí)行 標(biāo)準(zhǔn)的一致性算法。11. 根據(jù)權(quán)利要求1所述的方法,其中,所述網(wǎng)絡(luò)是局域網(wǎng)LAN。12. -種用于在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新的系統(tǒng),所述系統(tǒng)包括: 一個(gè)或者多個(gè)處理器;以及 包括存儲在其中的指令的機(jī)器可讀介質(zhì),所述指令當(dāng)由所述處理器執(zhí)行時(shí),使得所述 處理器執(zhí)行操作,所述操作包括: 識別用于對所述軟件更新進(jìn)行安裝的所述多個(gè)計(jì)算設(shè)備的子集; 將所述軟件更新提供至在用于安裝的所述子集內(nèi)的所述計(jì)算設(shè)備; 在提供所述軟件更新之后,為在所述子集內(nèi)的所述計(jì)算設(shè)備中的至少一個(gè)獲取軟件版 本或者連接性狀態(tài); 基于所獲取的軟件版本或者連接性狀態(tài),確定所述軟件更新是否有效;以及, 在確定了所述軟件更新是無效的情況下,禁止將所述軟件更新提供至所述多個(gè)計(jì)算設(shè) 備中的剩余計(jì)算設(shè)備。13. -種在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)執(zhí)行軟件更新的計(jì)算機(jī)實(shí)現(xiàn)方法,所述方法包 括: 通過所述多個(gè)計(jì)算設(shè)備中的第一計(jì)算設(shè)備,接收所述軟件更新是可用的并且所述第一 計(jì)算設(shè)備被挑選為初始接收所述軟件更新的指示; 響應(yīng)于所接收到的指示,向服務(wù)器發(fā)送對所述軟件更新的請求; 響應(yīng)于所發(fā)送的請求,接收來自所述服務(wù)器的所述軟件更新; 加載所接收到的軟件更新; 基于對所述軟件更新的加載,向所述多個(gè)計(jì)算設(shè)備中的第二計(jì)算設(shè)備提供軟件版本或 者連接性狀態(tài),其中,所述第二計(jì)算設(shè)備未被挑選為初始接收所述軟件更新; 響應(yīng)于所提供的軟件版本或者連接性狀態(tài),接收來自所述第二計(jì)算設(shè)備的對所述軟件 更新的請求;以及 響應(yīng)于所接收到的請求,將所述軟件更新發(fā)送至所述第二計(jì)算設(shè)備。14. 根據(jù)權(quán)利要求13所述的方法,其中,接收所述請求是響應(yīng)于所述第二計(jì)算設(shè)備對所 述軟件更新是有效的確定而被執(zhí)行的,所述確定是基于所述軟件版本或者連接性狀態(tài)。15. 根據(jù)權(quán)利要求14所述的方法,其中,響應(yīng)于所述第二計(jì)算設(shè)備對所述軟件更新是無 效的確定,對所述軟件更新的所述請求未被接收,所述確定是基于所述軟件版本或者連接 性狀態(tài)。16. 根據(jù)權(quán)利要求15所述的方法,進(jìn)一步包括:響應(yīng)于對所述軟件更新是無效的確定, 禁止將所述軟件更新發(fā)送至所述第二計(jì)算設(shè)備。17. 根據(jù)權(quán)利要求15所述的方法,其中,基于所述連接性狀態(tài)對所述軟件更新是無效的 確定與所述第一計(jì)算設(shè)備在預(yù)定時(shí)段之后未連接至所述網(wǎng)絡(luò)對應(yīng)。18. 根據(jù)權(quán)利要求15所述方法,其中,基于所述軟件版本對所述軟件更新是無效的確定 與運(yùn)行在所述第一計(jì)算設(shè)備上的所述軟件版本和所述軟件更新不一致對應(yīng)。19. 根據(jù)權(quán)利要求13所述的方法,其中,所述第一計(jì)算設(shè)備是在被挑選為初始接收所述 軟件更新的計(jì)算設(shè)備的子集內(nèi),以及其中,所述第二計(jì)算設(shè)備是在未被挑選為初始接收所 述軟件更新的計(jì)算設(shè)備的組內(nèi)。20. -種用于在包括多個(gè)計(jì)算設(shè)備的網(wǎng)絡(luò)內(nèi)執(zhí)行軟件更新的系統(tǒng),所述系統(tǒng)包括: 一個(gè)或者多個(gè)處理器;以及 包括存儲在其中的指令的機(jī)器可讀介質(zhì),所述指令當(dāng)由所述處理器執(zhí)行時(shí),使得所述 處理器執(zhí)行操作,所述操作包括: 通過所述多個(gè)計(jì)算設(shè)備中的第一計(jì)算設(shè)備,接收所述軟件更新是可用的指示; 響應(yīng)于所接收到的指示,向服務(wù)器發(fā)送對所述軟件更新的請求; 響應(yīng)于所發(fā)送的請求,接收來自所述服務(wù)器的所述軟件更新; 加載所接收到的軟件更新; 基于對所述軟件更新的加載,向所述多個(gè)計(jì)算設(shè)備中的第二計(jì)算設(shè)備提供軟件版本或 者連接性狀態(tài); 響應(yīng)于所提供的軟件版本或者連接性狀態(tài),接收來自所述第二計(jì)算設(shè)備的對所述軟件 更新的請求;以及, 響應(yīng)于所接收到的請求,將所述軟件更新發(fā)送至所述第二計(jì)算設(shè)備, 其中,所述第一計(jì)算設(shè)備是在被挑選為初始接收所述軟件更新的計(jì)算設(shè)備的子集內(nèi), 以及其中,所述第二計(jì)算設(shè)備是在未被挑選為初始接收所述軟件更新的計(jì)算設(shè)備的組內(nèi)。
【文檔編號】G06F9/445GK105849696SQ201480070718
【公開日】2016年8月10日
【申請日】2014年12月17日
【發(fā)明人】瑞安·凱恩斯, 保羅·斯圖爾特
【申請人】谷歌公司