專利名稱:用于驗(yàn)證已遞送軟件的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及用于通過計(jì)算機(jī)網(wǎng)絡(luò)來分發(fā)軟件的系統(tǒng)。更具體地,本發(fā)明涉 及促進(jìn)將軟件遞送至遠(yuǎn)程站點(diǎn)并且周期性地驗(yàn)證遠(yuǎn)程站點(diǎn)具有已遞送軟件的有效、最新版 本的軟件存儲(chǔ)庫。
背景技術(shù):
高速網(wǎng)絡(luò)近來蓬勃的發(fā)展使得將計(jì)算機(jī)軟件分發(fā)到遠(yuǎn)程站點(diǎn)越發(fā)容易。然而,軟 件分發(fā)可能是復(fù)雜的過程,因?yàn)檐浖职l(fā)經(jīng)常要分發(fā)數(shù)百個(gè)不同的軟件產(chǎn)品,并且每個(gè)產(chǎn) 品通常具有多個(gè)發(fā)布(release)。而且,軟件產(chǎn)品可能被分發(fā)到數(shù)百個(gè)甚至數(shù)千個(gè)站點(diǎn),其 中每個(gè)站點(diǎn)可能潛在地使用軟件產(chǎn)品的不同版本的唯一組合。系統(tǒng)管理員進(jìn)一步增加了這 種復(fù)雜性,系統(tǒng)管理員關(guān)于如何安裝不同軟件通常是具有獨(dú)創(chuàng)性的,這意味著每個(gè)安裝通 常是不同的。上述每個(gè)因素都使得難以有效地分發(fā)和維護(hù)軟件產(chǎn)品。
發(fā)明內(nèi)容
本發(fā)明的某些實(shí)施方式提供一種用于遞送軟件的系統(tǒng)。在操作期間,該系統(tǒng)接收 來自用戶的選擇,其中所述選擇指定要從主站點(diǎn)遞送至用戶站點(diǎn)的軟件項(xiàng)。該系統(tǒng)還接收 來自用戶的優(yōu)先級信息,其中所述優(yōu)先級信息指定遞送選定的軟件項(xiàng)的優(yōu)先級。接下來,該 系統(tǒng)基于所述優(yōu)先級信息來確定遞送選定的軟件項(xiàng)的順序。最后,該系統(tǒng)按照所確定的遞 送順序?qū)⑦x定的軟件項(xiàng)從主站點(diǎn)遞送到用戶站點(diǎn)。在某些實(shí)施方式中,遞送選定的軟件項(xiàng)包括迭代地進(jìn)行以下動(dòng)作將選定的軟件 項(xiàng)從主站點(diǎn)發(fā)送至用戶站點(diǎn);以及在發(fā)送下一選定軟件項(xiàng)之前,接收對所述選定項(xiàng)的遞送 的確認(rèn)。在某些實(shí)施方式中,該系統(tǒng)附加地計(jì)算遞送選定軟件項(xiàng)的費(fèi)用,其中所述費(fèi)用基 于安裝選定軟件項(xiàng)的復(fù)雜性;選定軟件項(xiàng)的大??;和/或組成選定軟件項(xiàng)的文件的數(shù)目。在某些實(shí)施方式中,在遞送選定的軟件項(xiàng)之后,該系統(tǒng)自動(dòng)地將對選定軟件項(xiàng)的 更新從主站點(diǎn)推送至用戶站點(diǎn)。在某些實(shí)施方式中,主站點(diǎn)可以是包含軟件的主存儲(chǔ)庫的主站點(diǎn);或者包含所 述主存儲(chǔ)庫的副本的從站點(diǎn)。在某些實(shí)施方式中,系統(tǒng)接收來自用戶的遞送選項(xiàng),其中該遞送選項(xiàng)指定選定的 軟件項(xiàng)是按照預(yù)定的安排遞送,還是按需遞送。在這些實(shí)施方式中,遞送選定的軟件項(xiàng)包 括按照所述遞送選項(xiàng)來遞送選定的軟件項(xiàng)。在某些實(shí)施方式中,該系統(tǒng)附加地標(biāo)識哪些軟件項(xiàng)在先前時(shí)段中未被加載或者使 用,并繼而將所標(biāo)識的軟件項(xiàng)歸檔并將其從主站點(diǎn)移除。在某些實(shí)施方式中,將所標(biāo)識的軟件項(xiàng)歸檔并將其從主站點(diǎn)移除包括壓縮所標(biāo) 識的軟件項(xiàng);將經(jīng)過壓縮的軟件項(xiàng)存儲(chǔ)在歸檔存儲(chǔ)庫中;以及將所標(biāo)識的軟件項(xiàng)從主站點(diǎn) 上的主存儲(chǔ)庫中移除。
本發(fā)明的某些實(shí)施方式提供了對從主站點(diǎn)分發(fā)到用戶站點(diǎn)的軟件進(jìn)行驗(yàn)證的系 統(tǒng)。在操作期間,該系統(tǒng)在用戶站點(diǎn)處從主站點(diǎn)接收主列表,其中該主列表指定了可以在用 戶站點(diǎn)上安裝的軟件項(xiàng)。該系統(tǒng)還在用戶站點(diǎn)上生成實(shí)際列表,其指示在用戶站點(diǎn)上實(shí)際 安裝的軟件項(xiàng)。該系統(tǒng)繼而將實(shí)際列表與主列表進(jìn)行比較,如果實(shí)際列表與主列表不一致, 則系統(tǒng)執(zhí)行補(bǔ)救動(dòng)作。在某些實(shí)施方式中,補(bǔ)救動(dòng)作可以包括將不一致自動(dòng)通知給負(fù)責(zé)該用戶站點(diǎn)的 系統(tǒng)管理員;以及從主站點(diǎn)向用戶站點(diǎn)自動(dòng)重傳丟失的、更新的或者損壞的軟件項(xiàng)。在某些實(shí)施方式中,主列表是在主站點(diǎn)上更新主列表時(shí)接收的,而實(shí)際列表在用 戶站點(diǎn)上周期性地生成。在某些實(shí)施方式中,生成實(shí)際列表包括標(biāo)識在用戶站點(diǎn)處安裝了哪些軟件項(xiàng),并 繼而驗(yàn)證所標(biāo)識的軟件項(xiàng)是否在用戶站點(diǎn)處有效安裝。在某些實(shí)施方式中,驗(yàn)證給定的軟件項(xiàng)有效安裝包括驗(yàn)證給定軟件項(xiàng)的以下屬 性版本號,文件數(shù)目,和/或安裝的大小和/或校驗(yàn)和。
圖1示出了按照本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)的聯(lián)網(wǎng)集合。圖2A示出了按照本發(fā)明實(shí)施方式的主站點(diǎn)的結(jié)構(gòu)。圖2B示出了按照本發(fā)明實(shí)施方式的用戶站點(diǎn)的結(jié)構(gòu)。圖3給出了示出按照本發(fā)明實(shí)施方式的分發(fā)軟件的過程的流程圖。圖4給出了示出按照本發(fā)明實(shí)施方式的自動(dòng)驗(yàn)證和更新軟件的過程的流程圖。圖5給出了示出按照本發(fā)明實(shí)施方式將軟件歸檔并將其從主存儲(chǔ)庫移除的過程 的流程圖。
具體實(shí)施例方式給出下文描述是為了使本領(lǐng)域技術(shù)人員能夠?qū)嵺`和使用本發(fā)明,并且下文描述是 在特定應(yīng)用及其需求的上下文中提供的。對于本領(lǐng)域技術(shù)人員而言,對所公開實(shí)施方式的 各種修改將是易見的,而且在不脫離本發(fā)明的精神和范圍的情況下,可以將在此限定的一 般性原理應(yīng)用于其他實(shí)施方式和應(yīng)用。由此,本發(fā)明并不限于所示實(shí)施方式,而是按照在此 公開的原理和特征的最寬范圍。
具體實(shí)施方式
中描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,該介 質(zhì)可以是能夠存儲(chǔ)代碼和/或數(shù)據(jù)以供計(jì)算機(jī)系統(tǒng)使用的任何設(shè)備或者介質(zhì)。計(jì)算機(jī)可讀 存儲(chǔ)介質(zhì)包括但不限于易失性存儲(chǔ)器,非易失性存儲(chǔ)器,諸如盤驅(qū)動(dòng)、磁帶、⑶(壓縮盤)、 DVD(數(shù)字通用盤或者數(shù)字視頻盤)的磁性和光學(xué)存儲(chǔ)設(shè)備,或者現(xiàn)在已知或?qū)黹_發(fā)的能 夠存儲(chǔ)計(jì)算機(jī)可讀介質(zhì)的其他介質(zhì)。
具體實(shí)施方式
部分中所描述的方法和過程可以具體化為代碼和/或數(shù)據(jù),其可以 存儲(chǔ)在如上所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。當(dāng)計(jì)算機(jī)系統(tǒng)讀取和執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存 儲(chǔ)介質(zhì)上的代碼和/或數(shù)據(jù)時(shí),計(jì)算機(jī)系統(tǒng)執(zhí)行具體化為數(shù)據(jù)結(jié)構(gòu)和代碼并存儲(chǔ)在計(jì)算機(jī) 可讀存儲(chǔ)介質(zhì)中的方法和過程。此外,下文描述的方法和過程可以包括在硬件模塊中。例 如,硬件模塊可以包括但不限于專用集成電路(ASIC)芯片,現(xiàn)場可編程門陣列(FPGA),以及現(xiàn)在已知或?qū)黹_發(fā)的其他可編程邏輯器件。當(dāng)硬件模塊激活時(shí),該硬件模塊執(zhí)行包括 在該硬件模塊中的方法和過程。圖1示出了按照本發(fā)明實(shí)施方式的計(jì)算機(jī)系統(tǒng)的聯(lián)網(wǎng)集合。更具體地,圖1中所 示的示例性系統(tǒng)包括主站點(diǎn)107,其包含主存儲(chǔ)庫,主存儲(chǔ)庫包含最終要分發(fā)至多個(gè)用戶站 點(diǎn)110-116的軟件。主站點(diǎn)107還將軟件傳播到從站點(diǎn)108-109,從站點(diǎn)108-109包含主存 儲(chǔ)庫的副本。這些副本充當(dāng)“第二層存儲(chǔ)庫”,其可以用來將軟件分發(fā)給通常比較靠近從站 點(diǎn)的用戶站點(diǎn)。更具體地,參考圖1,從站點(diǎn)108將軟件分發(fā)給用戶站點(diǎn)113-114,而從站點(diǎn) 109將軟件分發(fā)給用戶站點(diǎn)115-116。注意,如果軟件項(xiàng)在從站點(diǎn)108處不可用,則主站點(diǎn) 107可以繞過從站點(diǎn)108并將軟件項(xiàng)直接分發(fā)給用戶站點(diǎn)114。(注意,軟件項(xiàng)可以同時(shí)或 者隨后遞送到從站點(diǎn)108。)而且,每個(gè)用戶站點(diǎn)包括用于系統(tǒng)的瘦客戶端,其可以容易地安裝在不同的計(jì)算 平臺(tái)上,并且促進(jìn)主站點(diǎn)107與從站點(diǎn)108-109之間的數(shù)據(jù)傳送。更具體地,在圖1中,用 戶站點(diǎn)113包括瘦客戶端120,其包含促進(jìn)將軟件從從站點(diǎn)108遞送到用戶站點(diǎn)113的代 碼。例如,瘦客戶端120可以包括基于web的圖形用戶界面(GUI),其允許用戶選擇將要遞 送的軟件項(xiàng)以及關(guān)聯(lián)的遞送選項(xiàng)。該基于web的GUI還可以允許用戶在各種分發(fā)協(xié)議之間 進(jìn)行選擇。注意,站點(diǎn)107-116可以屬于不同的組織,或者備選地可以屬于相同組織。例如, 在本發(fā)明的一個(gè)實(shí)施方式中,主站點(diǎn)107和從站點(diǎn)108-109屬于軟件分發(fā)者,而用戶站點(diǎn) 110-116屬于軟件分發(fā)者的客戶。在另一實(shí)施方式中,主站點(diǎn)107、從站點(diǎn)108-109和用戶 站點(diǎn)110-116都屬于相同的組織,其中用戶站點(diǎn)110-116是該組織的地理上分布的辦公室。上述站點(diǎn)107-116通常可以包括任何類型的計(jì)算機(jī)系統(tǒng)或者計(jì)算設(shè)備,其可以基 于微處理器、大型計(jì)算機(jī)、數(shù)字信號處理器、便攜式計(jì)算設(shè)備、個(gè)人組織器、設(shè)備控制器或者 工具內(nèi)的計(jì)算引擎。站點(diǎn)107-116通過網(wǎng)絡(luò)(未示出)彼此通信,網(wǎng)絡(luò)可以包括能夠?qū)⒂?jì)算節(jié)點(diǎn)耦合 在一起的、任何類型的有線或者無線通信信道。該網(wǎng)絡(luò)可以包括但不限于局域網(wǎng),廣域網(wǎng) 或者網(wǎng)絡(luò)組合。在本發(fā)明的一個(gè)實(shí)施方式中,網(wǎng)絡(luò)包括因特網(wǎng)。在本發(fā)明的某些實(shí)施方式 中,網(wǎng)絡(luò)包括電話網(wǎng)絡(luò)和蜂窩電話網(wǎng)絡(luò)。主站點(diǎn)圖2示出了按照本發(fā)明實(shí)施方式的主站點(diǎn)107的結(jié)構(gòu)。主站點(diǎn)107包括與主存 儲(chǔ)庫202、歸檔存儲(chǔ)庫210以及站點(diǎn)數(shù)據(jù)庫(站點(diǎn)DB) 214通信的計(jì)算引擎212。如上所述,計(jì)算引擎212通常可以包括任何類型的計(jì)算機(jī)系統(tǒng)或者計(jì)算設(shè)備,其 可以基于微處理器、大型計(jì)算機(jī)、數(shù)字信號處理器、便攜式計(jì)算設(shè)備、個(gè)人組織器、設(shè)備控制 器或者工具內(nèi)的計(jì)算引擎。主存儲(chǔ)庫202存儲(chǔ)不同軟件項(xiàng)的產(chǎn)品版本,其例如可以包括不同的軟件模塊、軟 件包、軟件應(yīng)用和/或軟件工具。更具體地,主存儲(chǔ)庫202可以包括不同的盤片,其包含不 同類型的軟件。例如,主存儲(chǔ)庫202可以包含用于產(chǎn)品應(yīng)用204、第三方應(yīng)用206和免費(fèi)軟 件208的盤片。注意,主存儲(chǔ)庫202還可以存儲(chǔ)其他類型的非軟件內(nèi)容,諸如包含文本信息 的數(shù)據(jù)文件,或者包含圖像、聲音或者視頻的媒體文件。
歸檔存儲(chǔ)庫210包含不同軟件項(xiàng)的壓縮表示,或者用戶站點(diǎn)110-116處的用戶不 再訪問或使用的任何其他類型的內(nèi)容。站點(diǎn)DB 214包含關(guān)于哪些軟件項(xiàng)存儲(chǔ)在特定用戶站點(diǎn)上的信息。例如,站點(diǎn)DB 可以存儲(chǔ)站點(diǎn)標(biāo)識符、站點(diǎn)名稱、與用戶站點(diǎn)相關(guān)聯(lián)的客戶的名稱、客戶的聯(lián)系信息、以及 指示要將哪些軟件項(xiàng)遞送到哪些站點(diǎn)以及何時(shí)將特定軟件項(xiàng)遞送到特定站點(diǎn)的遞送信息。 站點(diǎn)DB 214還存儲(chǔ)用于用戶站點(diǎn)的優(yōu)選遞送方法(例如,rsynC、ftp)。站點(diǎn)DB還存儲(chǔ)必 須隨同媒體遞送到站點(diǎn)的所有相關(guān)性信息。該相關(guān)性信息可以包括但不限于用于模塊文 件、默認(rèn)版本文件或者任何其他應(yīng)用/媒體目錄的指示符。注意,上述某些信息可以用于計(jì) 費(fèi)目的,這將在下文更為詳細(xì)地描述。站點(diǎn)DB 214還包含指定如何使用軟件項(xiàng)的使用信息。更具體地,使用信息可以指 示(1)訪問軟件項(xiàng)的日期和時(shí)間,(2)關(guān)聯(lián)用戶,(3)關(guān)聯(lián)機(jī)器,(4)軟件項(xiàng)的類別和版本號, 以及(5)軟件項(xiàng)是否被加載或者卸載。注意,如下文更詳細(xì)地描述的,該信息可以在歸檔和 移除過程中使用。該信息還可以用于主動(dòng)將用戶注冊為接收針對某類軟件的更新。例如, 如果系統(tǒng)確定用戶頻繁訪問特定類別的項(xiàng),則系統(tǒng)可以根據(jù)趨勢分析而自動(dòng)地將用戶注冊 為接收針對該特定類別中的軟件的更新。注意,主站點(diǎn)107可以使用“推送模型”或者“拉取模型”將軟件分發(fā)到用戶站點(diǎn)。 更具體地,主站點(diǎn)107包括模式選擇機(jī)制200,其將同步模式選擇為“推送”或者“拉取”。在 推送模型下,數(shù)據(jù)226 (包括軟件項(xiàng))從主站點(diǎn)107或者從站點(diǎn)直接推送到用戶站點(diǎn)。與之 相反,在拉取模型下,主站點(diǎn)107向用戶站點(diǎn)發(fā)送通知(諸如電子郵件消息),指示可以從指 定的文件傳輸協(xié)議(FTP)服務(wù)器222下載軟件項(xiàng)。注意,在FTP服務(wù)器222上為每個(gè)客戶 分配有專用的、不公開的且安全的區(qū)域。而且,F(xiàn)TP服務(wù)器222被配置為不知情(blind)和 單向,以便僅供客戶下載。還要注意,F(xiàn)TP下載需要注冊的用戶名和口令。用戶站點(diǎn)繼而在 用戶站點(diǎn)準(zhǔn)備好下載軟件項(xiàng)時(shí)進(jìn)行下載。注意,在指定的時(shí)段之后,F(xiàn)TP服務(wù)器222將自動(dòng) 刪除所有用戶站點(diǎn)軟件遞送。在本發(fā)明的一個(gè)實(shí)施方式中,系統(tǒng)可以選擇性地使用不同的分發(fā)協(xié)議來分發(fā)軟 件,諸如“rsync”協(xié)議(其對UNIX文件和目錄進(jìn)行同步)、遠(yuǎn)程shell (RSH)協(xié)議、安全 shell (SSH)協(xié)議或者 FTP。在本發(fā)明的一個(gè)實(shí)施方式中,系統(tǒng)創(chuàng)建并行流,以便將新的或者經(jīng)修改的軟件項(xiàng) 并行地發(fā)送給不同的客戶,其中每個(gè)客戶都具有獨(dú)立的流。注意,在每個(gè)流內(nèi),可以順序地 分發(fā)軟件項(xiàng)。因此,如果要將三個(gè)軟件項(xiàng)發(fā)送給給定客戶,則這三個(gè)軟件項(xiàng)將在針對該給定 客戶的專用流中發(fā)送。然而,在專用流內(nèi),這三個(gè)軟件項(xiàng)將串行(serially)發(fā)送。在某些實(shí)施方式中,系統(tǒng)還支持基于時(shí)間的遞送,其中軟件項(xiàng)的遞送可以延遲到 較不繁忙的時(shí)間(通常是下班時(shí)間)期間進(jìn)行,從而最小化將會(huì)影響其因特網(wǎng)連接的用戶 站點(diǎn)用戶的可能的帶寬競爭問題。在某些實(shí)施方式中,系統(tǒng)還跟蹤與軟件工具相關(guān)聯(lián)的包之間的相關(guān)性。這使得系 統(tǒng)例如能夠在已經(jīng)遞送了包括軟件工具的其他包之后,遞送諸如模塊文件或者庫文件之類 的補(bǔ)充包。在某些實(shí)施方式中,在將軟件分發(fā)給用戶站點(diǎn)時(shí),系統(tǒng)自動(dòng)改變程序代碼中的硬 編碼路徑名稱,使得路徑名稱映射至不同用戶站點(diǎn)處的不同目錄中的有效位置。這可以包括站點(diǎn)級映射和應(yīng)用級映射二者。例如,對于屬于ABC公司的站點(diǎn),系統(tǒng)可以將“/remote/ foobar,,自動(dòng)映射為“ /remote/ABC”。然而,對于屬于ABC公司的站點(diǎn)上的Synthesi s (合 成)應(yīng)用而言,系統(tǒng)可以將“/remote/foobar”自動(dòng)映射為“/remote/ABC/synthesis”。在某些實(shí)施方式中,主站點(diǎn)107處的計(jì)算引擎212執(zhí)行“更新檢查”操作,以確定 主存儲(chǔ)庫202是否包含需要分發(fā)給用戶站點(diǎn)的新的或更新的軟件項(xiàng)。更具體地,更新檢查 包括首先創(chuàng)建存儲(chǔ)庫中所有項(xiàng)的列表匯編,并將該匯編與最后生成的匯編進(jìn)行比較,以確 定是否已經(jīng)添加了新的類別。(通過指定的配置設(shè)定,計(jì)算引擎212可以每天創(chuàng)建和比較項(xiàng) 目列表N次。)更新檢查還包括對主存儲(chǔ)庫202中整個(gè)存儲(chǔ)庫的修改時(shí)間的第二級檢查,以 確定是否發(fā)生過任何改變。如果修改時(shí)間指示發(fā)生了某些改變,則系統(tǒng)標(biāo)識主存儲(chǔ)庫202 中任何新的或者已修改的軟件項(xiàng)。這使得系統(tǒng)能夠按照需要將該新的或經(jīng)修改的軟件項(xiàng)分 發(fā)給用戶站點(diǎn)。在某些實(shí)施方式中,系統(tǒng)支持自監(jiān)測多級通知/網(wǎng)絡(luò)延時(shí)檢測特征。在這些實(shí)施 方式中,通過檢查同步是否在將內(nèi)容遞送給特定用戶站點(diǎn)中正有所進(jìn)展,以及針對特定用 戶站點(diǎn)的吞吐量是否在預(yù)定的可接受范圍之內(nèi),計(jì)算引擎212能夠(通過多級監(jiān)測技術(shù)) 監(jiān)測其自己的同步狀態(tài)。更具體地,在某些實(shí)施方式中,系統(tǒng)支持兩級監(jiān)測,包括(1)監(jiān)測 同步狀態(tài)以及(2)監(jiān)測吞吐量。在檢測同步狀態(tài)的同時(shí),計(jì)算引擎212檢查對用戶站點(diǎn)的同步是否按照預(yù)期進(jìn) 展。如果同步過程針對特定用戶站點(diǎn)的運(yùn)行長于預(yù)定時(shí)段,則計(jì)算引擎212可以發(fā)送電子 郵件消息形式的通信提示,以警告系統(tǒng)管理員已經(jīng)檢測到了問題,并且可能沒有滿足所需 的服務(wù)級協(xié)議(SLA)。注意,每個(gè)用戶站點(diǎn)可被獨(dú)立編程, 以指定有效同步過程的適當(dāng)持續(xù) 時(shí)間,以及指定在出現(xiàn)問題時(shí)要通知的一個(gè)或多個(gè)人員。而且,計(jì)算引擎212可以配置為在 預(yù)定的時(shí)間檢查每個(gè)用戶站點(diǎn)的狀態(tài)。在監(jiān)測吞吐量的同時(shí),計(jì)算引擎212檢查對用戶站點(diǎn)的每個(gè)遞送的吞吐率,以檢 測網(wǎng)絡(luò)帶寬的任何不利變化。此類不利變化可能導(dǎo)致帶寬降低,并可能由此導(dǎo)致對用戶站 點(diǎn)的遞送的吞吐量下降到針對此類遞送的已建立標(biāo)準(zhǔn)之下。如果對于指定的用戶站點(diǎn),吞 吐率從之前的已建立速率有所下降,則可以向管理員發(fā)送電子郵件消息形式的通信提示。 更具體地,在每個(gè)遞送之后,計(jì)算引擎212可以將每個(gè)遞送的當(dāng)前吞吐量與站點(diǎn)的預(yù)期吞 吐量進(jìn)行比較,并且可以在最近遞送的吞吐量顯著降低的情況下提示管理員。可以針對計(jì) 算引擎212中注冊的用戶站點(diǎn)的每個(gè)唯一的同步流執(zhí)行該檢查。用戶站點(diǎn)圖2B示出了按照本發(fā)明實(shí)施方式的用戶站點(diǎn)113的結(jié)構(gòu)。用戶站點(diǎn)113包括用 戶存儲(chǔ)庫232,其包含之前從主站點(diǎn)107獲得的軟件項(xiàng)的本地副本。用戶站點(diǎn)113還包括盤空間監(jiān)測器234,其跟蹤用戶存儲(chǔ)庫232中有多少盤空間 可用。在軟件遞送過程期間,盤空間監(jiān)測器234確定用戶站點(diǎn)113是否具有足夠的空間來 容納遞送。這可以包括將可用盤空間與將要遞送的軟件項(xiàng)的大小(以及各種閾值)進(jìn)行比 較。如果需要,系統(tǒng)發(fā)送兩級提示,其通知系統(tǒng)管理員(或者其他負(fù)責(zé)人員)(1)盤空間 “低”并且遞送在繼續(xù),或者(2)盤空間“非常低”并且無法促進(jìn)后續(xù)遞送。用戶站點(diǎn)113還包括應(yīng)用使用分析器230,其跟蹤軟件項(xiàng)的使用信息。如上所述, 該使用信息可以指定(1)訪問軟件項(xiàng)的日期和時(shí)間,(2)關(guān)聯(lián)用戶,(3)關(guān)聯(lián)機(jī)器,(4)軟件項(xiàng)的類別和版本號,以及(5)軟件項(xiàng)是否被加載或卸載。注意,該信息可以傳送至主站點(diǎn) 107,以便在歸檔移除過程中使用,這將在下文更為詳細(xì)地描述。使用信息可選地支持從最 常使用的媒體的計(jì)算引擎212到目標(biāo)用戶站點(diǎn)的自動(dòng)同步。分發(fā)軟件圖3給出了示出按照本發(fā)明實(shí)施方式的分發(fā)軟件的過程的流程圖。在操作期間, 系統(tǒng)接收來自用戶的選擇,其中該選擇指定將要從主站點(diǎn)遞送到用戶站點(diǎn)的軟件項(xiàng)(步驟 302)。注意,該選擇可以接收自位于用戶站點(diǎn)之一處的用戶。而且,該選擇可以與購買協(xié)議、 許可協(xié)議或者使用該軟件的其他任何類型的合同相關(guān)聯(lián)。系統(tǒng)還可以從用戶接收其他類型的信息。例如,系統(tǒng)可以附加地從用戶接收優(yōu)先 級信息,其指定遞送選定軟件項(xiàng)的優(yōu)先級(步驟304)。這使得系統(tǒng)能夠首先遞送較為重要 或者時(shí)間要求較嚴(yán)格的軟件項(xiàng)。系統(tǒng)還可以從用戶接收遞送選項(xiàng),其中遞送選項(xiàng)指定如何 遞送選定的軟件項(xiàng)(步驟306)。例如,選定的軟件項(xiàng)可以基于預(yù)定的安排進(jìn)行遞送,或者備 選地,其可以在用戶請求遞送時(shí)按需遞送。接下來,系統(tǒng)基于優(yōu)先級信息來確定期望的遞送順序(步驟308)。系統(tǒng)繼而按照 所確定的遞送順序以及選定的遞送選項(xiàng),將選定的軟件項(xiàng)從主站點(diǎn)107遞送至用戶站點(diǎn)。 在此過程期間,系統(tǒng)迭代地執(zhí)行以下動(dòng)作將選定的軟件項(xiàng)從主站點(diǎn)發(fā)送到用戶站點(diǎn)(步 驟310);以及在發(fā)送下一選定軟件項(xiàng)之前,確認(rèn)該選定項(xiàng)的遞送(步驟312)。注意,如果無 法確認(rèn)給定軟件項(xiàng)的遞送,則系統(tǒng)可以重發(fā)該給定軟件項(xiàng)。(與之相反,在拉取模型下,主站 點(diǎn)107向用戶站點(diǎn)發(fā)送通知,指示選定軟件項(xiàng)已準(zhǔn)備好遞送,并且用戶站點(diǎn)從主站點(diǎn)107內(nèi) 的FTP服務(wù)器222拉取軟件。)在某些實(shí)施方式中,系統(tǒng)附加地計(jì)算遞送選定軟件項(xiàng)的費(fèi)用(步驟314)。例如,費(fèi) 用可以基于安裝選定軟件項(xiàng)的復(fù)雜性;選定軟件項(xiàng)的大小;和/或組成選定軟件項(xiàng)的文件 的數(shù)目。系統(tǒng)繼而可以基于所計(jì)算的費(fèi)用向用戶收費(fèi)。賬單還可以包括針對來源于不同源 的媒體的不同遞送成本,并且這些不同遞送成本可以合并到同一賬單中。在本發(fā)明的某些實(shí)施方式中,在遞送選定軟件項(xiàng)之后,系統(tǒng)自動(dòng)地將對選定軟件 項(xiàng)的更新從主站點(diǎn)推送至用戶站點(diǎn)以及已加載了相同軟件的任何其他用戶站點(diǎn)(步驟 316)。驗(yàn)證和更新軟件圖4給出了示出按照本發(fā)明實(shí)施方式的自動(dòng)驗(yàn)證和更新軟件的過程的流程圖。在 操作期間,系統(tǒng)在用戶站點(diǎn)處從主站點(diǎn)107接收主列表(也稱為“清單”),其中主列表指定 了可以安裝在用戶站點(diǎn)上的軟件項(xiàng)(步驟402)。在某些實(shí)施方式中,只要主列表在主站點(diǎn) 上更新,就接收主列表。系統(tǒng)還周期性地生成用戶站點(diǎn)上的實(shí)際列表(清單),其指示在用戶站點(diǎn)上實(shí)際 安裝的軟件項(xiàng)(步驟404)。注意,該過程可以包括標(biāo)識在用戶站點(diǎn)處安裝了哪些軟件項(xiàng),以 及繼而驗(yàn)證所標(biāo)識的軟件項(xiàng)在用戶站點(diǎn)處是否有效安裝。在某些實(shí)施方式中,驗(yàn)證給定的 軟件項(xiàng)是否有效安裝包括驗(yàn)證該給定軟件項(xiàng)的以下屬性版本號,文件數(shù)目,和/或安裝的 大小和/或校驗(yàn)和。系統(tǒng)繼而將實(shí)際列表與主列表進(jìn)行比較(步驟406)。如果實(shí)際列表與主列表不一 致(步驟408- “是”),系統(tǒng)執(zhí)行補(bǔ)救動(dòng)作,這可以包括將不一致自動(dòng)地通知給負(fù)責(zé)該用戶站點(diǎn)的系統(tǒng)管理員(步驟410)。這還可以包括自動(dòng)從主站點(diǎn)向用戶站點(diǎn)重傳丟失的、更新 的或者損壞的軟件項(xiàng)(步驟412)。在重傳之后,系統(tǒng)通過在用戶站點(diǎn)處執(zhí)行檢查來確定重 傳是否成功。系統(tǒng)繼而將重傳狀態(tài)通知給系統(tǒng)管理員(步驟414)。如果重傳不成功,系統(tǒng) 可以返回步驟412,以再次重傳軟件項(xiàng)(如步驟414到步驟412的返回箭頭所示)。在不成 功地進(jìn)行N次重傳之后,系統(tǒng)可以將該問題通知給管理員,并建議管理員可能需要人工重 傳來解決和/或調(diào)試該問題。歸檔和移除軟件圖5給出了示出按照本發(fā)明的實(shí)施方式將軟件歸檔并將其從主存儲(chǔ)庫移除的過 程的流程圖。在此過程期間,系統(tǒng)標(biāo)識哪些軟件項(xiàng)在先前時(shí)段內(nèi)未在用戶站點(diǎn)處加載或者 使用(步驟502)。例如,每個(gè)用戶站點(diǎn)可以跟蹤在該用戶站點(diǎn)處加載了哪些軟件項(xiàng)。繼而 可以將該信息周期性地發(fā)送給主站點(diǎn)。這使得主站點(diǎn)能夠標(biāo)識在先前一段時(shí)段(例如,90 天)內(nèi)未在任何用戶站點(diǎn)處被加載的軟件項(xiàng)。在先前時(shí)段內(nèi)未加載軟件項(xiàng)這一事實(shí)指示 該軟件項(xiàng)可能在將來也不會(huì)被加載。接下來,為了節(jié)約主存儲(chǔ)庫中的盤空間,系統(tǒng)對所標(biāo)識的軟件項(xiàng)歸檔并將其從主 存儲(chǔ)庫移除。這可以包括壓縮所標(biāo)識的軟件項(xiàng)(步驟504);將經(jīng)過壓縮的軟件項(xiàng)存儲(chǔ)在歸 檔存儲(chǔ)庫中(步驟506);以及將所標(biāo)識的軟件項(xiàng)從主站點(diǎn)上的主存儲(chǔ)庫移除(步驟508)。注意,如果在將來有所請求,可以恢復(fù)已歸檔的軟件項(xiàng)。這包括從歸檔存儲(chǔ)庫獲 取軟件項(xiàng);解壓縮軟件項(xiàng);以及繼而將解壓縮的軟件項(xiàng)恢復(fù)到主存儲(chǔ)庫,使其可以按照需 要分發(fā)給用戶站點(diǎn)。僅僅出于示例和描述目的,給出了對實(shí)施方式的上文描述。其并非意在窮盡或是 將本發(fā)明限于所公開的形式。因此,多種修改和變形對于本領(lǐng)域技術(shù)人員而言將是易見的。 而且,上述公開內(nèi)容并不意在限制本發(fā)明。本發(fā)明的范圍由所附權(quán)利要求書限定。
權(quán)利要求
一種用于對從主站點(diǎn)分發(fā)到用戶站點(diǎn)的軟件進(jìn)行驗(yàn)證的方法,包括在所述用戶站點(diǎn)處從所述主站點(diǎn)接收主列表,其中所述主列表指定可以在所述用戶站點(diǎn)上安裝的軟件項(xiàng);在所述用戶站點(diǎn)上生成實(shí)際列表,所述實(shí)際列表指示在所述用戶站點(diǎn)上實(shí)際安裝了哪些軟件項(xiàng);比較所述實(shí)際列表與所述主列表;以及如果所述實(shí)際列表與所述主列表不一致,則執(zhí)行補(bǔ)救動(dòng)作。
2.如權(quán)利要求1所述的方法,其中所述補(bǔ)救動(dòng)作可以包括 將所述不一致通知給負(fù)責(zé)所述用戶站點(diǎn)的系統(tǒng)管理員;以及將丟失的、更新的或者損壞的軟件項(xiàng)從所述主站點(diǎn)重傳至所述用戶站點(diǎn)。
3.如權(quán)利要求1所述的方法,其中從所述主站點(diǎn)接收所述主列表包括當(dāng)所述主列表在所述主站點(diǎn)上更新時(shí)接收所 述主列表;以及其中生成所述實(shí)際列表包括周期性地在所述用戶站點(diǎn)上生成所述實(shí)際列表。
4.如權(quán)利要求1的所述方法,其中生成所述實(shí)際列表包括 標(biāo)識在所述用戶站點(diǎn)處安裝了哪些軟件項(xiàng);以及驗(yàn)證已標(biāo)識的軟件項(xiàng)在所述用戶站點(diǎn)處是否有效安裝。
5.如權(quán)利要求4的所述方法,其中驗(yàn)證給定軟件項(xiàng)是否有效安裝包括驗(yàn)證所述給定軟 件項(xiàng)的一個(gè)或多個(gè)以下屬性版本號; 文件數(shù)目; 安裝的大小;以及 校驗(yàn)和。
6.一種存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述指令由計(jì)算機(jī)執(zhí)行時(shí),其致使所述 計(jì)算機(jī)執(zhí)行用于對從主站點(diǎn)分發(fā)到用戶站點(diǎn)的軟件進(jìn)行驗(yàn)證的方法,所述方法包括在所述用戶站點(diǎn)處從所述主站點(diǎn)接收主列表,其中所述主列表指定可以在所述用戶站 點(diǎn)上安裝的軟件項(xiàng);在所述用戶站點(diǎn)上生成實(shí)際列表,所述實(shí)際列表指示在所述用戶站點(diǎn)上實(shí)際安裝了哪 些軟件項(xiàng);比較所述實(shí)際列表與所述主列表;以及如果所述實(shí)際列表與所述主列表不一致,則執(zhí)行補(bǔ)救動(dòng)作。
7.如權(quán)利要求6所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述補(bǔ)救動(dòng)作可以包括 將所述不一致通知給負(fù)責(zé)所述用戶站點(diǎn)的系統(tǒng)管理員;以及將丟失的、更新的或者損壞的軟件項(xiàng)從所述主站點(diǎn)重傳至所述用戶站點(diǎn)。
8.如權(quán)利要求6所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中從所述主站點(diǎn)接收所述主列表包括當(dāng)所述主列表在所述主站點(diǎn)上更新時(shí)接收所 述主列表;以及其中生成所述實(shí)際列表包括周期性地在所述用戶站點(diǎn)上生成所述實(shí)際列表。
9.如權(quán)利要求6所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中生成所述實(shí)際列表包括標(biāo)識在所述用戶站點(diǎn)處安裝了哪些軟件項(xiàng);以及 驗(yàn)證已標(biāo)識的軟件項(xiàng)在所述用戶站點(diǎn)處是否有效安裝。
10.如權(quán)利要求9所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中驗(yàn)證給定軟件項(xiàng)是否有效安裝包 括驗(yàn)證所述給定軟件項(xiàng)的一個(gè)或多個(gè)以下屬性版本號; 文件數(shù)目; 安裝的大小;以及 校驗(yàn)和。
11.一種對從主站點(diǎn)分發(fā)到用戶站點(diǎn)的軟件進(jìn)行驗(yàn)證的設(shè)備,包括接收裝置,其配置用于在所述用戶站點(diǎn)處從所述主站點(diǎn)接收主列表,其中所述主列表 指定可以在所述用戶站點(diǎn)上安裝的軟件項(xiàng);列表生成裝置,其配置用于在所述用戶站點(diǎn)上生成實(shí)際列表,所述實(shí)際列表指示在所 述用戶站點(diǎn)上實(shí)際安裝了哪些軟件項(xiàng);比較裝置,其配置用于比較所述實(shí)際列表與所述主列表;以及 其中,如果所述實(shí)際列表與所述主列表不一致,則所述設(shè)備配置用于執(zhí)行補(bǔ)救動(dòng)作。
12.如權(quán)利要求11所述的設(shè)備,其中所述補(bǔ)救動(dòng)作可以包括 將所述不一致通知給負(fù)責(zé)所述用戶站點(diǎn)的系統(tǒng)管理員;以及將丟失的、更新的或者損壞的軟件項(xiàng)從所述主站點(diǎn)重傳至所述用戶站點(diǎn)。
13.如權(quán)利要求11所述的設(shè)備,其中所述接收裝置配置用于當(dāng)所述主列表在所述主站點(diǎn)上更新時(shí)接收所述主列表;以及其中所述列表生成裝置配置用于周期性地在所述用戶站點(diǎn)上生成所述實(shí)際列表。
14.如權(quán)利要求11所述的設(shè)備,其中在生成所述實(shí)際列表時(shí),所述列表生成裝置配置 用于標(biāo)識在所述用戶站點(diǎn)處安裝了哪些軟件項(xiàng);以及 驗(yàn)證已標(biāo)識的軟件項(xiàng)在所述用戶站點(diǎn)處是否有效安裝。
15.如權(quán)利要求14所述的設(shè)備,其中在驗(yàn)證給定軟件項(xiàng)是否有效安裝時(shí),所述列表生 成裝置配置用于驗(yàn)證所述給定軟件項(xiàng)的一個(gè)或多個(gè)以下屬性版本號; 文件數(shù)目; 安裝的大小;以及 校驗(yàn)和。全文摘要
本發(fā)明的某些實(shí)施方式提供一種用于對從主站點(diǎn)分發(fā)到用戶站點(diǎn)的軟件進(jìn)行驗(yàn)證的系統(tǒng)。在操作期間,該系統(tǒng)在用戶站點(diǎn)處從主站點(diǎn)接收主列表,其中主列表指定可以在用戶站點(diǎn)上安裝的軟件項(xiàng)。該系統(tǒng)還在用戶站點(diǎn)上生成實(shí)際列表,其指示在用戶站點(diǎn)上實(shí)際安裝了哪些軟件項(xiàng)。該系統(tǒng)繼而比較實(shí)際列表與主列表;以及如果實(shí)際列表與主列表不一致,則系統(tǒng)執(zhí)行補(bǔ)救動(dòng)作。
文檔編號G06F17/30GK101952816SQ200980000261
公開日2011年1月19日 申請日期2009年8月11日 優(yōu)先權(quán)日2008年9月29日
發(fā)明者J·明凱爾里, S·西塞拉曼 申請人:新思科技有限公司