国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      為相同網(wǎng)絡(luò)上的計算設(shè)備提供軟件更新的制作方法

      文檔序號:10494368閱讀:235來源:國知局
      為相同網(wǎng)絡(luò)上的計算設(shè)備提供軟件更新的制作方法
      【專利摘要】一種用于在包括多個計算設(shè)備的網(wǎng)絡(luò)內(nèi)提供軟件更新的系統(tǒng)和機器實現(xiàn)方法。識別用于對所述軟件更新進行安裝的所述多個計算設(shè)備的子集。將所述軟件更新提供至在用于安裝的所述子集內(nèi)的所述計算設(shè)備。在提供所述軟件更新之后,為在所述子集內(nèi)的所述計算設(shè)備中的至少一個計算設(shè)備獲取軟件版本或者連接性狀態(tài)。基于所述獲取的軟件版本或者連接性狀態(tài),確定所述軟件更新是無效的。
      【專利說明】為相同網(wǎng)絡(luò)上的計算設(shè)備提供軟件更新
      【背景技術(shù)】
      [0001] 本公開大體上涉及軟件更新,并且具體地,涉及對網(wǎng)絡(luò)內(nèi)的計算設(shè)備提供軟件更 新。
      [0002] 對網(wǎng)絡(luò)(例如,局域網(wǎng)(LAN))內(nèi)的計算設(shè)備部署軟件更新可能會造成問題,這是因 為在安裝這樣的更新時可能引入軟件錯誤或者引起其它問題。因此,需要避免對網(wǎng)絡(luò)內(nèi)的 多個計算設(shè)備部署無效的軟件更新。

      【發(fā)明內(nèi)容】

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