專利名稱:用于分發(fā)軟件的更新分發(fā)系統(tǒng)的體系結(jié)構(gòu)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件和計(jì)算機(jī)網(wǎng)絡(luò),尤其涉及一種用于分發(fā)軟件更新的更新分發(fā)系統(tǒng)的體系結(jié)構(gòu)和方法。
背景技術(shù):
幾乎所有可購買的軟件產(chǎn)品都要經(jīng)受連續(xù)不斷的修訂過程以修復(fù)或更新軟件的特征。軟件產(chǎn)品的每一修訂經(jīng)常要求添加新文件、用較新的修訂替換現(xiàn)有文件、刪除廢棄文件或這些行動的各種組合。替換軟件產(chǎn)品的較舊的文件、添加新文件、刪除廢棄文件、通過添加和/或刪除功能改變軟件產(chǎn)品的配置和行為的這一過程將在下文被稱為“更新產(chǎn)品”,并且包括更新產(chǎn)品中使用的二進(jìn)制文件、數(shù)據(jù)文件、更新指令、元數(shù)據(jù)等的數(shù)據(jù)集合在下文被較簡單地稱為“更新”。
一旦軟件提供商創(chuàng)建了軟件產(chǎn)品的更新,以解決問題、增強(qiáng)安全性或添加新特征,則軟件提供商將希望令該更新對其顧客群廣泛地可用。通常,如當(dāng)更新針對糾正產(chǎn)品中的瑕疵或解決嚴(yán)重的安全問題時(shí),軟件提供商將希望更新被盡可能快地安裝到顧客的計(jì)算機(jī)上。實(shí)際上,大多數(shù)軟件提供商具有將軟件更新盡可能快且無麻煩地分發(fā)到他們的顧客的商業(yè)動機(jī)。
計(jì)算機(jī)行業(yè)在連接到網(wǎng)絡(luò),尤其是因特網(wǎng)的計(jì)算機(jī)的數(shù)量上經(jīng)歷了爆發(fā)性的增長。由于這一爆發(fā)性的增長,并由于通過對因特網(wǎng)的連接可用的通信能力,因特網(wǎng)已經(jīng)變?yōu)檐浖峁┥逃糜谙蚱漕櫩头职l(fā)更新的重要且完整的渠道。實(shí)際上,因特網(wǎng)已經(jīng)變成許多軟件提供商用于向其顧客提供軟件更新的主要分發(fā)渠道。軟件提供商通常最感興趣的是通過因特網(wǎng)分發(fā)軟件更新,因?yàn)橥ㄟ^因特網(wǎng)的電子更新分發(fā)減少了其總成本,并使顧客在軟件更新一旦可用時(shí)就能夠獲得它們。這些軟件更新越來越頻繁地通過因特網(wǎng)自動執(zhí)行,而無需用戶干預(yù)。
盡管因特網(wǎng)現(xiàn)在常用作從軟件提供商分發(fā)軟件更新的渠道,然而經(jīng)常會出現(xiàn)一些問題。兩個(gè)這樣的問題包括(1)涉及更新分發(fā)架構(gòu)/資源的效率,以及(2)對軟件更新的分發(fā)和安裝的管理控制。
對于分發(fā)資源的效率,網(wǎng)絡(luò),包括因特網(wǎng),僅擁有有限量的通信資源,這通常被稱為帶寬。有限量的通信帶寬通常導(dǎo)致瓶頸,尤其是對于流行軟件產(chǎn)品的軟件更新,如微軟公司的Windows家族操作系統(tǒng)和相關(guān)的生產(chǎn)產(chǎn)品。即使軟件更新在遍及因特網(wǎng)分布的多個(gè)下載位置上可用,也會存在這類瓶頸。出現(xiàn)這類瓶頸的一個(gè)原因是因特網(wǎng)上可用的非結(jié)構(gòu)化訪問模型。例如,如果計(jì)算機(jī)A處的第一用戶請求對軟件產(chǎn)品的最新下載,該下載通過第一用戶的獨(dú)立服務(wù)提供商(ISP)。此外,該請求作為單個(gè)的、個(gè)別的訪問來處理,這意味著該請求獨(dú)立于,且不相關(guān)于任何其它網(wǎng)絡(luò)話務(wù)和/或請求來處理。由此,如果恰巧具有相同ISP的計(jì)算機(jī)B處的第二用戶請求與第一用戶相同的下載,則來自第二用戶的請求也被作為單個(gè)的、個(gè)別的訪問來處理。在這一示例中,同一下載將通過同一架構(gòu)發(fā)送兩次,因?yàn)槊恳徽埱蟊粏为?dú)地處理。很明顯,如果用戶數(shù)量有相當(dāng)大的增加,有限的通信帶寬將變?yōu)槠款i。在這一相當(dāng)常見的示例中,如果下載在本地位置上高速緩存,并且每一用戶請求從本地高速緩存中得到滿足,則將會更有效。
對于分發(fā)的控制,許多組織,尤其是大型組織,具有合法的理由來控制更新向其計(jì)算機(jī)的分發(fā)。例如,不幸的是,某些更新具有或引入“破壞”軟件產(chǎn)品的特征的瑕疵,通常被稱為程序錯(cuò)誤。這些被破壞的特征可能是不重要的,但是它們過于頻繁地弄亂企業(yè)的對任務(wù)關(guān)鍵的特征。可選地,如果移除了對任務(wù)關(guān)鍵的特征,或者其行為實(shí)際上由特定的軟件更新改變了,它們可被“破壞”。由于企業(yè)無法負(fù)擔(dān)丟失其對任務(wù)關(guān)鍵的特征,負(fù)責(zé)的企業(yè)在將更新發(fā)行到其剩余的計(jì)算機(jī)之前,將在某一段時(shí)間內(nèi)在受控的環(huán)境中首先評估并測試每一軟件更新。這一評估時(shí)間段準(zhǔn)許組織確認(rèn)更新是否會對任務(wù)關(guān)鍵的特征產(chǎn)生不利的影響。僅在令人滿意地確定更新將不會貶損任務(wù)關(guān)鍵特征之后,才準(zhǔn)許該更新被分發(fā)到組織的其它計(jì)算機(jī)。很明顯,大多數(shù)組織必須行使對其計(jì)算機(jī)上的軟件更新的安裝的控制。
企業(yè)或組織經(jīng)常需要控制軟件更新的分發(fā)的另一原因是確保組織中計(jì)算機(jī)之間的一致性。信息服務(wù)部門具有所有計(jì)算機(jī)可在其上操作的標(biāo)準(zhǔn)化的目標(biāo)平臺是十分重要的,不論它是用于文字處理程序還是操作系統(tǒng)。如果沒有標(biāo)準(zhǔn),軟件和計(jì)算機(jī)維護(hù)可能會不必要地復(fù)雜和困難。
本地控制重要的又一原因是用于記賬目的。在大型組織中,個(gè)別地在計(jì)算機(jī)上安裝軟件,或?qū)M織中的每一計(jì)算機(jī)個(gè)別地維護(hù)特定軟件產(chǎn)品的許可證通常是低效的。相反,單個(gè)場地許可證(site license)準(zhǔn)許組織在眾多計(jì)算機(jī)上運(yùn)行一個(gè)軟件產(chǎn)品。由此,可要求組織報(bào)告在該場地許可證下運(yùn)行產(chǎn)品的計(jì)算機(jī)的數(shù)量,或組織需限制在場地許可證下運(yùn)行產(chǎn)品的計(jì)算機(jī)的數(shù)量。所有這些原因經(jīng)常要求對軟件更新分發(fā)的本地控制。
鑒于上述涉及軟件更新分發(fā)的各種問題,需要一種用于提供對軟件更新的分發(fā)的控制,以及提高其分發(fā)效率的可擴(kuò)充軟件更新分發(fā)體系結(jié)構(gòu)。本發(fā)明解決了現(xiàn)有技術(shù)中這些和其它問題。
發(fā)明內(nèi)容
依照本發(fā)明,提出了一種用于通過通信網(wǎng)絡(luò)分發(fā)軟件更新的軟件更新分發(fā)系統(tǒng)。該軟件更新分發(fā)系統(tǒng)包括一根更新服務(wù)節(jié)點(diǎn),以及至少一個(gè)子更新服務(wù)節(jié)點(diǎn)。依照本發(fā)明的各方面,根更新服務(wù)節(jié)點(diǎn)和至少一個(gè)子更新服務(wù)節(jié)點(diǎn)用分級的方式來組織。根更新服務(wù)節(jié)點(diǎn)是至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的父更新服務(wù)節(jié)點(diǎn)。除根更新服務(wù)節(jié)點(diǎn)之外,每一更新服務(wù)節(jié)點(diǎn)具有一父更新服務(wù)節(jié)點(diǎn)。每一子更新服務(wù)節(jié)點(diǎn)也可以是該軟件更新分發(fā)系統(tǒng)層次中至少一個(gè)其它更新服務(wù)節(jié)點(diǎn)的父節(jié)點(diǎn)。另外,根更新服務(wù)節(jié)點(diǎn)從軟件提供商處獲取軟件更新。至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的每一個(gè)從其父更新服務(wù)節(jié)點(diǎn)處獲取該軟件更新。
依照本發(fā)明的其它方面,提出了用于向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新的更新服務(wù)節(jié)點(diǎn)和子更新服務(wù)節(jié)點(diǎn)。更新服務(wù)節(jié)點(diǎn)包括用于儲存軟件更新的更新存儲。更新服務(wù)節(jié)點(diǎn)也包括一web服務(wù)接口,更新服務(wù)節(jié)點(diǎn)通過其從其父更新服務(wù)節(jié)點(diǎn)處獲取軟件更新,并且更新服務(wù)節(jié)點(diǎn)通過其向子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新。更新服務(wù)節(jié)點(diǎn)還包括一管理應(yīng)用編程接口(API),使用管理用戶界面的管理員通過其建立用于向子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的規(guī)則。更新服務(wù)節(jié)點(diǎn)還包括一子更新模塊,用于依照所建立的規(guī)則確定哪些軟件更新可用于分發(fā)到子更新服務(wù)節(jié)點(diǎn)。
依照本發(fā)明的另外一些方面,提出了一種軟件更新系統(tǒng)中子更新服務(wù)節(jié)點(diǎn)用于從其父更新服務(wù)節(jié)點(diǎn)獲取軟件更新的方法。該子更新服務(wù)節(jié)點(diǎn)從其父更新服務(wù)節(jié)點(diǎn)處獲取軟件產(chǎn)品列表。該軟件產(chǎn)品列表標(biāo)識父更新服務(wù)節(jié)點(diǎn)為其分發(fā)軟件更新的那些軟件產(chǎn)品。子更新服務(wù)節(jié)點(diǎn)選擇軟件更新所搜尋的軟件產(chǎn)品。子更新服務(wù)節(jié)點(diǎn)然后向標(biāo)識所搜尋更新的那些軟件產(chǎn)品的父更新服務(wù)節(jié)點(diǎn)提交請求。作為響應(yīng),子更新服務(wù)節(jié)點(diǎn)接收標(biāo)識對子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的軟件更新的更新列表。子更新服務(wù)節(jié)點(diǎn)然后從父更新服務(wù)節(jié)點(diǎn)處獲取該軟件更新列表中每一軟件更新。
依照本發(fā)明的還有一些方面,提出了一種在父更新服務(wù)節(jié)點(diǎn)上執(zhí)行的、用于向子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的方法。從子更新服務(wù)節(jié)點(diǎn)接收請求軟件更新目錄的請求。向子更新服務(wù)節(jié)點(diǎn)返回標(biāo)識父更新服務(wù)節(jié)點(diǎn)向其分發(fā)軟件更新的軟件產(chǎn)品的軟件更新目錄。然后接收對所選擇的軟件產(chǎn)品的軟件更新列表的請求。作為響應(yīng),父更新服務(wù)節(jié)點(diǎn)確定所選擇的軟件產(chǎn)品的任何軟件更新是否可用于子更新服務(wù)節(jié)點(diǎn)。向子更新服務(wù)節(jié)點(diǎn)返回標(biāo)識被確定為可用于子更新服務(wù)節(jié)點(diǎn)的所選擇的軟件產(chǎn)品的那些軟件更新的更新列表。該更新列表依照一唯一的更新標(biāo)識符標(biāo)識了可用的軟件更新。接收請求對應(yīng)于更新列表中標(biāo)識的可用軟件更新的元數(shù)據(jù)的更新請求,該更新請求標(biāo)按其唯一標(biāo)識符標(biāo)識了可用軟件更新。作為響應(yīng),向客戶機(jī)更新服務(wù)節(jié)點(diǎn)返回更新元數(shù)據(jù)。更新元數(shù)據(jù)包括對應(yīng)于軟件更新的信息,包括用于獲取對應(yīng)的更新負(fù)載的參考。
當(dāng)結(jié)合附圖閱讀以下詳細(xì)描述時(shí),可以更容易且更好地理解本發(fā)明的上述方面和許多附加的優(yōu)點(diǎn),附圖中圖1是依照本發(fā)明的各方面形成的示例性更新分發(fā)系統(tǒng)的圖示;圖2所示是依照本發(fā)明的各方面形成的更新服務(wù)節(jié)點(diǎn)的示例性邏輯組件的框圖;圖3所示是依照本發(fā)明的各方面形成的根更新服務(wù)節(jié)點(diǎn)的示例性邏輯組件的框圖;圖4所示是依照本發(fā)明的各方面,當(dāng)從父更新服務(wù)節(jié)點(diǎn)向子更新服務(wù)節(jié)點(diǎn)提供軟件更新時(shí),父更新服務(wù)節(jié)點(diǎn)和子更新服務(wù)節(jié)點(diǎn)之間的示例性交換的框圖;圖5所示是在子更新服務(wù)節(jié)點(diǎn)上執(zhí)行的周期性地從其父更新服務(wù)節(jié)點(diǎn)處獲取更新的示例性例程的流程圖;圖6是適用于在圖5的示例性例程的用于從父更新服務(wù)節(jié)點(diǎn)處獲取更新目錄的示例性子例程的流程圖;圖7是適用于圖5的示例性例程的用于從父更新服務(wù)節(jié)點(diǎn)處獲取軟件更新的示例性子例程的流程圖;以及圖8是用于處理來自子更新服務(wù)節(jié)點(diǎn)的更新請求的示例性例程的流程圖。
具體實(shí)施例方式
依照本發(fā)明的各方面,提出了一種以分層方式組織的、用于分發(fā)軟件更新的更新分發(fā)系統(tǒng)。為本發(fā)明的目的,如上所述,軟件更新可涉及替換或刪除較舊和/或廢棄的文件、添加另外的文件、改變軟件產(chǎn)品的配置等等。另外,盡管未特別地針對技術(shù)和文字意義上的軟件產(chǎn)品的軟件更新,然而本發(fā)明的各方面可有利地用于分發(fā)軟件產(chǎn)品。因此,盡管以下描述是按照在更新分發(fā)系統(tǒng)中分發(fā)軟件更新來作出的,但它僅為說明性的目的,并且不應(yīng)當(dāng)被解釋為局限本發(fā)明。
圖1是依照本發(fā)明的各方面形成的示例性更新分發(fā)系統(tǒng)100的圖示。依照本發(fā)明,在諸如所示的更新分發(fā)系統(tǒng)100的更新分發(fā)系統(tǒng)的“頂部”的是一根更新服務(wù)節(jié)點(diǎn)102。諸如軟件提供商110的軟件提供商通過向根更新服務(wù)節(jié)點(diǎn)102提交更新,經(jīng)由更新分發(fā)系統(tǒng)100分發(fā)其軟件更新。依照本發(fā)明的各方面,諸如軟件提供商110的軟件提供商可通過網(wǎng)絡(luò),如因特網(wǎng)108向根更新服務(wù)節(jié)點(diǎn)102提交其軟件更新。
諸如示例性更新分發(fā)系統(tǒng)100的分層更新分發(fā)系統(tǒng)可能包括除根更新服務(wù)節(jié)點(diǎn)102之外的至少一個(gè)其它更新服務(wù)節(jié)點(diǎn)。如圖1所示,該示例性更新分發(fā)系統(tǒng)100包括根更新服務(wù)節(jié)點(diǎn)102和兩個(gè)額外的更新服務(wù)節(jié)點(diǎn)更新服務(wù)節(jié)點(diǎn)104和更新服務(wù)節(jié)點(diǎn)106。依照本發(fā)明,每一分層更新分發(fā)系統(tǒng)在根更新服務(wù)節(jié)點(diǎn)102下以樹形結(jié)構(gòu)來組織。換言之,更新分發(fā)系統(tǒng)中的每一更新服務(wù)節(jié)點(diǎn)具有零個(gè)或多個(gè)子更新服務(wù)節(jié)點(diǎn)。由此,盡管示例性更新分發(fā)系統(tǒng)100示出每一父更新服務(wù)節(jié)點(diǎn)(即,根更新服務(wù)節(jié)點(diǎn)102和更新服務(wù)節(jié)點(diǎn)104)僅有一個(gè)子節(jié)點(diǎn),然而這僅為說明性目的,并且不應(yīng)當(dāng)被解釋為局限本發(fā)明。此外,依照本發(fā)明的一個(gè)實(shí)施例,除根更新服務(wù)節(jié)點(diǎn)102之外,更新分發(fā)系統(tǒng)中的每一更新服務(wù)節(jié)點(diǎn)具有一個(gè)父更新服務(wù)節(jié)點(diǎn)。因此,如圖1所示,更新服務(wù)節(jié)點(diǎn)104是根更新服務(wù)節(jié)點(diǎn)102的子節(jié)點(diǎn),而更新服務(wù)節(jié)點(diǎn)106是更新服務(wù)節(jié)點(diǎn)104的子節(jié)點(diǎn)。在一個(gè)可選實(shí)施例中,子更新服務(wù)節(jié)點(diǎn)可從多個(gè)父更新服務(wù)節(jié)點(diǎn)(未示出)處接收更新。如可以見到的,除根更新服務(wù)節(jié)點(diǎn)102之外,每一更新服務(wù)節(jié)點(diǎn)既可以是子更新服務(wù)節(jié)點(diǎn),也可以是父更新服務(wù)節(jié)點(diǎn)。
如示例性更新分發(fā)系統(tǒng)100中所示的,根更新服務(wù)節(jié)點(diǎn)102通過因特網(wǎng)108與更新服務(wù)節(jié)點(diǎn)104通信。然而,應(yīng)當(dāng)理解,這僅為說明性的,并且不應(yīng)當(dāng)被解釋為局限本發(fā)明。更新分發(fā)系統(tǒng)中的每一更新服務(wù)節(jié)點(diǎn)只需能夠通過某一通信網(wǎng)絡(luò)與其父和/或子節(jié)點(diǎn)通信。由此,盡管更新服務(wù)節(jié)點(diǎn)104通過因特網(wǎng)108與其父節(jié)點(diǎn)一根更新服務(wù)節(jié)點(diǎn)102通信,它可選地可通過局域網(wǎng)124與其子節(jié)點(diǎn),如更新服務(wù)節(jié)點(diǎn)106通信。
同樣在圖1中示出的,更新服務(wù)節(jié)點(diǎn)106駐留在局域網(wǎng)124的子網(wǎng)126中。作為一個(gè)示例,局域網(wǎng)124可對應(yīng)于該組織的通用企業(yè)網(wǎng)絡(luò),并且更新服務(wù)節(jié)點(diǎn)104表示企業(yè)通過其對父節(jié)點(diǎn)一根更新服務(wù)節(jié)點(diǎn)102的連接鏈接到更新分發(fā)系統(tǒng)100。此外,子網(wǎng)126可對應(yīng)于企業(yè)網(wǎng)絡(luò)內(nèi)可標(biāo)識的計(jì)算機(jī)組,如測試/評估組、遠(yuǎn)程定位辦公室或任務(wù)關(guān)鍵組。如下文將更詳細(xì)地描述的,依照本發(fā)明的各方面,更新服務(wù)節(jié)點(diǎn)104上的管理員能夠控制對更新服務(wù)節(jié)點(diǎn)106的更新分發(fā),并最終控制對客戶機(jī)的更新分發(fā)。
應(yīng)當(dāng)理解,每一更新服務(wù)節(jié)點(diǎn),包括根更新服務(wù)節(jié)點(diǎn)102和更新服務(wù)節(jié)點(diǎn)104和106,被配置成向子更新服務(wù)節(jié)點(diǎn)和客戶機(jī)計(jì)算機(jī)兩者分發(fā)軟件更新。如圖1所示,示例性更新分發(fā)系統(tǒng)100包括客戶機(jī)計(jì)算機(jī)112-122。每一更新服務(wù)節(jié)點(diǎn),包括根更新服務(wù)節(jié)點(diǎn)102,依照本地配置信息向子更新服務(wù)節(jié)點(diǎn)和客戶機(jī)計(jì)算機(jī)分發(fā)更新。依照一個(gè)實(shí)施例,管理員定義組,并將更新分發(fā)規(guī)則與那些組相關(guān)聯(lián)。每一更新服務(wù)節(jié)點(diǎn)具有至少一個(gè)分發(fā)組。
作為示出更新分發(fā)系統(tǒng)如何操作的一個(gè)示例,假定局域網(wǎng)124對應(yīng)于企業(yè)組織的企業(yè)網(wǎng)絡(luò)。依照本發(fā)明的一個(gè)實(shí)施例,更新服務(wù)節(jié)點(diǎn)104的管理員可定義企業(yè)網(wǎng)絡(luò)124的多個(gè)分發(fā)組,包括評估組,它對應(yīng)于包括更新服務(wù)節(jié)點(diǎn)106和客戶機(jī)計(jì)算機(jī)120和122的子網(wǎng)126,用于評估對通用企業(yè)網(wǎng)絡(luò)124的更新的適合性;以及通用企業(yè)組,包括更新服務(wù)節(jié)點(diǎn)104和客戶機(jī)計(jì)算機(jī)114-118。
對于評估組,管理員包括更新服務(wù)節(jié)點(diǎn)106作為成員,并將規(guī)則與該組相關(guān)聯(lián),使得一旦更新變得可用,它們就立即被分發(fā)到評估組的成員??蛇x地,對于通用企業(yè)組,管理員添加客戶機(jī)計(jì)算機(jī)114-118,并關(guān)聯(lián)規(guī)則,使得如果又管理員特別地授權(quán),更新僅被分發(fā)到通用企業(yè)組的成員。也假定子更新服務(wù)節(jié)點(diǎn)106的管理員創(chuàng)建默認(rèn)組,它由評估子網(wǎng)126中的客戶機(jī)計(jì)算機(jī)120和122構(gòu)成,可向其立即分發(fā)任何新的軟件更新。
繼續(xù)上述示例,軟件提供商110向根更新服務(wù)節(jié)點(diǎn)102提交軟件更新。依照在根更新服務(wù)節(jié)點(diǎn)102處建立的規(guī)則,更新最終被分發(fā)到企業(yè)更新服務(wù)節(jié)點(diǎn)104。在接收更新之后,其每一個(gè)的規(guī)則由管理員建立,企業(yè)更新服務(wù)節(jié)點(diǎn)104將更新分發(fā)到評估組的成員(僅被定義為子更新節(jié)點(diǎn)106),但是保持來自通用企業(yè)組的更新直到向該組分發(fā)更新的特定授權(quán)。
繼續(xù)上述示例,在接收更新之后,評估更新服務(wù)節(jié)點(diǎn)106處理對于每一定義的組的更新。在本示例中,評估更新服務(wù)節(jié)點(diǎn)106僅有一個(gè)組。然而,如上所述,在實(shí)際的實(shí)現(xiàn)中,可以定義多個(gè)組,每一組具有一套唯一的相關(guān)聯(lián)的分發(fā)規(guī)則。對于本示例,評估更新服務(wù)節(jié)點(diǎn)106立即使更新變得可用于分發(fā)到客戶機(jī)計(jì)算機(jī)120和122。客戶機(jī)計(jì)算機(jī)120和122現(xiàn)在可以被更新,并且評估周期/過程可以開始。
繼續(xù)上述示例,當(dāng)企業(yè)更新服務(wù)節(jié)點(diǎn)104的管理員對該更新適用于通過整個(gè)企業(yè)網(wǎng)絡(luò)124分發(fā)感到足夠滿意時(shí),管理員然后明確地授權(quán)該更新被分發(fā)到通用企業(yè)組的成員。企業(yè)更新服務(wù)節(jié)點(diǎn)104相應(yīng)地使該更新對客戶機(jī)114-118可用。應(yīng)當(dāng)理解,評估更新服務(wù)節(jié)點(diǎn)106也可被包括在通用企業(yè)組中。然而,由于評估更新服務(wù)節(jié)點(diǎn)106已被更新,不需要額外的更新相關(guān)行動來將更新分發(fā)到評估子網(wǎng)126。
如可通過上述示例見到的,本發(fā)明提供了本地分發(fā)控制和下載效率方面的重要益處。除上述本地分發(fā)控制方面之外,也實(shí)現(xiàn)了通信帶寬的重大節(jié)省。例如,盡管圖1所示的示例性企業(yè)網(wǎng)絡(luò)124包括五個(gè)客戶機(jī)計(jì)算機(jī),然而軟件提供商的更新從根更新服務(wù)節(jié)點(diǎn)102下載到企業(yè)更新服務(wù)節(jié)點(diǎn)104僅一次。因此很明顯,當(dāng)由更新服務(wù)節(jié)點(diǎn)服務(wù)的客戶機(jī)計(jì)算機(jī)的數(shù)量增加時(shí),父更新服務(wù)節(jié)點(diǎn)和客戶機(jī)更新服務(wù)節(jié)點(diǎn)之間的通信帶寬使用保持不變,由此實(shí)際上減少了所使用的通信帶寬量。另外,更新分發(fā)系統(tǒng)是可擴(kuò)充且可伸縮的。更新分發(fā)系統(tǒng)在至少兩方面是可擴(kuò)充的可向父更新服務(wù)節(jié)點(diǎn)添加任何數(shù)量的子更新服務(wù)節(jié)點(diǎn),并且子更新服務(wù)節(jié)點(diǎn)也可以是父更新服務(wù)節(jié)點(diǎn)。因此,可以調(diào)整更新分發(fā)系統(tǒng)的每一子樹以滿足個(gè)別的需求。
本發(fā)明實(shí)現(xiàn)的另一益處是管理員在他所負(fù)責(zé)的客戶機(jī)計(jì)算機(jī)和網(wǎng)絡(luò)上建立并實(shí)施一致軟件平臺的簡易性。例如,管理員確保客戶機(jī)計(jì)算機(jī)上的一致軟件平臺的現(xiàn)有過程一般是確定軟件平臺是什么,即,應(yīng)當(dāng)安裝哪些更新而不安裝哪些更新;確定每一客戶機(jī)計(jì)算機(jī)上的軟件平臺的狀態(tài);以及將適當(dāng)?shù)能浖峦迫肟蛻魴C(jī)計(jì)算機(jī)中用于安裝。即使在最初的努力之后,管理員必須頻繁地重復(fù)該過程,以確保軟件平臺保持一致。與這些現(xiàn)有技術(shù)方法相反,通過使用上述更新分發(fā)系統(tǒng),以及支持將客戶機(jī)機(jī)器分組成不同的目標(biāo)組的架構(gòu)和使不同的更新以不同的目標(biāo)組為目標(biāo)(在下文描述)的能力,管理員可以為他所負(fù)責(zé)的網(wǎng)絡(luò)和/或客戶機(jī)計(jì)算機(jī)的軟件更新安裝指定期望狀態(tài)。管理員通過一管理員API(也在下文描述)為任何數(shù)量的客戶機(jī)計(jì)算機(jī)和/或客戶機(jī)計(jì)算機(jī)組指定期望狀態(tài)。一旦建立/指定了期望更新狀態(tài),管理員可依賴于更新分發(fā)系統(tǒng)來實(shí)施貫穿整個(gè)更新分發(fā)系統(tǒng)的更新分發(fā)。更新分發(fā)系統(tǒng)用于確保系統(tǒng)中的客戶機(jī)符合由管理員指示的期望狀態(tài)。通過周期性的行動,更新分發(fā)系統(tǒng)不斷地試圖使不符合期望狀態(tài)的那些客戶機(jī)計(jì)算機(jī)達(dá)到符合。另外,通過將特定的安裝屬性與軟件更新相關(guān)聯(lián),諸如強(qiáng)制安裝屬性或最終期限安裝屬性,更新分發(fā)系統(tǒng)減輕了管理員與維護(hù)一致軟件平臺相關(guān)聯(lián)的實(shí)現(xiàn)細(xì)節(jié)的相當(dāng)大一部分的負(fù)擔(dān)。將安裝屬性與軟件更新相關(guān)聯(lián)以控制客戶機(jī)計(jì)算裝置上的行為的更詳細(xì)描述在2004年3月12日共同提交且共同轉(zhuǎn)讓的名為“控制客戶機(jī)計(jì)算機(jī)上的安裝更新行為(Controlling Installation Update Behaviors On a Client Computer)”,委托摘要號MSFT-1-122459的待決美國專利申請中有描述,該申請通過引用結(jié)合于此。
圖2所示是依照本發(fā)明的各方面形成的更新服務(wù)節(jié)點(diǎn)200,如企業(yè)更新服務(wù)節(jié)點(diǎn)104(圖1)或評估更新服務(wù)節(jié)點(diǎn)106(圖1)的示例性邏輯組件的框圖。如圖2所示,更新服務(wù)節(jié)點(diǎn)200包括更新web服務(wù)202、客戶機(jī)更新模塊204、子更新模塊206以及報(bào)告模塊208。示例性更新服務(wù)節(jié)點(diǎn)200也包括驗(yàn)證/授權(quán)模塊210、管理應(yīng)用編程接口(API)212、更新內(nèi)容存儲214、管理員用戶界面218和更新信息存儲216。
更新web服務(wù)202提供了一組常見的web服務(wù),客戶機(jī)計(jì)算機(jī)、子更新服務(wù)節(jié)點(diǎn)和父更新服務(wù)節(jié)點(diǎn)可通過其與更新服務(wù)節(jié)點(diǎn)通信。例如,參考圖1,為使子/評估更新服務(wù)節(jié)點(diǎn)106能夠從父/企業(yè)更新服務(wù)節(jié)點(diǎn)104獲得軟件更新,客戶機(jī)通過父節(jié)點(diǎn)的更新服務(wù)web服務(wù)202通信。類似地,當(dāng)父更新服務(wù)節(jié)點(diǎn),如根更新服務(wù)節(jié)點(diǎn)102具有傳遞到其子更新服務(wù)節(jié)點(diǎn)104的信息時(shí),包括更新,父更新服務(wù)節(jié)點(diǎn)通過子節(jié)點(diǎn)的更新web服務(wù)202通信。
客戶機(jī)更新模塊204處理客戶機(jī)計(jì)算機(jī)和更新服務(wù)節(jié)點(diǎn)200之間關(guān)于儲存在更新服務(wù)節(jié)點(diǎn)上的更新和更新信息的通信。更新相關(guān)的通信包括,但不限于,響應(yīng)于客戶機(jī)請求分發(fā)更新并向客戶機(jī)計(jì)算機(jī)提供可用軟件產(chǎn)品和相關(guān)聯(lián)的更新的列表??蛻魴C(jī)更新模塊204也負(fù)責(zé)確定客戶機(jī)計(jì)算機(jī)是否被授權(quán)來依照相關(guān)聯(lián)的分發(fā)規(guī)則獲取特定的更新,并用客戶機(jī)計(jì)算機(jī)被授權(quán)來訪問的更新相關(guān)信息來響應(yīng)客戶機(jī)計(jì)算機(jī)。
子更新模塊206處理父更新服務(wù)節(jié)點(diǎn)和其子更新服務(wù)節(jié)點(diǎn)之間的更新相關(guān)通信。更新相關(guān)通信包括,但不限于,標(biāo)識對子更新服務(wù)節(jié)點(diǎn)可用的軟件產(chǎn)品和相關(guān)聯(lián)的更新的列表,以及響應(yīng)來自子更新服務(wù)節(jié)點(diǎn)的更新請求。下游更新模塊206負(fù)責(zé)確定子更新服務(wù)節(jié)點(diǎn)是否被授權(quán)來依照相關(guān)聯(lián)的分發(fā)規(guī)則獲取特定的更新,并用子更新服務(wù)節(jié)點(diǎn)被授權(quán)來訪問的更新相關(guān)信息來響應(yīng)子更新服務(wù)節(jié)點(diǎn)。
報(bào)告模塊208生成更新相關(guān)報(bào)告,如哪些組已收到或尚未收到特定更新、哪些客戶機(jī)計(jì)算機(jī)已下載/安裝或尚未下載/安裝更新、更新服務(wù)節(jié)點(diǎn)上有什么更新可用等等。這些報(bào)告可如由管理員內(nèi)部地使用,并且也可通過父節(jié)點(diǎn)的更新服務(wù)接口202提交到父更新服務(wù)節(jié)點(diǎn)。如上所述,企業(yè)通常需要確定哪些客戶機(jī)計(jì)算機(jī)安裝了特定更新,比如為了記賬目的或?yàn)榱司S護(hù)目的。由報(bào)告模塊208生成的信息/報(bào)告可以是這些報(bào)告的基礎(chǔ)。
驗(yàn)證/授權(quán)模塊210負(fù)責(zé)驗(yàn)證,即確定特定客戶機(jī)計(jì)算機(jī)或子更新服務(wù)節(jié)點(diǎn)的身份,并確定客戶機(jī)計(jì)算機(jī)或子更新服務(wù)節(jié)點(diǎn)是否被授權(quán)來訪問更新服務(wù)節(jié)點(diǎn)200上的可用更新。對于已被驗(yàn)證并被授權(quán)來訪問更新服務(wù)節(jié)點(diǎn)上的更新的那些客戶機(jī)計(jì)算機(jī)和子更新服務(wù)節(jié)點(diǎn),驗(yàn)證/授權(quán)模塊210簽發(fā)必須結(jié)合獲取更新一起使用的授權(quán)令牌。授權(quán)令牌的簽發(fā)和使用在下文參考圖4A和4B更詳細(xì)地來描述。
管理API 212表示應(yīng)用程序接口,通過其可行使更新服務(wù)節(jié)點(diǎn)200的控制,并且更新最終通過其來儲存和分發(fā)。當(dāng)更新web服務(wù)202從客戶機(jī)計(jì)算機(jī)和子更新服務(wù)節(jié)點(diǎn)接收各種更新相關(guān)請求時(shí),這些請求直接或間接地通過客戶機(jī)更新模塊204和子更新模塊206被分解成對管理API 212的調(diào)用。結(jié)合管理用戶界面218或安裝在更新服務(wù)節(jié)點(diǎn)200上被合適地配置成使用管理API 212的某些其它程序,管理員最終控制該更新服務(wù)節(jié)點(diǎn)以及任何子更新服務(wù)節(jié)點(diǎn)和客戶機(jī)計(jì)算機(jī)的更新過程的所有方面。
通過管理用戶界面218,管理員可通過管理API 212配置并維護(hù)更新服務(wù)節(jié)點(diǎn)200。由此,通過管理用戶界面218,管理員創(chuàng)建、修改、刪除組,并關(guān)聯(lián)每一組的規(guī)則。此外,使用管理用戶界面218,管理員建立客戶機(jī)計(jì)算機(jī)或子更新服務(wù)節(jié)點(diǎn)屬于那一組。通過管理用戶界面218,管理員也可明確地向客戶機(jī)計(jì)算機(jī)或子更新服務(wù)節(jié)點(diǎn)授權(quán)更新的分發(fā)、配置更新服務(wù)節(jié)點(diǎn)200以周期性地向其父更新服務(wù)節(jié)點(diǎn)查詢新更新、配置報(bào)告參數(shù)并察看內(nèi)部報(bào)告等等。如上所述,盡管管理用戶界面218準(zhǔn)許管理員行使對更新服務(wù)節(jié)點(diǎn)200的各方面的控制,然而駐留在更新服務(wù)節(jié)點(diǎn)200上的另一應(yīng)用程序也合適地適用于用管理API 212來操作,它可替代管理用戶界面218來使用。
如上所述,依照本發(fā)明的一個(gè)實(shí)施例,更新服務(wù)節(jié)點(diǎn)200包括更新內(nèi)容存儲214和更新信息存儲216兩者。更新內(nèi)容存儲214儲存表示軟件更新的實(shí)際文件,如二進(jìn)制和補(bǔ)丁文件。相反,更新信息存儲216儲存對應(yīng)于更新服務(wù)節(jié)點(diǎn)200上可用的更新的信息和元數(shù)據(jù),包括儲存在更新內(nèi)容存儲214中的更新文件。依照一個(gè)實(shí)施例,更新內(nèi)容存儲214和更新信息存儲216都是關(guān)系型數(shù)據(jù)庫。盡管示出示例性更新服務(wù)節(jié)點(diǎn)200具有兩個(gè)數(shù)據(jù)存儲,本發(fā)明不應(yīng)當(dāng)被如此限制。在一個(gè)替換實(shí)施例中,更新內(nèi)容存儲214和更新信息存儲216可在單個(gè)信息存儲中組合。
依照本發(fā)明的各方面,即使更新不物理地儲存在更新內(nèi)容存儲214中,也可向客戶機(jī)計(jì)算機(jī)和子更新服務(wù)節(jié)點(diǎn)呈現(xiàn)軟件更新為在更新服務(wù)節(jié)點(diǎn)200上“可用”。更具體地,與在更新服務(wù)節(jié)點(diǎn)200上立即下載并儲存實(shí)際的更新文件相反,引用父更新服務(wù)節(jié)點(diǎn)或別處的更新文件的鏈接可被替代地儲存在更新服務(wù)節(jié)點(diǎn)上。由此,如果客戶機(jī)計(jì)算機(jī)請求更新,或子更新服務(wù)節(jié)點(diǎn)請求實(shí)際更新,然后從父更新服務(wù)節(jié)點(diǎn)上取出更新并儲存在更新內(nèi)容存儲214中,以準(zhǔn)備好將其傳送到客戶機(jī)計(jì)算機(jī)或子更新服務(wù)節(jié)點(diǎn)。本領(lǐng)域的技術(shù)人員認(rèn)識到,這一類型的更新訪問被稱為及時(shí)下載(just-in-time downloading)。以這一方式,“可用”更新在它被實(shí)際請求之前不需要通過各種網(wǎng)絡(luò)通道來分發(fā)。依照本發(fā)明的各方面,更新服務(wù)節(jié)點(diǎn)200的管理員可選擇性地確定是否要以及時(shí)方式獲取軟件更新。
盡管圖2的以上描述示出了示例性更新服務(wù)模塊200的各種組件,然而應(yīng)當(dāng)理解,也可存在更新服務(wù)模塊的其它組件。此外,上述組件應(yīng)當(dāng)被理解為邏輯組件,不必要為實(shí)際組件。在一個(gè)實(shí)際的實(shí)現(xiàn)中,依照實(shí)現(xiàn)確定,上述組件可以被組合在一起和/或與其它組件相組合。另外,應(yīng)當(dāng)理解,盡管更新服務(wù)節(jié)點(diǎn)200可被視為網(wǎng)絡(luò)上的服務(wù)器計(jì)算機(jī),然而在一個(gè)實(shí)際的實(shí)現(xiàn)中,更新服務(wù)節(jié)點(diǎn)可以在任何數(shù)量類型的計(jì)算裝置上實(shí)現(xiàn)。例如,每一更新服務(wù)節(jié)點(diǎn)200可以在單個(gè)獨(dú)立的計(jì)算機(jī)系統(tǒng)上實(shí)現(xiàn)和/或安裝,或可選地在包括多個(gè)計(jì)算裝置的分布式計(jì)算系統(tǒng)上實(shí)現(xiàn)和/或安裝。
圖3所示是依照本發(fā)明的各方面形成的根更新服務(wù)節(jié)點(diǎn)300,如圖1所示的根更新服務(wù)節(jié)點(diǎn)102的示例性邏輯組件的框圖。類似于更新服務(wù)節(jié)點(diǎn)200(圖2)的邏輯組件,根更新服務(wù)節(jié)點(diǎn)300包括更新web服務(wù)202、子更新模塊206以及驗(yàn)證/授權(quán)模塊210。另外,示例性根更新服務(wù)節(jié)點(diǎn)300也包括管理API 212,更新內(nèi)容存儲214和更新信息存儲216??扇芜x地,根更新服務(wù)節(jié)點(diǎn)300也可包括客戶機(jī)更新模塊204,報(bào)告模塊208和管理用戶界面218。
客戶機(jī)更新模塊204是根更新服務(wù)節(jié)點(diǎn)300的可任選組件,取決于根更新服務(wù)節(jié)點(diǎn)是否直接向客戶機(jī)計(jì)算機(jī)提供軟件更新。例如,參考圖1,作為直接服務(wù)客戶機(jī)計(jì)算機(jī)112的根更新服務(wù)節(jié)點(diǎn),根更新服務(wù)節(jié)點(diǎn)102可包括可任選客戶機(jī)更新模塊204。然而,如果根更新服務(wù)節(jié)點(diǎn)300不直接服務(wù)客戶機(jī)計(jì)算機(jī),則可省略客戶機(jī)更新模塊204。
報(bào)告模塊208對根更新服務(wù)節(jié)點(diǎn)300是可任選的,因?yàn)楦路?wù)節(jié)點(diǎn)沒有向其提供更新報(bào)告的父更新服務(wù)節(jié)點(diǎn)。然而,在根更新服務(wù)節(jié)點(diǎn)的管理員需要更新報(bào)告的意義上,可任選地包括報(bào)告模塊208。
除包含包括在更新服務(wù)節(jié)點(diǎn)200(圖2)中的邏輯組件之外,根更新服務(wù)節(jié)點(diǎn)300也包括軟件提供商接口302。軟件提供商接口302提供通信接口,軟件提供商110(圖1)可通過其直接向根更新服務(wù)節(jié)點(diǎn)300提交軟件更新,并間接向示例性更新分發(fā)系統(tǒng)100提交軟件更新。
類似于圖2的更新服務(wù)節(jié)點(diǎn)200,圖3的以上描述示出了示例性根更新服務(wù)模塊300的各種組件。然而,應(yīng)當(dāng)理解,也可存在根更新服務(wù)模塊的其它組件。此外,上述組件應(yīng)當(dāng)被理解為是邏輯組件,不必要是實(shí)際的組件。在一個(gè)實(shí)際的實(shí)現(xiàn)中,依照實(shí)現(xiàn)確定,上述標(biāo)識的組件可被組合在一起和/或與其它組件相組合。另外,應(yīng)當(dāng)理解,盡管根更新服務(wù)節(jié)點(diǎn)200可被視為網(wǎng)絡(luò)上的服務(wù)器計(jì)算機(jī),然而在一個(gè)實(shí)際的實(shí)現(xiàn)中,更新服務(wù)節(jié)點(diǎn)可在任何數(shù)量的計(jì)算裝置上實(shí)現(xiàn)。例如,根更新服務(wù)節(jié)點(diǎn)300可以在單個(gè)單獨(dú)的計(jì)算機(jī)系統(tǒng),或可選地在包括多個(gè)計(jì)算裝置的分布式計(jì)算系統(tǒng)上實(shí)現(xiàn)和/或安裝。
為更好地理解如何遍及整個(gè)更新分發(fā)系統(tǒng)100從根更新服務(wù)節(jié)點(diǎn)分發(fā)更新,證明了父更新服務(wù)節(jié)點(diǎn)和子更新服務(wù)節(jié)點(diǎn)之間的一個(gè)示例性交換的說明。圖4所示是依照本發(fā)明的各方面,父更新服務(wù)節(jié)點(diǎn)402和子更新服務(wù)節(jié)點(diǎn)404之間在從父更新服務(wù)節(jié)點(diǎn)向子更新服務(wù)節(jié)點(diǎn)傳播軟件更新時(shí)的示例性交換400。如可以見到的,該示例性圖被劃分成兩半,左半邊對應(yīng)于父更新服務(wù)節(jié)點(diǎn)402的行動和事件,右半邊對應(yīng)于子更新服務(wù)節(jié)點(diǎn)404的行動和事件。
為參考圖4來討論的目的,還應(yīng)當(dāng)理解,父更新服務(wù)節(jié)點(diǎn)402可以是或不是更新分發(fā)系統(tǒng)100中的根更新服務(wù)節(jié)點(diǎn)。另外,為本討論的目的,假定父更新服務(wù)節(jié)點(diǎn)402由管理員配置,使得子更新服務(wù)節(jié)點(diǎn)404在未被管理員明確地授權(quán)來接收軟件更新之前無法接收軟件更新。
如示例性交換400中所示的,在事件406開始,父更新服務(wù)節(jié)點(diǎn)402從軟件提供商110處接收軟件更新,如果父更新服務(wù)節(jié)點(diǎn)是根更新服務(wù)節(jié)點(diǎn)102,則直接接收,如果不是,則通過更新分發(fā)系統(tǒng)100間接接收。在父更新服務(wù)節(jié)點(diǎn)402從軟件提供商110處接收軟件更新之后的某一點(diǎn),子更新服務(wù)節(jié)點(diǎn)404開始從父更新服務(wù)節(jié)點(diǎn)處獲取軟件更新的過程。
依照一個(gè)實(shí)施例,子更新服務(wù)節(jié)點(diǎn)404可被配置成在周期性的基礎(chǔ)上從父更新服務(wù)節(jié)點(diǎn)202處自動獲取可用的軟件更新。更具體地,管理員可通過管理用戶界面218選擇性地配置子更新服務(wù)節(jié)點(diǎn)404,以在周期性的基礎(chǔ)上自動獲取父更新服務(wù)節(jié)點(diǎn)402上可用的最新的軟件更新。作為一個(gè)示例,管理員可配置子更新服務(wù)節(jié)點(diǎn)404,以在每日和/或每小時(shí)的基礎(chǔ)上從其父更新服務(wù)節(jié)點(diǎn)402處獲取最新的軟件更新,并可以指定開始自動更新過程的一天中的時(shí)間。也可使用其它周期性的時(shí)間表和準(zhǔn)則。類似地,管理員可通過管理用戶界面218來手動啟動更新過程。
為開始更新過程,在事件408,子更新服務(wù)節(jié)點(diǎn)404向父更新服務(wù)節(jié)點(diǎn)402驗(yàn)證并授權(quán)其本身。向父更新服務(wù)節(jié)點(diǎn)402的驗(yàn)證和授權(quán)提供了對軟件更新的分發(fā)的控制元素,從而將更新分發(fā)限制到授權(quán)的更新服務(wù)節(jié)點(diǎn)。驗(yàn)證和授權(quán)技術(shù)在本領(lǐng)域中是眾所周知的,可采用任何數(shù)量的技術(shù)來向父更新服務(wù)節(jié)點(diǎn)402驗(yàn)證和授權(quán)子更新服務(wù)節(jié)點(diǎn)404。本發(fā)明不限于任何一個(gè)技術(shù)。
在正確地向父更新服務(wù)節(jié)點(diǎn)402驗(yàn)證和授權(quán)之后,在事件410,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回授權(quán)令牌。依照一個(gè)實(shí)施例,授權(quán)令牌是對時(shí)間敏感的令牌,它向子更新服務(wù)節(jié)點(diǎn)404提供了授權(quán),以在有限的時(shí)間量內(nèi)對父更新服務(wù)節(jié)點(diǎn)進(jìn)一步執(zhí)行更新活動。由此,如果子更新服務(wù)節(jié)點(diǎn)404被不正確地向父更新服務(wù)節(jié)點(diǎn)驗(yàn)證和授權(quán),則不會返回任何授權(quán)令牌,并且子更新服務(wù)節(jié)點(diǎn)無法執(zhí)行任何其它更新相關(guān)活動,除驗(yàn)證和授權(quán)之外。類似地,在更新令牌超時(shí)之后,子更新服務(wù)節(jié)點(diǎn)404無法對父更新服務(wù)節(jié)點(diǎn)402執(zhí)行任何進(jìn)一步的更新相關(guān)活動,除重新驗(yàn)證和重新授權(quán)之外。
在接收授權(quán)令牌之后,在事件412,子更新服務(wù)節(jié)點(diǎn)404連同授權(quán)令牌一起向父更新服務(wù)節(jié)點(diǎn)提交對產(chǎn)品更新目錄的請求。產(chǎn)品更新目錄表示父更新服務(wù)節(jié)點(diǎn)402分發(fā)軟件更新的軟件產(chǎn)品的內(nèi)容的列表或表格。
依照本發(fā)明的各方面,不要求子更新服務(wù)節(jié)點(diǎn)404傳播其父更新服務(wù)節(jié)點(diǎn)402上可用的所有軟件更新。例如,參考圖1的示例性更新分發(fā)系統(tǒng),企業(yè)更新服務(wù)節(jié)點(diǎn)104可具有對根更新服務(wù)節(jié)點(diǎn)102上可用的軟件產(chǎn)品的僅一小部分的場地許可證。因此,企業(yè)更新服務(wù)節(jié)點(diǎn)104不必要獲取根更新服務(wù)節(jié)點(diǎn)102上可用的所有軟件更新,因?yàn)榇蠖鄶?shù)更新從不使用。因此,更新服務(wù)節(jié)點(diǎn)的管理員可選擇性地建立更新服務(wù)節(jié)點(diǎn)上哪些軟件產(chǎn)品更新可用。除選擇軟件產(chǎn)品之外,管理員也可選擇性地標(biāo)識涉及軟件產(chǎn)品的額外的、更具體的方面,以將更新過程中消耗的網(wǎng)絡(luò)帶寬量最小化。例如,除選擇軟件產(chǎn)品之外,管理員可選擇性地為所選擇的軟件產(chǎn)品指定僅請求軟件更新的英語版本。類似地,管理員可選擇性地指定僅下載具有特定屬性的軟件更新。作為這些特定屬性的一個(gè)示例,管理員可為所選擇的軟件產(chǎn)品僅請求安全相關(guān)的軟件更新,或軟件提供商110認(rèn)為關(guān)鍵的那些軟件更新??傊?,依照本發(fā)明的各方面,管理員可依照軟件更新的任何可標(biāo)識的屬性或方面為所選擇的軟件產(chǎn)品請求軟件更新列表。
依照本發(fā)明的一個(gè)方面,從父更新服務(wù)節(jié)點(diǎn)402獲得的更新產(chǎn)品目錄標(biāo)識了更新對其可用的所有軟件產(chǎn)品,不論子更新服務(wù)節(jié)點(diǎn)404是否被配置成分發(fā)每一產(chǎn)品的更新。然而,依照本發(fā)明的一個(gè)替換方面,從父更新服務(wù)節(jié)點(diǎn)402處獲得的更新產(chǎn)品目錄僅標(biāo)識了子更新服務(wù)節(jié)點(diǎn)被配置成向其分發(fā)更新的那些軟件產(chǎn)品。例如,可依照子更新服務(wù)節(jié)點(diǎn)303所屬的一個(gè)或多個(gè)組來確定限制哪些軟件產(chǎn)品將在產(chǎn)品更新目錄中列出。
在事件414,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回產(chǎn)品更新目錄。在事件416,子更新服務(wù)節(jié)點(diǎn)404從產(chǎn)品更新目錄中選擇當(dāng)前需要最新更新的那些產(chǎn)品。應(yīng)當(dāng)注意,即使產(chǎn)品更新目錄可能僅列出子更新服務(wù)節(jié)點(diǎn)404所分發(fā)的那些軟件產(chǎn)品,然而子更新服務(wù)節(jié)點(diǎn)可被配置成在不同的時(shí)候或按不同的周期時(shí)間表獲取不同軟件產(chǎn)品的更新。
在事件418,子更新服務(wù)節(jié)點(diǎn)404連同授權(quán)令牌一起提交更新同步請求,它標(biāo)識子更新服務(wù)節(jié)點(diǎn)當(dāng)前正在搜尋其更新的所選擇產(chǎn)品。同步請求中包括的是標(biāo)識對子更新服務(wù)節(jié)點(diǎn)404上的產(chǎn)品可用的最新更新的信息。標(biāo)識產(chǎn)品的最新更新的信息在下文被稱為“更新錨(update anchor)”。每一軟件產(chǎn)品的更新錨通常儲存在更新信息存儲216(圖2)中。在一個(gè)實(shí)施例中,更新錨包括修訂號以及與其相關(guān)聯(lián)的日期。
響應(yīng)于更新同步請求,在事件420,父更新服務(wù)節(jié)點(diǎn)402確定哪些新更新(如果有的話)對子更新服務(wù)節(jié)點(diǎn)404可用。如上所述,該確定基于與特定軟件更新相關(guān)聯(lián)的特定規(guī)則和子更新服務(wù)節(jié)點(diǎn)404是其成員的一個(gè)或多個(gè)組,以及更新錨。對于本示例,如上所述,先前接收的軟件更新被明確地不對子更新服務(wù)節(jié)點(diǎn)404授權(quán)。因此,在事件406接收的軟件更新不被確定為對子更新服務(wù)節(jié)點(diǎn)404“可用”。因此,在事件422,向子更新服務(wù)節(jié)點(diǎn)404返回一更新列表,而不標(biāo)識在事件406接收的軟件更新。依照本發(fā)明的各方面,更新列表依照同步請求標(biāo)識了父更新服務(wù)節(jié)點(diǎn)402上“可用”的所有更新。在一個(gè)實(shí)施例中,更新列表用一與更新相關(guān)聯(lián)的唯一標(biāo)識符來標(biāo)識每一“可用”更新信息。
在事件424,由于更新列表是空的,即,當(dāng)前在父更新服務(wù)節(jié)點(diǎn)402上沒有更新“可用”,則子更新服務(wù)節(jié)點(diǎn)404的更新過程簡單地延遲或休眠一段確定的時(shí)間。依照當(dāng)前示例,在延遲時(shí)段期間,在事件426,父更新服務(wù)節(jié)點(diǎn)402的管理員授權(quán)在事件406接收的軟件更新可以被分發(fā)到子更新服務(wù)節(jié)點(diǎn)404。
在事件428(圖4B),子更新服務(wù)節(jié)點(diǎn)404再一次通過向父更新服務(wù)節(jié)點(diǎn)402驗(yàn)證和授權(quán)其本身來開始自動更新過程。作為響應(yīng),在事件430,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回授權(quán)令牌。
在事件432,子更新服務(wù)節(jié)點(diǎn)404連同授權(quán)令牌一起向父更新服務(wù)節(jié)點(diǎn)402提交產(chǎn)品更新目錄的請求。在事件434,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回產(chǎn)品更新目錄。在事件436,子更新服務(wù)節(jié)點(diǎn)404為期望更新的更新目錄選擇產(chǎn)品。在事件438,子更新服務(wù)節(jié)點(diǎn)404用授權(quán)令牌提交標(biāo)識那些所選擇的產(chǎn)品的更新同步請求。
由于子更新服務(wù)節(jié)點(diǎn)404被授權(quán)來獲取先前在事件406處接收的軟件更新,因此在事件440,父更新服務(wù)節(jié)點(diǎn)402確定該軟件更新對子更新服務(wù)節(jié)點(diǎn)“可用”,并在更新列表中包括對應(yīng)的更新信息。之后,在事件442,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回更新列表,該更新列表現(xiàn)在標(biāo)識在事件406處接收的軟件更新。
由于具有標(biāo)識在父更新服務(wù)節(jié)點(diǎn)402上“可用”的更新的更新列表,子更新服務(wù)節(jié)點(diǎn)404現(xiàn)在具有獲取軟件更新所需的信息。依照本發(fā)明的一個(gè)實(shí)施例,子更新服務(wù)節(jié)點(diǎn)404在以下兩個(gè)部分從父更新服務(wù)節(jié)點(diǎn)402獲取軟件更新獲取更新元數(shù)據(jù),以及獲取更新內(nèi)容或文件,下文稱為更新負(fù)載。依照本發(fā)明的其它方面,更新元數(shù)據(jù)描述了軟件更新的相關(guān)方面,包括但不限于唯一地標(biāo)識更新的更新標(biāo)識符、與軟件更新相關(guān)聯(lián)的修訂號信息、該軟件更新是否應(yīng)當(dāng)被認(rèn)為是優(yōu)先級、語言專用信息、與其它軟件更新的關(guān)系、用于下載目的更新負(fù)載的位置、安裝處理程序例程等等。
通常用兩個(gè)部分,即更新元數(shù)據(jù)和更新負(fù)載來下載整個(gè)軟件更新是有利的某些原因是更新負(fù)載通常顯著大于更新元數(shù)據(jù),并且更新負(fù)載不總是立即需要的,即,需要用于安裝到客戶機(jī)計(jì)算機(jī)(如果在任何時(shí)候需要的話)。由此,依照本發(fā)明的一個(gè)實(shí)施例,更新負(fù)載與更新元數(shù)據(jù)分離地下載,并僅當(dāng)需要時(shí)才下載。本領(lǐng)域的技術(shù)人員將認(rèn)可這一下載技術(shù)為惰性下載(lazy downloading),或可選地為及時(shí)下載。依照本發(fā)明的各方面,管理員可配置更新服務(wù)節(jié)點(diǎn)來以及時(shí)的方式,或在獲取更新元數(shù)據(jù)之后立即獲取更新負(fù)載。此外,在一個(gè)替換實(shí)施例中,更新元數(shù)據(jù)和更新負(fù)載可以共同下載。
如圖4B所示,由于具有在更新列表中標(biāo)識的更新,在事件444,子更新服務(wù)節(jié)點(diǎn)404依照更新列表中其唯一的標(biāo)識符請求“可用”軟件更新的更新元數(shù)據(jù)。對于與父更新服務(wù)節(jié)點(diǎn)402的大多數(shù)其它通信交換,更新請求與授權(quán)令牌一起提交。應(yīng)當(dāng)注意,盡管在所示的示例中,所有的更新元數(shù)據(jù)在一次訪問中下載,然而依照本發(fā)明的替換方面(未示出),更新元數(shù)據(jù)可以在一次以上訪問中下載。例如,在第一次訪問中,首先下載確定軟件更新是否適用和/或合乎需要所需的更新元數(shù)據(jù)的僅一些元素,如適用規(guī)則和對其它軟件更新的依賴性。然后,在確定更新適用和/或合乎需要之后,可獲取更新元數(shù)據(jù)的剩余部分。作為響應(yīng),在事件446,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回軟件更新的更新元數(shù)據(jù),子更新服務(wù)節(jié)點(diǎn)404進(jìn)而將更新元數(shù)據(jù)儲存在更新信息存儲216中。
可任選地,在事件448,子更新服務(wù)節(jié)點(diǎn)404提交從父更新服務(wù)節(jié)點(diǎn)402下載更新負(fù)載的請求。作為響應(yīng),在事件450,父更新服務(wù)節(jié)點(diǎn)402向子更新服務(wù)節(jié)點(diǎn)404返回更新負(fù)載,子更新服務(wù)節(jié)點(diǎn)404進(jìn)而將其儲存在更新內(nèi)容存儲214中。在一個(gè)替換實(shí)施例中,子更新服務(wù)節(jié)點(diǎn)404從更新元數(shù)據(jù)中指定的位置的存儲位置中下載更新負(fù)載,該存儲位置可以不是父更新服務(wù)節(jié)點(diǎn)402。
由于現(xiàn)在在子更新服務(wù)節(jié)點(diǎn)404上發(fā)生了更新活動,因此在事件452,子更新服務(wù)節(jié)點(diǎn)生成更新報(bào)告,并將其提交給父更新服務(wù)節(jié)點(diǎn)402,該報(bào)告略述了最近剛發(fā)生的更新活動。之后,子更新服務(wù)節(jié)點(diǎn)404再一次延遲,直到下一次該更新過程被調(diào)度來運(yùn)行(未示出)。
本領(lǐng)域的技術(shù)人員可以理解,上述事件用于說明目的,并反映了一組特定的示例性事件和環(huán)境。很清楚,依照特定的細(xì)節(jié)和情況,也可以出現(xiàn)其它事件,它們會導(dǎo)致對上述事件的某些變化。另外,應(yīng)當(dāng)理解,盡管子更新服務(wù)節(jié)點(diǎn)404從父更新服務(wù)節(jié)點(diǎn)402處獲取最新的“可用”軟件更新,然而子更新服務(wù)節(jié)點(diǎn)可以同時(shí)處理來自其子更新服務(wù)節(jié)點(diǎn)的更新請求。因此,上述事件序列應(yīng)當(dāng)被視為僅說明性的,并非局限本發(fā)明。
圖5所示是在子更新服務(wù)節(jié)點(diǎn),如圖1的企業(yè)更新服務(wù)節(jié)點(diǎn)104上執(zhí)行的,用于周期性地從其父更新服務(wù)節(jié)點(diǎn)獲取更新的示例性例程500的流程圖。在塊502開始,子更新服務(wù)節(jié)點(diǎn)從父更新服務(wù)節(jié)點(diǎn)獲取“可用”更新的經(jīng)同步的更新列表。從父更新服務(wù)節(jié)點(diǎn)獲取“可用”更新的經(jīng)同步的更新列表在下文參考圖6來描述。
圖6是示例性子例程600的流程圖,它適用于圖5的示例性例程500,用于從父更新服務(wù)節(jié)點(diǎn)獲取“可用”更新的經(jīng)同步的更新列表。在塊602開始,如上文相對于圖4A和4B所描述的,子更新服務(wù)節(jié)點(diǎn)向父更新服務(wù)節(jié)點(diǎn)驗(yàn)證并授權(quán)其本身,并且響應(yīng)于正確的驗(yàn)證和授權(quán),接收一授權(quán)令牌。在塊604,連同該授權(quán)令牌一起,子更新服務(wù)節(jié)點(diǎn)建立與父更新服務(wù)節(jié)點(diǎn)的通信參數(shù)。建立通信參數(shù)準(zhǔn)許父和子更新服務(wù)節(jié)點(diǎn)正確地建立父節(jié)點(diǎn)和子節(jié)點(diǎn)都理解的公用基礎(chǔ)。通信參數(shù)包括但不限于通信更新協(xié)議或版本;產(chǎn)品分組;等等。
在建立了與父更新服務(wù)節(jié)點(diǎn)的通信參數(shù)之后,在塊606,子更新服務(wù)節(jié)點(diǎn)獲取描述父更新服務(wù)節(jié)點(diǎn)向其提供/分發(fā)更新的軟件產(chǎn)品的產(chǎn)品更新目錄。在塊608,子更新服務(wù)節(jié)點(diǎn)選擇當(dāng)前正在搜尋更新的那些軟件產(chǎn)品更新。在塊610,子更新服務(wù)節(jié)點(diǎn)向父更新服務(wù)節(jié)點(diǎn)提交更新同步請求,包括授權(quán)令牌和與所選擇的軟件產(chǎn)品相關(guān)聯(lián)的“錨”,它標(biāo)識了已經(jīng)在子更新服務(wù)節(jié)點(diǎn)上的現(xiàn)有修訂和更新。
響應(yīng)于更新同步請求,在塊612,子更新服務(wù)節(jié)點(diǎn)從父更新服務(wù)節(jié)點(diǎn)獲取更新列表、依照父更新服務(wù)節(jié)點(diǎn)上“可用”的軟件更新來同步,“可用”是依照當(dāng)前儲存在子更新服務(wù)節(jié)點(diǎn)上的內(nèi)容的。如上所述,更新列表用唯一的標(biāo)識符標(biāo)識了父更新服務(wù)節(jié)點(diǎn)上對子更新服務(wù)節(jié)點(diǎn)“可用”的那些軟件更新。之后,示例性子例程600終止。
再次參考圖5,在從父更新服務(wù)節(jié)點(diǎn)獲取了經(jīng)同步的更新列表之后,在判別塊504,確定當(dāng)前是否有任何軟件更新“可用于”從父更新服務(wù)節(jié)點(diǎn)下載。這一確定是依照經(jīng)同步的更新列表中是否有任何更新標(biāo)識符來作出的。如果當(dāng)前沒有任何軟件更新“可用于”下載,則示例性例程500前進(jìn)到延遲塊510,其中,示例性例程延遲/休眠,直到下一更新周期出現(xiàn)。可選地,如果有更新“可用于”從父更新服務(wù)節(jié)點(diǎn)下載,則在塊506,子更新服務(wù)節(jié)點(diǎn)從父更新服務(wù)節(jié)點(diǎn)獲取更新。從父更新服務(wù)節(jié)點(diǎn)獲取“可用”更新在下文參考圖7來描述。
圖7所示是適用于圖5的示例性例程500的、用于從父更新服務(wù)節(jié)點(diǎn)獲取“可用”軟件更新的示例性子例程700的流程圖。在塊702開始,選擇更新列表中的第一更新標(biāo)識符。在塊704,子更新服務(wù)節(jié)點(diǎn)從父更新服務(wù)節(jié)點(diǎn)獲取對應(yīng)于所選擇的更新標(biāo)識符的更新元數(shù)據(jù),并將其儲存在更新信息存儲216中。
依照一個(gè)實(shí)施例,在塊706,子更新服務(wù)節(jié)點(diǎn)從父更新服務(wù)節(jié)點(diǎn)獲取對應(yīng)于所選擇的更新標(biāo)識符的更新負(fù)載,并將該更新負(fù)載儲存在更新內(nèi)容存儲212中??扇芜x地,更新內(nèi)容不需要直接被下載到子更新服務(wù)節(jié)點(diǎn)。如上所述,子更新服務(wù)節(jié)點(diǎn)可選擇性地被配置成以及時(shí)的方式從父更新節(jié)點(diǎn)下載更新。依照該可任選處理,如圖7所示,與從塊704前進(jìn)到塊706相反,示例性子例程700可任選地從塊704前進(jìn)到判別塊708。
在判別塊708,在獲取了所選擇的更新標(biāo)識符的更新元數(shù)據(jù)之后,并可任選地獲取了更新負(fù)載之后,確定更新列表中是否有另外的更新標(biāo)識符。如果有另外的更新標(biāo)識符,則在塊710,選擇更新列表中的下一更新標(biāo)識符,并且子例程700返回到塊704以進(jìn)行另外的處理。例程700繼續(xù),直到在判別塊708確定更新列表中沒有更多的更新標(biāo)識符,在那時(shí),示例性子例程700終止。
返回到圖5,在從父更新服務(wù)節(jié)點(diǎn)獲取了“可用”更新之后,在塊508,子更新服務(wù)節(jié)點(diǎn)向父更新服務(wù)節(jié)點(diǎn)報(bào)告更新活動。之后,在延遲塊510,示例性例程500延遲/休眠一段預(yù)定時(shí)間,直到下一更新周期,然后前進(jìn)到塊502以重復(fù)上述更新過程。
如圖5所示,在判別塊504,即使當(dāng)父更新服務(wù)節(jié)點(diǎn)上沒有任何更新“可用”時(shí),子更新服務(wù)節(jié)點(diǎn)也可任選地被配置成向父更新服務(wù)節(jié)點(diǎn)報(bào)告其更新活動。依照這一替換配置,當(dāng)沒有更新可用時(shí),示例性例程500可前進(jìn)到塊508,以報(bào)告更新活動。
圖8是在父更新服務(wù)節(jié)點(diǎn)上實(shí)現(xiàn)的、用于響應(yīng)于來自子更新服務(wù)節(jié)點(diǎn)的更新同步請求生成標(biāo)識“可用”更新的經(jīng)同步的更新列表的示例性例程800的流程圖。在塊802開始,父更新服務(wù)節(jié)點(diǎn)從子更新服務(wù)節(jié)點(diǎn)接收對標(biāo)識“可用”更新的更新列表的更新同步請求。在塊804,選擇更新同步請求中標(biāo)識的第一軟件產(chǎn)品。
在判別塊806,確定對標(biāo)識的軟件產(chǎn)品是否有任何可用更新。這一確定是依照儲存在更新信息存儲216中的軟件產(chǎn)品的元數(shù)據(jù)、依照由子更新服務(wù)節(jié)點(diǎn)提供的更新錨、并依照與子更新服務(wù)節(jié)點(diǎn)所屬的組相關(guān)聯(lián)的分發(fā)規(guī)則來作出的。依照該確定,如果有更新“可用”,則在塊808,與“可用”更新相關(guān)聯(lián)的唯一更新標(biāo)識符被寫入更新列表中。在將“可用”更新的唯一更新標(biāo)識符寫入更新列表中之后,在塊810,確定更新同步請求中是否標(biāo)識了任何更多的其它軟件產(chǎn)品。如果在更新同步請求中有另外的更新軟件產(chǎn)品,則在塊814,父更新服務(wù)節(jié)點(diǎn)選擇更新同步請求中標(biāo)識的下一軟件產(chǎn)品,并返回到判別塊806以確定對所選擇的軟件產(chǎn)品是否有“可用”更新??蛇x地,如果更新同步請求中沒有標(biāo)識更多的軟件產(chǎn)品,則在塊814,將更新列表返回到子更新服務(wù)節(jié)點(diǎn)。之后,示例性子例程800終止。
盡管示出并描述了本發(fā)明的各個(gè)實(shí)施例,包括較佳實(shí)施例,然而可以理解,可在不脫離本發(fā)明的精神和范圍的情況下作出各種改變。
權(quán)利要求
1.一種用于通過通信網(wǎng)絡(luò)分發(fā)軟件更新以分發(fā)到客戶機(jī)計(jì)算機(jī)的軟件更新分發(fā)系統(tǒng),其特征在于,它包括一根更新服務(wù)節(jié)點(diǎn);以及至少一個(gè)子更新服務(wù)節(jié)點(diǎn);其中,所述根更新服務(wù)節(jié)點(diǎn)和所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)以一分層方式組織,使得所述根更新服務(wù)節(jié)點(diǎn)是所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的父更新服務(wù)節(jié)點(diǎn),其中,除所述根更新服務(wù)節(jié)點(diǎn)之外,每一更新服務(wù)節(jié)點(diǎn)具有一父更新服務(wù)節(jié)點(diǎn),并且其中,所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的每一個(gè)也可以是至少一個(gè)其它子更新服務(wù)節(jié)點(diǎn)的父更新服務(wù)節(jié)點(diǎn);以及其中,所述根更新服務(wù)節(jié)點(diǎn)從一軟件提供商處獲取軟件更新,并且其中,所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的每一個(gè)通過從其父更新服務(wù)節(jié)點(diǎn)處獲取所述軟件更新來獲取用于分發(fā)到客戶機(jī)計(jì)算機(jī)的軟件更新。
2.如權(quán)利要求1所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述根更新服務(wù)節(jié)點(diǎn)包括一更新存儲,用于儲存軟件更新;一更新web服務(wù),所述根更新服務(wù)節(jié)點(diǎn)通過其經(jīng)由所述通信網(wǎng)絡(luò)向其子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新;以及一軟件提供商接口,軟件提供商通過其經(jīng)由所述通信網(wǎng)絡(luò)向所述根更新服務(wù)節(jié)點(diǎn)提交其軟件更新。
3.如權(quán)利要求2所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的每一個(gè)包括一更新存儲,用于儲存軟件更新;一更新web服務(wù),所述子更新服務(wù)節(jié)點(diǎn)通過其經(jīng)由所述通信網(wǎng)絡(luò)從其父更新服務(wù)節(jié)點(diǎn)處獲取軟件更新,并且所述子更新服務(wù)節(jié)點(diǎn)通過其經(jīng)由所述通信網(wǎng)絡(luò)向其子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新;一管理應(yīng)用編程接口(API),管理員使用一管理用戶界面通過其建立用于向其子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的規(guī)則;以及一子更新模塊,用于依照所建立的規(guī)則確定哪些軟件更新可用于分發(fā)到其子更新服務(wù)節(jié)點(diǎn)。
4.如權(quán)利要求3所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述至少一個(gè)子更新服務(wù)節(jié)點(diǎn)的每一個(gè)還包括一報(bào)告模塊,用于生成并向所述父更新服務(wù)節(jié)點(diǎn)發(fā)送更新活動報(bào)告;一驗(yàn)證和授權(quán)模塊,用于確定一更新服務(wù)節(jié)點(diǎn)是否被授權(quán)來從其子更新服務(wù)節(jié)點(diǎn)獲取軟件更新;以及一客戶機(jī)更新模塊,用于向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新。
5.如權(quán)利要求4所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述更新存儲包括一儲存了所述軟件更新的更新負(fù)載的更新內(nèi)容存儲,以及一儲存所述軟件更新的更新元數(shù)據(jù)的更新信息存儲。
6.如權(quán)利要求5所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述子更新服務(wù)節(jié)點(diǎn)通過從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新的更新元數(shù)據(jù),并從所述父更新服務(wù)節(jié)點(diǎn)單獨(dú)地獲取所述軟件更新的更新負(fù)載,來從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新。
7.如權(quán)利要求6所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述子更新服務(wù)節(jié)點(diǎn)以及時(shí)的方式從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新的更新負(fù)載。
8.如權(quán)利要求4所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述客戶機(jī)更新模塊依照由管理員使用所述管理用戶界面通過所述管理API建立的規(guī)則來向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新。
9.如權(quán)利要求8所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述根更新服務(wù)節(jié)點(diǎn)還包括一客戶機(jī)更新模塊,用于向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新。
10.如權(quán)利要求3所述的軟件更新分發(fā)系統(tǒng),其特征在于,所述子更新服務(wù)節(jié)點(diǎn)可選擇性地被配置成周期性地從所述父更新服務(wù)節(jié)點(diǎn)獲取可用軟件更新。
11.一種用于向客戶機(jī)計(jì)算機(jī)和子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的更新服務(wù)節(jié)點(diǎn),其特征在于,它包括一更新存儲,用于儲存軟件更新;一更新web服務(wù),所述更新服務(wù)節(jié)點(diǎn)通過其經(jīng)由一通信網(wǎng)絡(luò)從一父更新服務(wù)節(jié)點(diǎn)獲取軟件更新,并且所述更新服務(wù)節(jié)點(diǎn)通過其經(jīng)由所述通信網(wǎng)絡(luò)向子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新;一管理應(yīng)用編程接口(API),管理員使用一管理用戶界面通過其建立用于向所述子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的規(guī)則;以及一子更新模塊,用于依照所建立的規(guī)則確定哪些軟件更新可用于被分發(fā)到所述子更新服務(wù)節(jié)點(diǎn)。
12.如權(quán)利要求11所述的更新服務(wù)節(jié)點(diǎn),其特征在于,它還包括一報(bào)告模塊,用于向所述父更新服務(wù)節(jié)點(diǎn)生成更新活動報(bào)告;一驗(yàn)證和授權(quán)模塊,用于確定一子更新服務(wù)節(jié)點(diǎn)是否被授權(quán)來從所述更新服務(wù)節(jié)點(diǎn)獲取軟件更新;以及一客戶機(jī)更新模塊,用于向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新。
13.如權(quán)利要求12所述的更新服務(wù)節(jié)點(diǎn),其特征在于,所述更新存儲包括一儲存所述軟件更新的更新負(fù)載的更新內(nèi)容存儲,以及一儲存所述軟件更新的更新元數(shù)據(jù)的更新信息存儲。
14.如權(quán)利要求13所述的更新服務(wù)節(jié)點(diǎn),其特征在于,所述更新服務(wù)節(jié)點(diǎn)通過從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新的更新元數(shù)據(jù),并從所述父更新服務(wù)節(jié)點(diǎn)單獨(dú)地獲取所述軟件更新的更新負(fù)載,來從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新。
15.如權(quán)利要求14所述的更新服務(wù)節(jié)點(diǎn),其特征在于,所述更新服務(wù)節(jié)點(diǎn)以及時(shí)的方式從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新的更新負(fù)載。
16.如權(quán)利要求12所述的更新服務(wù)節(jié)點(diǎn),其特征在于,所述更新模塊依照由管理員使用所述管理用戶界面通過所述管理API建立的規(guī)則向客戶機(jī)計(jì)算機(jī)分發(fā)軟件更新。
17.如權(quán)利要求11所述的更新服務(wù)節(jié)點(diǎn),其特征在于,所述子更新服務(wù)節(jié)點(diǎn)可以被選擇性地配置成周期性地從所述父更新服務(wù)節(jié)點(diǎn)獲取可用軟件更新。
18.一種由軟件更新系統(tǒng)中的子更新服務(wù)節(jié)點(diǎn)通過一通信網(wǎng)絡(luò)從一父更新服務(wù)節(jié)點(diǎn)獲取軟件更新的方法,其特征在于,所述方法包括以下步驟(a)從所述父更新服務(wù)節(jié)點(diǎn)獲取一軟件產(chǎn)品列表,所述父更新服務(wù)節(jié)點(diǎn)向所述軟件產(chǎn)品提供軟件更新;(b)從所述軟件產(chǎn)品列表中選擇一軟件產(chǎn)品;(c)向所述父更新服務(wù)節(jié)點(diǎn)提交一對與所選擇的軟件產(chǎn)品相對應(yīng)的可用軟件更新的請求;(d)獲取一標(biāo)識對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的軟件更新的軟件更新列表;(e)從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新列表中的每一軟件更新。
19.如權(quán)利要求18所述的方法,其特征在于,從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新列表中的每一軟件更新包括從所述父更新服務(wù)節(jié)點(diǎn)獲取對應(yīng)于所述軟件更新的元數(shù)據(jù);以及獲取所述更新負(fù)載。
20.如權(quán)利要求19所述的方法,其特征在于,獲取所述更新負(fù)載包括當(dāng)一子更新服務(wù)節(jié)點(diǎn)或一客戶機(jī)更新服務(wù)節(jié)點(diǎn)需要時(shí),以及時(shí)的方式獲取所述更新負(fù)載。
21.如權(quán)利要求20所述的方法,其特征在于,向所述父更新服務(wù)節(jié)點(diǎn)的對與所選擇的軟件產(chǎn)品相對應(yīng)的可用軟件更新的請求包括一更新錨,所述更新錨標(biāo)識了所述更新服務(wù)節(jié)點(diǎn)上當(dāng)前可用的所選擇軟件產(chǎn)品的最新修訂和更新。
22.如權(quán)利要求21所述的方法,其特征在于,它還包括首先向所述父更新服務(wù)節(jié)點(diǎn)提交一驗(yàn)證和授權(quán)請求,并響應(yīng)于所述驗(yàn)證和授權(quán)請求獲取一授權(quán)令牌的步驟;并且其中,從所述子更新服務(wù)節(jié)點(diǎn)到所述父更新服務(wù)節(jié)點(diǎn)的每一后續(xù)通信是用所述授權(quán)令牌作出的。
23.如權(quán)利要求18所述的方法,其特征在于,步驟(a)-(e)是在周期性的基礎(chǔ)上執(zhí)行的。
24.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒質(zhì),當(dāng)所述指令在一更新服務(wù)計(jì)算機(jī)上執(zhí)行時(shí),實(shí)現(xiàn)一種方法,其特征在于,所述方法包括以下步驟(a)從所述父更新服務(wù)節(jié)點(diǎn)獲取一軟件產(chǎn)品列表,所述父更新服務(wù)節(jié)點(diǎn)向所述軟件產(chǎn)品提供軟件更新;(b)從所述軟件產(chǎn)品列表中選擇一軟件產(chǎn)品;(c)向所述父更新服務(wù)節(jié)點(diǎn)提交一對與所選擇的軟件產(chǎn)品相對應(yīng)的可用軟件更新的請求;(d)獲取一標(biāo)識對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的軟件更新的軟件更新列表;(e)從所述父更新服務(wù)節(jié)點(diǎn)獲取所述軟件更新列表中的每一軟件更新。
25.一種在軟件更新分發(fā)系統(tǒng)的一父更新服務(wù)節(jié)點(diǎn)上經(jīng)由通信網(wǎng)絡(luò)執(zhí)行的、向一子更新服務(wù)節(jié)點(diǎn)分發(fā)軟件更新的方法,其特征在于,所述方法包括(a)從一子更新服務(wù)節(jié)點(diǎn)接收一對軟件更新目錄的請求,所述軟件更新目錄標(biāo)識所述父更新服務(wù)節(jié)點(diǎn)向其提供軟件更新的軟件產(chǎn)品;(b)向所述子更新服務(wù)節(jié)點(diǎn)返回一軟件更新目錄;(c)接收一對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的軟件更新列表的請求;(d)確定所選擇的軟件產(chǎn)品的任何軟件更新是否對所述子更新服務(wù)節(jié)點(diǎn)可用;(e)向所述子更新服務(wù)節(jié)點(diǎn)返回標(biāo)識被確定為對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的那些軟件更新的軟件更新列表,所述軟件更新列表依照一唯一更新標(biāo)識符標(biāo)識了可用軟件更新;(f)從所述子更新服務(wù)節(jié)點(diǎn)接收一對與可用軟件更新相對應(yīng)的元數(shù)據(jù)的更新請求,所述更新請求按其唯一更新標(biāo)識符標(biāo)識了所述可用軟件更新;以及(g)返回對應(yīng)于所述更新請求中標(biāo)識的軟件更新的更新元數(shù)據(jù),所述更新元數(shù)據(jù)包括對應(yīng)于所述軟件更新的信息,包括用于獲取所述對應(yīng)更新負(fù)載的引用。
26.如權(quán)利要求25所述的方法,其特征在于,它還包括在步驟(a)-(g)之前從所述子更新服務(wù)節(jié)點(diǎn)接收一驗(yàn)證和授權(quán)請求;確定所述子更新服務(wù)節(jié)點(diǎn)是否被授權(quán)來從所述父更新服務(wù)節(jié)點(diǎn)獲取軟件更新;以及如果所述子更新服務(wù)節(jié)點(diǎn)被授權(quán)來從所述父更新服務(wù)節(jié)點(diǎn)獲取軟件更新,則向所述子更新服務(wù)節(jié)點(diǎn)返回一授權(quán)令牌;以及其中,從所述子更新服務(wù)節(jié)點(diǎn)到所述父更新服務(wù)節(jié)點(diǎn)的每一后續(xù)通信是用所述授權(quán)令牌作出的。
27.如權(quán)利要求26所述的方法,其特征在于,它還包括接收一對與所述更新請求中標(biāo)識的軟件更新相對應(yīng)的更新負(fù)載的更新請求;以及返回與所述更新請求中標(biāo)識的軟件更新相對應(yīng)的更新負(fù)載;
28.如權(quán)利要求25所述的方法,其特征在于,對所選擇的軟件產(chǎn)品的軟件更新列表的所述請求包括一更新錨,它標(biāo)識了所述子更新服務(wù)節(jié)點(diǎn)上對應(yīng)于所選擇的軟件產(chǎn)品的最新更新信息;以及其中,確定所選擇的軟件產(chǎn)品的任何軟件更新是否對所述子更新服務(wù)節(jié)點(diǎn)可用包括依照所述更新錨,并依照與向所述子更新服務(wù)節(jié)點(diǎn)的軟件更新分發(fā)相關(guān)聯(lián)的規(guī)則,來確定是否有任何更新對所述子更新服務(wù)節(jié)點(diǎn)可用。
29.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒質(zhì),當(dāng)所述指令在一父更新服務(wù)計(jì)算機(jī)上執(zhí)行時(shí),實(shí)現(xiàn)一種方法,其特征在于,所述方法包括以下步驟(a)從一子更新服務(wù)節(jié)點(diǎn)接收一軟件更新目錄請求,所述軟件更新目錄標(biāo)識了所述父更新服務(wù)節(jié)點(diǎn)向其提供軟件更新的軟件產(chǎn)品;(b)向所述子更新服務(wù)節(jié)點(diǎn)返回一軟件更新目錄;(c)接收一對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的軟件更新列表的請求;(d)確定所選擇的軟件產(chǎn)品的任何軟件更新是否對所述子更新服務(wù)節(jié)點(diǎn)可用;(e)向所述子更新服務(wù)節(jié)點(diǎn)返回一標(biāo)識被確定為對所述子更新服務(wù)節(jié)點(diǎn)可用的所選擇的軟件產(chǎn)品的那些軟件更新的軟件更新列表,所述軟件更新列表依照一唯一更新標(biāo)識符標(biāo)識了可用軟件更新;(f)從所述子更新服務(wù)節(jié)點(diǎn)接收一對與可用軟件更新相對應(yīng)的元數(shù)據(jù)的更新請求,所述更新請求按其唯一更新標(biāo)識符標(biāo)識了所述可用軟件更新;以及(g)返回對應(yīng)于所述更新請求中標(biāo)識的軟件更新的更新元數(shù)據(jù),所述更新元數(shù)據(jù)包括對應(yīng)于所述軟件更新的信息,包括用于獲取所述對應(yīng)更新負(fù)載的引用。
全文摘要
提出了一種用于分發(fā)軟件更新的分層軟件更新分發(fā)系統(tǒng)和方法。該更新分發(fā)系統(tǒng)包括一根更新服務(wù)節(jié)點(diǎn)和至少一個(gè)更新服務(wù)節(jié)點(diǎn)。在一更新分發(fā)系統(tǒng)中,除根更新服務(wù)節(jié)點(diǎn)之外,每一更新服務(wù)節(jié)點(diǎn)具有一個(gè)父更新服務(wù)節(jié)點(diǎn)。每一更新服務(wù)節(jié)點(diǎn)可擔(dān)當(dāng)對子更新服務(wù)節(jié)點(diǎn)的父更新服務(wù)節(jié)點(diǎn)。
文檔編號G06F13/00GK1668009SQ200510008150
公開日2005年9月14日 申請日期2005年2月6日 優(yōu)先權(quán)日2004年3月12日
發(fā)明者D·B·德甘, D·C·亨尼西, E·F·魯斯, J·J·羅伯茨, 侯建波, L·C·馬, M·舍巴德, M·N·莫哈麥德, N·R·索艾, T·R·斯里蘭, V·S·西魯維拉馬萊, V·拉曼, 賀翔 申請人:微軟公司