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