專利名稱:使用第三方目標(biāo)狀態(tài)的適用性檢測(cè)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件更新,尤其涉及在虛擬機(jī)中檢測(cè)需要的更新。
背景技術(shù):
隨著處理能力走向通過虛擬機(jī)實(shí)例來管理功能的模型,顧客正通過虛擬機(jī)映像庫 來管理他們的基礎(chǔ)結(jié)構(gòu)。在該模型中,虛擬機(jī)在需要時(shí)運(yùn)行,而在不需要時(shí)被掛起。通過將 虛擬機(jī)映像復(fù)制到額外的硬件上來添加容量。作為管理該映像庫的一部分,管理員需要確保映像中的軟件當(dāng)前具有最新的軟件 更新(如安全補(bǔ)丁、附加功能等)。傳統(tǒng)上,這是通過運(yùn)行虛擬機(jī)然后在虛擬機(jī)中執(zhí)行更新 代理來完成的。盡管這允許虛擬機(jī)被更新,但是該機(jī)制是一種重要的維護(hù)活動(dòng),它消耗計(jì)算 資源且對(duì)于管理虛擬機(jī)的管理員來說可能是耗時(shí)且乏味的。在此要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在諸如上述環(huán)境中操作的各個(gè)實(shí) 施例。相反,提供該背景僅用以示出在其中可實(shí)踐在此描述的部分實(shí)施例的一個(gè)示例性技 術(shù)領(lǐng)域。
發(fā)明內(nèi)容
簡(jiǎn)單來說,這里所描述的主題的各方面涉及檢測(cè)需要的更新。在各方面中,更新代 理接收掃描用于目標(biāo)的更新的請(qǐng)求。目標(biāo)可包括虛擬設(shè)備或非虛擬設(shè)備。該請(qǐng)求可包括一 個(gè)或多個(gè)規(guī)則,指示出要檢查來確定設(shè)備的屬性的資源。更新代理使用資源訪問器來訪問 所述規(guī)則指示的資源。資源訪問器將所述更新代理所指示的資源名稱映射到所述目標(biāo)的對(duì) 應(yīng)的資源名稱。更新代理可通過設(shè)計(jì)來消除不相關(guān)更新的多程協(xié)議向更新源提供評(píng)估所述 規(guī)則的結(jié)果。提供本概述是為了簡(jiǎn)要地標(biāo)識(shí)在以下詳細(xì)描述中進(jìn)一步描述的主題的一些方面。 本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要 求保護(hù)的主題的范圍。除非上下文清楚地指出,否則短語“此處所描述主題”指的是詳細(xì)描述中所描述的 主題。術(shù)語“方面”被當(dāng)作“至少一個(gè)方面”。標(biāo)識(shí)詳細(xì)描述中所描述的主題的各方面不旨 在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征。上述各方面和此處所描述主題的其它方面是借助于示例說明的,并且不受附圖限 制,附圖中相同的標(biāo)號(hào)指出相似的元素。
圖1是表示其中可結(jié)合此處所描述主題的各方面的示例性通用計(jì)算環(huán)境的框圖;圖2是表示此處所描述的主題的各方面可以在其中實(shí)現(xiàn)的示例性系統(tǒng)的框圖;圖3是概括地表示根據(jù)此處所描述的主題的各方面的、可在檢測(cè)用于目標(biāo)的需要 的更新時(shí)發(fā)生的示例性動(dòng)作的流程圖;以及
圖4是概括地表示根據(jù)此處所描述的主題的各方面的、可在訪問目標(biāo)上的資源時(shí) 發(fā)生的示例性動(dòng)作的流程圖。
具體實(shí)施例方式定義如此處所使用的,術(shù)語“包括”及其變體被當(dāng)作開放式術(shù)語,表示“包括但不限于”。 除非上下文清楚地指示出,否則術(shù)語“或”被當(dāng)作“和/或”。術(shù)語“基于”被當(dāng)作“至少部分 基于”。術(shù)語“一個(gè)實(shí)施例”和“一實(shí)施例”被當(dāng)作“至少一個(gè)實(shí)施例”。術(shù)語“另一實(shí)施例” 被當(dāng)作“至少一個(gè)其他實(shí)施例”。其他顯式或隱式定義可包括在下文中。示例性操作環(huán)境圖1示出可在其上實(shí)現(xiàn)此處所描述主題的各方面的合適的計(jì)算系統(tǒng)環(huán)境100的示 例。計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非旨在對(duì)此處所描述主題的各 方面的使用范圍或功能提出任何限制。也不應(yīng)該將計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境 100中示出的任一組件或其組合有任何依賴性或要求。此處所描述的主題的各方面可與眾多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起 操作??蛇m用于這里所述的主題的各方面的已知計(jì)算系統(tǒng)、環(huán)境或配置的例子包括個(gè)人計(jì) 算機(jī)、服務(wù)器計(jì)算機(jī)、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微控制器的系統(tǒng)、機(jī)頂盒、可 編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、打 印機(jī)、包括機(jī)頂盒,媒體中心或其他家電的家電設(shè)備、嵌入汽車或附加到汽車的計(jì)算設(shè)備、 其他移動(dòng)設(shè)備、包括任何上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。此處所描述主題的各方面可在由計(jì)算機(jī)執(zhí)行的諸如程序模塊等計(jì)算機(jī)可執(zhí)行指 令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型 的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。此處所描述的主題的各方面也可以在其中任務(wù)由 通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中, 程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參考圖1,用于實(shí)現(xiàn)此處所描述主題的各方面的示例性系統(tǒng)包括計(jì)算機(jī)110形式 的通用計(jì)算設(shè)備。計(jì)算機(jī)可包括能夠執(zhí)行指令的任何電子設(shè)備。計(jì)算機(jī)110的組件可包 括處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類系統(tǒng)組件耦合至處理單元 120的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ) 器總線或存儲(chǔ)控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作 為示例,而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu) (MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、也稱為夾層 (Mezzanine)總線的外圍部件互連(PCI)總線、擴(kuò)展外圍部件互連(PCI-X)總線、高級(jí)圖形 端 口(AGP)、以及快速 PCI (PCIe)。計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì)算機(jī) 110訪問的任何可用介質(zhì),并包含易失性和非易失性介質(zhì)以及可移動(dòng)、不可移動(dòng)介質(zhì)。作為 示例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其 它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能 盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來儲(chǔ)存所期 望的信息并可由計(jì)算機(jī)110訪問的任一其它介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀 指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號(hào)” 指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作為示例而非 限制,通信設(shè)備介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及諸如聲學(xué)、射頻(RF)、紅 外線及其他無線介質(zhì)之類的無線介質(zhì)。上述的任意組合也應(yīng)包含在計(jì)算機(jī)可讀介質(zhì)的范圍 內(nèi)。系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),如只 讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132?;据斎?輸出系統(tǒng)133 ¢10 包括如 在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,它通常儲(chǔ)存在ROM 131中。 RAM 132通常包含處理單元120可以立即訪問和/或目前正在操作的數(shù)據(jù)和/或程序模塊。 作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù) 137。計(jì)算機(jī)110還可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介 質(zhì)。僅作為示例,圖1示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫入的硬盤驅(qū)動(dòng)器 141,從可移動(dòng)、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動(dòng)器151,以及從諸如⑶ROM 或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤156中讀取或向其寫入的光盤驅(qū)動(dòng)器155??梢栽?該示例性操作環(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包 括磁帶盒、閃存卡、數(shù)字多功能盤、其他光盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū) 動(dòng)器141通常通過諸如接口 140等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121,而磁盤驅(qū)動(dòng)器 151和光盤驅(qū)動(dòng)器155則通常由諸如接口 150等可移動(dòng)存儲(chǔ)器接口連接至系統(tǒng)總線121。以上描述并在圖1中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提 供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤驅(qū)動(dòng) 器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意, 這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137相同,也可 以與它們不同。操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147在這里被 標(biāo)注了不同的附圖標(biāo)記是為了說明至少它們是不同的副本。用戶可以通過輸入設(shè)備,如鍵盤162和定點(diǎn)設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸 板)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手 柄、圓盤式衛(wèi)星天線、掃描儀、觸敏屏、寫字板等。這些和其他輸入設(shè)備通常由耦合至系統(tǒng)總 線的用戶輸入接口 160連接至處理單元120,但也可以由其他接口和總線結(jié)構(gòu),諸如并行端 口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其他類型的顯示設(shè)備也經(jīng)由接口,如視頻接口 190連接至系統(tǒng)總線 121。除監(jiān)視器以外,計(jì)算機(jī)還可以包括其他外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,它 們可以通過輸出外圍接口 195連接。計(jì)算機(jī)110可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接在網(wǎng) 絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常見網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對(duì)于計(jì)算機(jī)110描述的許多或所有元件,盡管在 圖1中只示出存儲(chǔ)器存儲(chǔ)設(shè)備181。圖1中所示的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng) (WAN) 173,但也可以包括其它網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、 內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)110可包括調(diào)制解調(diào)器172或用于通過諸如因特 網(wǎng)等的WAN 173來建立通信的其它裝置。可為內(nèi)置或可為外置的調(diào)制解調(diào)器172可以經(jīng)由 用戶輸入接口 160或其他合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,關(guān)于計(jì)算機(jī) 110所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制, 圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181上。可以理解,所示的網(wǎng)絡(luò)連接是示 例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。更新如上所述,隨著轉(zhuǎn)移到虛擬機(jī),在虛擬機(jī)上更新軟件可能變成重要的維護(hù)活動(dòng)。虛 擬環(huán)境是由計(jì)算機(jī)模仿或模擬的環(huán)境。虛擬環(huán)境可模仿或模擬物理硬件。被模仿或模擬的 這種機(jī)器有時(shí)被稱為虛擬機(jī)。對(duì)于在虛擬機(jī)上執(zhí)行的軟件來說,虛擬機(jī)是一種看上去是物 理機(jī)器的機(jī)器。軟件可在諸如虛擬硬盤驅(qū)動(dòng)器、虛擬軟盤等之類的虛擬存儲(chǔ)設(shè)備中存儲(chǔ)文 件,可從虛擬⑶讀取文件,可經(jīng)虛擬網(wǎng)絡(luò)適配器通信等等。單個(gè)計(jì)算機(jī)上可以主控不止一個(gè)虛擬機(jī)。也就是說,兩個(gè)或更多虛擬機(jī)可在單個(gè) 物理計(jì)算機(jī)上執(zhí)行。對(duì)于在每個(gè)虛擬機(jī)中執(zhí)行的軟件來說,該虛擬機(jī)看上去具有其自己的 硬件,即使單個(gè)計(jì)算機(jī)上主控的多個(gè)虛擬機(jī)可能物理上彼此并與主控操作系統(tǒng)共享一個(gè)或 多個(gè)物理設(shè)備。這里所描述的主題的各方面還可應(yīng)用于應(yīng)用虛擬化。在應(yīng)用虛擬化中,操作系統(tǒng) 的一個(gè)或多個(gè)資源(如注冊(cè)表、文件系統(tǒng)、庫等)被虛擬化并呈現(xiàn)給應(yīng)用。例如這可以通過 截取對(duì)資源的請(qǐng)求的虛擬化層來完成。當(dāng)訪問虛擬化資源時(shí),應(yīng)用相信它正在訪問操作系 統(tǒng)的常規(guī)資源。不論術(shù)語“虛擬機(jī)”在此用于何處,要理解在其他實(shí)施例中,這里的教示也 可應(yīng)用于應(yīng)用虛擬化。盡管在此有時(shí)稱為虛擬機(jī),但是這里所述的主題可應(yīng)用于其他設(shè)備。這里所述的 主題的各方面可適用于非虛擬設(shè)備,如打印機(jī)、路由器、冰箱、手持或膝上型設(shè)備、多處理器 系統(tǒng)、基于微控制器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算 機(jī)、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備、打印機(jī)、包括機(jī)頂盒,媒體中心或其他家電的家電設(shè)備、 嵌入汽車或附加到汽車的計(jì)算設(shè)備、其他移動(dòng)設(shè)備、包括任何上述系統(tǒng)或設(shè)備的分布式計(jì) 算環(huán)境等等。圖2是表示此處所描述的主題的各方面可以在其中實(shí)現(xiàn)的示例性系統(tǒng)的框圖。該 環(huán)境可包括更新請(qǐng)求器205、應(yīng)用程序編程接口(API) 210、更新代理215、更新源220、瞬 時(shí)或持久存儲(chǔ)217、表達(dá)式評(píng)估器225、一個(gè)或多個(gè)資源訪問器230-232、一個(gè)或多個(gè)目標(biāo) 235-237。有時(shí),上述之一可被稱為實(shí)體,且上述兩個(gè)或多個(gè)可被稱為多個(gè)實(shí)體。圖2中示出的實(shí)體是示例性的且不意味著包括一切的可能需要或包括的實(shí)體。在 其他實(shí)施例中,結(jié)合圖2描述的兩個(gè)或多個(gè)實(shí)體和/或功能可被組合、包括在其他實(shí)體中 (未示出)、或劃分成子實(shí)體,而不背離這里所述的主題的各方面的精神和范圍。
實(shí)體可包括計(jì)算機(jī)系統(tǒng)的組件。如這里所使用的,術(shù)語組件要被當(dāng)作包括以下的 全部或一部分設(shè)備、一個(gè)或多個(gè)軟件模塊或其部分的集合、一個(gè)或多個(gè)軟件模塊或其部分 與一個(gè)或多個(gè)設(shè)備或其部分的某種組合等等。實(shí)體可位于彼此相對(duì)接近的位置或可在廣闊區(qū)域上分布。在一個(gè)實(shí)施例中,兩個(gè) 或多個(gè)實(shí)體的組可被主控在同一物理或虛擬機(jī)上。在其他實(shí)施例中,每個(gè)實(shí)體可被主控在 不同的物理或虛擬機(jī)上。主控在不同機(jī)器上的實(shí)體能夠經(jīng)各種網(wǎng)絡(luò)彼此通信,網(wǎng)絡(luò)包括一個(gè)或多個(gè)局域 網(wǎng)、一個(gè)或多個(gè)電話網(wǎng)絡(luò)、一個(gè)或多個(gè)廣域網(wǎng)、直接連接、虛擬連接、專用網(wǎng)絡(luò)、虛擬專用網(wǎng) 絡(luò)、上述的某種組合等等。主控在同一機(jī)器上的實(shí)體能夠經(jīng)進(jìn)程間、進(jìn)程內(nèi)或其他通信信道來彼此通信。更新請(qǐng)求器205可包括經(jīng)API 210請(qǐng)求對(duì)目標(biāo)235-237中的一個(gè)或多個(gè)掃描適用 的更新的組件。例如,更新請(qǐng)求器205可包括接收并響應(yīng)于來自系統(tǒng)管理員或類似者的輸 入的軟件模塊。在管理員指令時(shí),更新請(qǐng)求器205可請(qǐng)求對(duì)某一目標(biāo)掃描適用的更新。作為另一個(gè)例子,更新請(qǐng)求器205可與虛擬機(jī)庫管理器相關(guān)聯(lián)或作為虛擬機(jī)庫管 理器的一部分。周期性地,在接收到新更新的通知時(shí),或在其他時(shí)間,虛擬機(jī)庫管理器可指 令更新請(qǐng)求器205請(qǐng)求庫中的一個(gè)或多個(gè)虛擬機(jī)應(yīng)被掃描。API 210提供編程接口,通過該編程接口指令可被發(fā)送到更新代理215且響應(yīng)可 由更新代理215提供。API 210可提供能由遠(yuǎn)程設(shè)備上的進(jìn)程調(diào)用的接口。更新代理215可包括負(fù)責(zé)檢測(cè)用于一個(gè)或多個(gè)目標(biāo)的適用的更新的組件。更新代 理215可通過對(duì)照一個(gè)或多個(gè)目標(biāo)的資源來評(píng)估一個(gè)或多個(gè)規(guī)則來進(jìn)行。規(guī)則可與一個(gè)或 多個(gè)表達(dá)式相關(guān)聯(lián)或可體現(xiàn)在一個(gè)或多個(gè)表達(dá)式中。該一個(gè)或多個(gè)表達(dá)式可被評(píng)估來確定 目標(biāo)的屬性。這些屬性可包括關(guān)于設(shè)備的軟件、硬件、配置數(shù)據(jù)、應(yīng)用數(shù)據(jù)、狀態(tài)等之類的信 肩、ο例如,屬性可包括安裝在目標(biāo)上的軟件應(yīng)用的版本。作為另一個(gè)例子,屬性可包括 注冊(cè)表或其他數(shù)據(jù)庫中的值。作為另一個(gè)例子,屬性可以是目標(biāo)上所使用的語言。作為又 一個(gè)例子,屬性可以是數(shù)據(jù)庫中的數(shù)據(jù)。作為又一個(gè)例子,屬性可包括關(guān)于安裝在設(shè)備上的 硬件組件的數(shù)據(jù)。某些其他例子包括目標(biāo)的屏幕大小和分辨率、硬盤大小、總RAM、高速緩 存、處理器類型和速度。上述例子并不旨在是包括一切的或是窮舉的。實(shí)際上,在一個(gè)實(shí)施例中,設(shè)備的屬 性可包括關(guān)于設(shè)備的可通過在目標(biāo)上執(zhí)行完全特權(quán)的過程而確定的任何數(shù)據(jù)。規(guī)則可用包括代碼的更新來傳達(dá)。規(guī)則可指示出更新是否適用于目標(biāo)。代碼可包 括如果被應(yīng)用則修改目標(biāo)的狀態(tài)的數(shù)據(jù)。術(shù)語數(shù)據(jù)要被寬泛地看作包括可由一個(gè)或多個(gè)計(jì) 算機(jī)存儲(chǔ)元素表示的任何東西。邏輯上,數(shù)據(jù)可被表示成易失性或非易失性存儲(chǔ)器中的一 系列1和0。在具有非二進(jìn)制存儲(chǔ)介質(zhì)的計(jì)算機(jī)中,數(shù)據(jù)可根據(jù)存儲(chǔ)介質(zhì)的能力來表示。數(shù) 據(jù)可被組織稱不同類型的數(shù)據(jù)結(jié)構(gòu),包括諸如數(shù)字、字母等之類的簡(jiǎn)單數(shù)據(jù)類型,分層、鏈 接或其他相關(guān)數(shù)據(jù)類型、包括多個(gè)其他數(shù)據(jù)結(jié)構(gòu)或簡(jiǎn)單數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)等等。數(shù)據(jù)的 某些例子包括程序代碼、程序狀態(tài)、程序數(shù)據(jù)、其他數(shù)據(jù)等等。更新可包括新的軟件、現(xiàn)有軟件的更新、對(duì)系統(tǒng)設(shè)置或策略的修改、數(shù)據(jù)庫更新、 對(duì)目標(biāo)的用戶的交互式通知等等。
某些更新可能不包括代碼,但可僅包括可用于檢測(cè)目標(biāo)的狀態(tài)的規(guī)則。這些更新 有時(shí)在此被稱為“detectoid”。Detectoid可用于確定某一對(duì)象的屬性。例如,某些注冊(cè) 表鍵、文件夾、文件、目錄、環(huán)境變量、和/或目標(biāo)上的其他數(shù)據(jù)的存在可指示出某一版本的 文字處理軟件安裝在目標(biāo)上。例如,可以評(píng)估表達(dá)式來確定名為“c:\program files\foo. exe"的文件資源是否存在以及是否版本高于1. O版。更新可具有一個(gè)或多個(gè)依賴關(guān)系。例如,是否應(yīng)用某一更新取決于目標(biāo)系統(tǒng)的屬 性,如是否其他軟件和/或更新早已成功應(yīng)用于目標(biāo)上。例如,包括版本3的軟件包的更新 可能需要在包括版本2的軟件的更新之后才被應(yīng)用。在評(píng)估另一更新的detectoid或表達(dá)式時(shí),更新代理215可生成隨后可被傳回更 新源220的數(shù)據(jù)。該數(shù)據(jù)可允許更新源220通過篩選出由于沒有滿足依賴關(guān)系而不適用的 更新來應(yīng)用有效的掃描協(xié)議(下文中更詳細(xì)地描述)。例如,如果沒有安裝文字處理器,則 連更新源將文字處理器的更新發(fā)送到客戶機(jī)用于評(píng)估都不需要了。更新源220可包括基于從更新代理215接收到的數(shù)據(jù)確定什么更新可能需要被安 裝在目標(biāo)上的組件。在一個(gè)實(shí)施例中,更新源220可包括服務(wù)。服務(wù)可包括執(zhí)行指定任務(wù) 的一個(gè)或多個(gè)進(jìn)程、線程、組件、庫等等。服務(wù)可以硬件、軟件、或硬件和軟件的組合來實(shí)現(xiàn)。 服務(wù)可分布在多個(gè)設(shè)備上或可實(shí)現(xiàn)在單個(gè)設(shè)備上。在另一實(shí)施例中,更新源220可包括包含用于更新代理215的更新信息的文件、數(shù) 據(jù)結(jié)構(gòu)等。例如,更新源220可包括向更新代理215提供更新信息的可執(zhí)行代碼。作為另 一個(gè)例子,更新源220可包括CAB文件、MSI文件或某種其他文件。更新源220可執(zhí)行多程協(xié)議來有效地提供更新。在多程協(xié)議中,更新源220可首 先向更新代理215發(fā)送不具有依賴關(guān)系的一組更新(包括detectoids)。更新代理215可 評(píng)估這些更新的規(guī)則并將目標(biāo)的屬性通知給更新源220。在評(píng)估detectoid的規(guī)則時(shí),一個(gè)或多個(gè)資源的狀態(tài)可與一個(gè)或多個(gè)值進(jìn)行比 較。例如,規(guī)則可將特定注冊(cè)表建與值5進(jìn)行比較。評(píng)估規(guī)則的結(jié)果可由更新代理215提 供給更新源220?;谠摻Y(jié)果(以及可能的其他結(jié)果),更新源220可確定是否要將附加的 detectoids或更新發(fā)送到更新代理215。在協(xié)議的下一次迭代中,更新源220可發(fā)送取決于被檢測(cè)為在前一次迭代中安裝 的軟件和/或更新的更新。更新代理215然后可評(píng)估這些附加更新的規(guī)則,并將結(jié)果發(fā)送 到更新源220。該過程可繼續(xù)直到?jīng)]有依賴于目標(biāo)設(shè)備的屬性的更新可用。在一種意義上,該過 程可被看作是基于提供給更新源220的結(jié)果在每次迭代中裁剪掉樹或圖的不相關(guān)分支。更 新源220可通過發(fā)送不依賴于其他更新的更新(包括detectoids)來開始該過程,并可發(fā) 送依賴于先前的更新的結(jié)果的其他更新。該多程協(xié)議可用于有效地刪除那些不適用于目標(biāo) 的更新,并因此減少了檢測(cè)目標(biāo)所需的更新的代價(jià)。更新代理215可存儲(chǔ)指示出什么被安裝在特定目標(biāo)上的數(shù)據(jù)。該數(shù)據(jù)可被存儲(chǔ)在 與目標(biāo)“一起移動(dòng)”的文檔中。在一個(gè)實(shí)施例中,文檔可被存儲(chǔ)在目標(biāo)的存儲(chǔ)器設(shè)備(如虛 擬磁盤映像)中。在另一個(gè)實(shí)施例中,文檔可被存儲(chǔ)在目標(biāo)外的存儲(chǔ)上(如存儲(chǔ)217),具有 將文檔與目標(biāo)相關(guān)聯(lián)的標(biāo)識(shí)符。在對(duì)目標(biāo)的后續(xù)掃描中,該存儲(chǔ)的數(shù)據(jù)可被用作用于確定 目標(biāo)需要什么更新的起始點(diǎn)。
存儲(chǔ)217可包括能夠提供對(duì)包括關(guān)于對(duì)目標(biāo)的先前掃描的結(jié)果的數(shù)據(jù)的訪問的 任何存儲(chǔ)介質(zhì)。該存儲(chǔ)可包括易失性(如高速緩存)和非易失性存儲(chǔ)器(如持久存儲(chǔ)器)。 存儲(chǔ)217可包括硬盤存儲(chǔ)、其他非易失性存儲(chǔ)、諸如RAM等易失性存儲(chǔ)器、其它存儲(chǔ)、以上的 某種組合等,并可以分布在多個(gè)設(shè)備中。存儲(chǔ)217可以是主控更新代理215的裝置外部的、 內(nèi)部的或包括那些內(nèi)部和外部的組件。在一個(gè)實(shí)施例中,更新源220向更新代理215提供的規(guī)則和其他數(shù)據(jù)可用可擴(kuò)展 標(biāo)記語言(XML)來編碼。然而,在另一實(shí)施例中,表達(dá)式可用其他語言、數(shù)據(jù)結(jié)構(gòu)等來編碼。在一個(gè)實(shí)施例中,更新代理215和更新源220之間的交互可包括下面的示例性動(dòng) 作1.更新代理215連接到更新源220并請(qǐng)求更新源220提供不具有依賴關(guān)系的所有更新。2.作為響應(yīng),更新源220將這些更新發(fā)送給更新代理215。這些更新可包括許多 detectoids來檢測(cè)目標(biāo)的操作系統(tǒng)、應(yīng)用文件以及其他狀態(tài)。3.更新代理215評(píng)估更新的規(guī)則,這可包括評(píng)估一個(gè)或多個(gè)表達(dá)式。在評(píng)估表 達(dá)式時(shí),更新代理215可基于對(duì)照安裝在目標(biāo)上的軟件和/或硬件或其他目標(biāo)機(jī)器狀態(tài) 進(jìn)行表達(dá)式評(píng)估來計(jì)算一組結(jié)果(如布爾值),該組結(jié)果指示出已安裝在目標(biāo)上的更新和
detectoidso4.更新代理215將結(jié)果發(fā)送到更新源220。5.更新源220確定依賴于什么已安裝在目標(biāo)上的更新。例如,如果某一特定版本 的文字處理器安裝在機(jī)器上,更新源220可確定是否有任何依賴于該版本的文字處理器的 更新。作為另一個(gè)例子,如果確定出目標(biāo)的語言是德語,則更新源220可去除和其他語言有 關(guān)的更新。6.更新源220將下一組更新發(fā)送到更新代理215。7.重復(fù)上述的步驟3-6,直到?jīng)]有依賴于什么已被安裝在目標(biāo)上的新更新為止。當(dāng)目標(biāo)是虛擬機(jī)時(shí),可執(zhí)行對(duì)安裝在虛擬機(jī)中的軟件的檢測(cè)而不運(yùn)行虛擬機(jī)。虛 擬機(jī)可作為映像被存儲(chǔ)在盤上。該映像可經(jīng)虛擬機(jī)或經(jīng)諸如資源訪問器之類的另一實(shí)體來 訪問。當(dāng)目標(biāo)是離線虛擬機(jī)時(shí),與目標(biāo)相關(guān)聯(lián)的資源的名稱可能與資源由執(zhí)行時(shí)的虛擬機(jī) 訪問的情況不同。例如,當(dāng)被虛擬機(jī)訪問時(shí),虛擬機(jī)的盤上的資源的名稱可以“C:\”為開始。 當(dāng)從虛擬機(jī)的外部訪問同一個(gè)盤時(shí),例如盤上的資源的名稱可以“D:\”開始。然而,包含在更新中的規(guī)則可在預(yù)期以原始資源名稱的方式使用的情況下來創(chuàng) 建。如果直接對(duì)照離線映像的資源名稱來評(píng)估規(guī)則,則可能不能找到或訪問適當(dāng)?shù)馁Y源。當(dāng)使用可評(píng)估到資源名稱中的其他數(shù)據(jù)時(shí)可能會(huì)發(fā)生相同的問題。例如,在訪問 資源同時(shí)虛擬機(jī)離線時(shí),系統(tǒng)變量、組件標(biāo)識(shí)符、包括外殼文件夾或其他文件夾的文件夾、 注冊(cè)表項(xiàng)、以及可用于定位資源的其他數(shù)據(jù)可能不同。資源訪問器230-232可用于訪問目標(biāo)235-237上的適當(dāng)?shù)馁Y源。每個(gè)資源訪問器 可包括將資源名稱或其一部分與映射到的資源名稱或其一部分相關(guān)聯(lián)的映射表或其他數(shù) 據(jù)結(jié)構(gòu)。例如,映射表可包括將“C:\”與“D:\”相關(guān)聯(lián)的條目。當(dāng)資源訪問器接收到訪問 具有以“C:\”為開始的名稱的資源的請(qǐng)求時(shí),資源訪問器可使用映射表將資源名稱開始處 替換成“D \ ”來訪問離線虛擬機(jī)上的資源。
類似的,某些資源名稱可能以變量為前綴(如^program files) ”、“$ (system) ” 等)。映射表可包括用于這些變量的條目,將變量映射到目標(biāo)上的對(duì)應(yīng)于資源名稱的前綴。訪問資源時(shí)可能存在多級(jí)映射。例如,表達(dá)式可指示出在注冊(cè)表中的某一鍵中找 到資源名稱??墒褂靡粋€(gè)映射來尋找注冊(cè)表(如將“C:\”替換成“D:\”的映射)。在定位 了注冊(cè)表且獲得了與該鍵相關(guān)聯(lián)的值之后,可使用另一映射將該值所指示的資源映射到可 在加載的映像中找到的位置。例如,注冊(cè)表值可引用“C:\”上的資源。為了正確訪問加載 的映像上的該資源,可使用映射以從“C:\”映射到“D:\”。盡管在前段的例子中描述了僅僅兩級(jí)映射,但是并不意圖將該主題的各方面限制 成僅僅兩級(jí)映射。實(shí)際上,在其他實(shí)施例中,可能存在多于兩級(jí)的映射來訪問資源。在這些 情況下,確定映射可能涉及多個(gè)操作。例如,環(huán)境變量可包括引用數(shù)據(jù)庫條目的資源名稱。 數(shù)據(jù)庫條目可包括引用文件位置的另一資源名稱。文件可包括引用所需的資源的另一資源 名稱。在該例子中,為了找到所需的資源,可能涉及多個(gè)映射操作。每個(gè)資源訪問器230-232可具有適用于其自己相關(guān)聯(lián)的目標(biāo)(即分別為目標(biāo) 235-237)的映射表。這可允許更新代理215用于來自離線虛擬機(jī)(不同版本和/或來自不 同廠商)、在線虛擬機(jī)、加載在不同分區(qū)上的在線或離線操作系統(tǒng)、前述的其他設(shè)備等許多 不同類型的目標(biāo)以及同一類型的不同實(shí)例。更新代理215可能不需要知道目標(biāo)類型或其能力。相反,更新代理215可將訪問 特定資源的規(guī)則發(fā)送到表達(dá)式評(píng)估器225,表達(dá)式評(píng)估器可經(jīng)資源訪問器230-232來訪問 資源。資源訪問器230-232然后可基于各自不同的映射表進(jìn)行適當(dāng)?shù)淖儞Q來訪問適當(dāng)?shù)馁Y 源。本領(lǐng)域的技術(shù)人員將理解結(jié)合圖2描述的更新機(jī)制提供了靈活性和擴(kuò)展性。例 如,當(dāng)系統(tǒng)管理員或類似者希望添加另一類型的新目標(biāo)時(shí),可創(chuàng)建映射表并將其提供給資 源訪問器以允許訪問新資源。可自動(dòng)、半自動(dòng)或手動(dòng)創(chuàng)建或填充映射表。例如,在自動(dòng)或半自動(dòng)填充的例子中, 當(dāng)更新代理215被指示更新離線虛擬機(jī)時(shí),更新代理215可裝載與虛擬機(jī)相關(guān)聯(lián)的盤的映 像(如“D:\”之類)。更新代理215還可訪問與虛擬機(jī)相關(guān)聯(lián)的元數(shù)據(jù)來確定虛擬機(jī)與盤相 關(guān)聯(lián)的資源名稱(如“C:\”)。更新代理215然后創(chuàng)建從虛擬機(jī)所使用的名稱(如“C:\”) 到給予所述裝載的名稱(如“D:\”)的映射條目。作為另一個(gè)例子,可在虛擬機(jī)的注冊(cè)表中定義環(huán)境變量或其他資源位置信息(如 路徑或其部分)。對(duì)于與資源相關(guān)聯(lián)的環(huán)境變量,可自動(dòng)創(chuàng)建一個(gè)或多個(gè)映射條目,將環(huán)境 變量或其他資源位置信息映射到用于裝載的盤的適當(dāng)?shù)馁Y源名稱??墒謩?dòng)創(chuàng)建某些映射。例如,某一品牌的移動(dòng)設(shè)備的臨時(shí)目錄可被硬編碼成特定 位置。在該情況下,用于該臨時(shí)目錄的映射條目可被硬編碼到映射表中。雖然以上結(jié)合圖2描述的系統(tǒng)包括各種實(shí)體和相關(guān)的通信路徑,但可以理解,可 以采用更多、更少的這些實(shí)體或這些實(shí)體的不同組合而不背離此處所描述的主題的各方面 的精神或范圍。此外,該系統(tǒng)中包括的各實(shí)體和通信路徑可以用本領(lǐng)域技術(shù)人員所理解的 各種方式來配置而不背離此處所描述的主題的各方面的精神或范圍。圖3-4是根據(jù)此處所描述的主題的各方面的概括地表示可發(fā)生的動(dòng)作的流程圖。 為解釋簡(jiǎn)明起見,結(jié)合圖3-4描述的方法被描繪和描述為一系列動(dòng)作??梢岳斫夂兔靼?,此處所描述的主題的各方面不受所示出的動(dòng)作和/或動(dòng)作次序的限制。在一個(gè)實(shí)施例中,動(dòng) 作以如下描述的次序發(fā)生。然而,在其它實(shí)施例中,動(dòng)作可以并行地發(fā)生,以另一次序發(fā)生, 和/或與此處未呈現(xiàn)和描述的其它動(dòng)作一起發(fā)生。此外,并非所有示出的動(dòng)作都是實(shí)現(xiàn)根 據(jù)此處所描述的主題的各方面的方法所必需的。另外,本領(lǐng)域的技術(shù)人員將了解和明白,方 法也可以替代地經(jīng)由狀態(tài)圖或作為事件表示為一系列相互相關(guān)聯(lián)的狀態(tài)。圖3是概括地表示根據(jù)此處所描述的主題的各方面的、可在檢測(cè)用于目標(biāo)的需要 的更新時(shí)發(fā)生的示例性動(dòng)作的流程圖。在框305,動(dòng)作開始。在框310處,接收掃描目標(biāo)的請(qǐng)求。該請(qǐng)求是在除了所述目標(biāo)之外的某一實(shí)體處 接收的。例如,參考圖2,更新代理215經(jīng)API 210接收來自更新請(qǐng)求器205的請(qǐng)求。連同 接收掃描目標(biāo)的請(qǐng)求,更新代理215可基于所述目標(biāo)從多個(gè)映射數(shù)據(jù)結(jié)構(gòu)中選擇一個(gè)映射 數(shù)據(jù)結(jié)構(gòu),每一個(gè)映射數(shù)據(jù)結(jié)構(gòu)適用于預(yù)定義類型的目標(biāo)或某一類型的目標(biāo)的實(shí)例。映射數(shù)據(jù)結(jié)構(gòu)可包括從更新所指示的資源到目標(biāo)的資源的一個(gè)或多個(gè)映射。此 外,映射數(shù)據(jù)結(jié)構(gòu)可指示算法,通過該算法獲得目標(biāo)的資源。例如,映射數(shù)據(jù)結(jié)構(gòu)可指定使 用可涉及一個(gè)或多個(gè)API的一個(gè)或多個(gè)操作從本地或遠(yuǎn)程目標(biāo)獲得資源的算法。映射數(shù)據(jù) 結(jié)構(gòu)不限于表中成對(duì)的值,并且可用包括例如if-then-else語句、switch語句、其他語句 等的代碼來編碼,以從目標(biāo)的對(duì)應(yīng)的源獲得資源的數(shù)據(jù)。此外,訪問目標(biāo)上的對(duì)應(yīng)的資源的方法可與從另一源訪問類似命名的資源的方法 不同。例如,在用于在線機(jī)器的Windows 環(huán)境中,進(jìn)程可通過調(diào)用Win32API來訪問資源 (例如查詢WMI存儲(chǔ)或調(diào)用GetSystemMetrics)。對(duì)于離線映像來說,經(jīng)對(duì)同一 API的調(diào)用 可能不能完成對(duì)同一資源的訪問;相反,訪問器可能必須直接訪問底層存儲(chǔ)(如離線映像 的注冊(cè)表)。此外,連同接收所述請(qǐng)求,更新代理215可接收從規(guī)則所指示的資源名稱到目標(biāo) 的對(duì)應(yīng)的資源名稱的映射的指示。例如,更新請(qǐng)求器可指示對(duì)應(yīng)于虛擬機(jī)的映像已被加載 到網(wǎng)絡(luò)共享\\server\share\VMImage上。該信息可用于在映射數(shù)據(jù)結(jié)構(gòu)中創(chuàng)建映射。在框315,向更新源請(qǐng)求更新的規(guī)則。如前所述,規(guī)則可與更新一起傳遞。規(guī)則指 示出要檢查的資源以確定目標(biāo)的屬性。例如,參考圖2,更新代理215可向更新源220請(qǐng)求 更新。此外,在請(qǐng)求規(guī)則時(shí),更新代理215可從目標(biāo)235或存儲(chǔ)217獲得先前掃描的結(jié)果, 并可連同向更新源請(qǐng)求規(guī)則將這些結(jié)果傳遞到更新源220。在框320,選擇一個(gè)規(guī)則。更新源220可返回一個(gè)或多個(gè)規(guī)則。例如,參考圖2,更 新代理215可確定(或被告知)評(píng)估規(guī)則的順序,并可按順序選擇第一規(guī)則。在框325,標(biāo)識(shí)規(guī)則的資源名稱。例如,參考圖2,更新代理215可標(biāo)識(shí)規(guī)則所指示 的資源名稱。如先前所述,規(guī)則可標(biāo)識(shí)資源和用于比較資源的值。規(guī)則可用XML或指示出 資源、比較操作符和值的某種其他數(shù)據(jù)結(jié)構(gòu)來指定。在框330,將標(biāo)識(shí)的資源名稱映射到目標(biāo)資源名稱。這可涉及使用映射數(shù)據(jù)結(jié)構(gòu)來 確定目標(biāo)的一個(gè)或多個(gè)對(duì)應(yīng)的資源名稱。例如,參考圖2,資源訪問器230可將更新代理215 提供的資源名稱(如“C:\Path\File”)映射到目標(biāo)235的資源名稱(如“D: \I^th\File”)。在框335,從目標(biāo)的映射的資源獲得至少一些數(shù)據(jù)。當(dāng)資源值包括資源名稱時(shí),如 先前所述,獲得數(shù)據(jù)可涉及多個(gè)映射操作。例如,參考圖2,資源訪問器230可從對(duì)應(yīng)于目標(biāo) 235的虛擬機(jī)的映像獲得值。
在框340,評(píng)估規(guī)則的一個(gè)或多個(gè)表達(dá)式,以將數(shù)據(jù)與規(guī)則所指示的一個(gè)或多個(gè)準(zhǔn) 則相比較。評(píng)估所述一個(gè)或多個(gè)表達(dá)式產(chǎn)生了指示出安裝在目標(biāo)上的軟件和/或硬件中的 至少一個(gè)的結(jié)果。例如,參考圖2,表達(dá)式評(píng)估器225可評(píng)估規(guī)則的表達(dá)式來確定指示目標(biāo) 235上安裝的軟件和/或硬件的結(jié)果。在框345,作出關(guān)于更新中是否有另一規(guī)則的判定。如果是,則動(dòng)作在框350繼續(xù); 否則,動(dòng)作在框355繼續(xù)。在框350,選擇下一個(gè)規(guī)則。在框350之后,可重復(fù)與325-345相關(guān)聯(lián)的動(dòng)作。在框355,將結(jié)果提供給更新源。例如,參考圖2,更新代理215可向更新源220提 供評(píng)估規(guī)則的結(jié)果。在框357,作出關(guān)于是否有另一更新要掃描的判定。如果是,則動(dòng)作在框315繼續(xù); 否則,動(dòng)作在框360繼續(xù)。在框360處,可以執(zhí)行其他動(dòng)作(如果存在)。其他動(dòng)作可包括例如存儲(chǔ)評(píng)估表達(dá) 式所產(chǎn)生的結(jié)果、接收掃描目標(biāo)的另一請(qǐng)求、檢索結(jié)果、將結(jié)果提供給更新源、從更新源接 收至少部分依賴于結(jié)果的附加規(guī)則。圖4是概括地表示根據(jù)此處所描述的主題的各方面的、可在訪問目標(biāo)上的資源時(shí) 發(fā)生的示例性動(dòng)作的流程圖。在框405,動(dòng)作開始。在框410,可接收關(guān)于將資源名稱或其一部分與另一資源名稱或其一部分相關(guān)聯(lián) 的關(guān)聯(lián)的指示。例如,參考圖2,資源訪問器231可接收請(qǐng)求將“C:\”映射到“D:\”的指示。在框415,如果接收到關(guān)聯(lián),則將其存儲(chǔ)在映射數(shù)據(jù)結(jié)構(gòu)中例如,參考圖2,資源訪 問器231可將關(guān)聯(lián)存儲(chǔ)在與目標(biāo)236相關(guān)聯(lián)的映射表中。在框420,接收到對(duì)目標(biāo)的資源的至少一些數(shù)據(jù)的請(qǐng)求。請(qǐng)求可包括第一資源 名稱。例如,參考圖2,更新代理215可向文件請(qǐng)求某些數(shù)據(jù),并可指示文件的資源名稱 "C: \pathname\file,,。在框425,將資源名稱映射到目標(biāo)資源名稱。例如,參考圖2,資源訪問器231可使 用映射表將資源名稱“C:\pathname\file”映射到目標(biāo)資源名稱“D:\VMs\VMl\pathname\ file”。該目標(biāo)資源名稱標(biāo)識(shí)了對(duì)應(yīng)于提供給資源訪問器的資源名稱(如“C:\pathname\ file”)的目標(biāo) 236 的資源(例如 “D: \VMs\VMl\pathname\file”)。在框430,使用目標(biāo)資源名稱從目標(biāo)獲得所請(qǐng)求的數(shù)據(jù)。例如,參考圖2,資源訪問 器231可使用資源名稱“D:\VMs\VMl\pathname\file”從與目標(biāo)236相關(guān)聯(lián)的注冊(cè)表文件 獲得至少一些數(shù)據(jù)。在框435處,向請(qǐng)求器提供數(shù)據(jù)。例如,參考圖2,資源訪問器231向更新代理215 提供所請(qǐng)求的數(shù)據(jù)??蓪?duì)掃描的每一個(gè)資源重復(fù)與框420-435相關(guān)聯(lián)的動(dòng)作。在框440處,可以執(zhí)行其他動(dòng)作(如果存在)。例如,參考圖2,如果資源中的數(shù)據(jù) 引用另一資源,可執(zhí)行更多的映射來從目標(biāo)236獲得正確的資源。如從上述詳細(xì)描述中可以看到,已經(jīng)描述了關(guān)于檢測(cè)所需更新的各方面。盡管此 處所描述主題的各方面易于作出各種修改和替換構(gòu)造,但其某些說明性實(shí)施例在附圖中示 出并在上面被詳細(xì)地描述。然而,應(yīng)當(dāng)理解,并不旨在將所要求保護(hù)主題的各方面限制于所 公開的具體形式,而是相反地,目的是要覆蓋落入此處所描述主題的各方面的精神和范圍之內(nèi)的所有修改、替換構(gòu)造和等效方案。
權(quán)利要求
1.一種至少部分地由計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括接收(310)掃描目標(biāo)的請(qǐng)求,以確定用于目標(biāo)的更新,所述請(qǐng)求是在不同于目標(biāo)的實(shí) 體處接收的;經(jīng)所述實(shí)體向更新源請(qǐng)求(315)規(guī)則,所述規(guī)則指示出要檢查的資源以確定目標(biāo)的屬 性;以及對(duì)于每個(gè)規(guī)則,標(biāo)識(shí)(32 所述規(guī)則指示出的一個(gè)或多個(gè)資源名稱;使用映射數(shù)據(jù)結(jié)構(gòu)確定(330)所述目標(biāo)的一個(gè)或多個(gè)對(duì)應(yīng)的資源名稱;獲得(335)由所述目標(biāo)的對(duì)應(yīng)的資源名稱所標(biāo)識(shí)的資源的至少一些數(shù)據(jù);以及評(píng)估(340)表達(dá)式以將所述至少一些數(shù)據(jù)與所述規(guī)則所指示出的一個(gè)或多個(gè)準(zhǔn)則進(jìn) 行比較,所述評(píng)估表達(dá)式產(chǎn)生指示出所述目標(biāo)的至少一個(gè)屬性的結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,接收掃描目標(biāo)的請(qǐng)求包括接收掃描離線的 虛擬機(jī)的請(qǐng)求,獲得由所述目標(biāo)的對(duì)應(yīng)的資源名稱所標(biāo)識(shí)的資源的至少一些數(shù)據(jù)包括獲得 所述至少一些數(shù)據(jù)而不使所述虛擬機(jī)在線。
3.如權(quán)利要求1所述的方法,其特征在于,接收掃描目標(biāo)的請(qǐng)求包括接收掃描在線的 虛擬機(jī)的請(qǐng)求,獲得由所述目標(biāo)的對(duì)應(yīng)的資源名稱所標(biāo)識(shí)的資源的至少一些數(shù)據(jù)包括經(jīng)與 所述虛擬機(jī)相關(guān)聯(lián)的映像獲得所述至少一些數(shù)據(jù),所述映像駐留在一個(gè)或多個(gè)易失性和非 易失性存儲(chǔ)器上。
4.如權(quán)利要求1所述的方法,其特征在于,還包括對(duì)于一規(guī)則,使用所述至少一些數(shù) 據(jù)來獲得另一資源名稱,將所述另一資源名稱映射到又一資源名稱,從對(duì)應(yīng)于所述又一資 源名稱的資源獲得來自所述目標(biāo)的至少一些數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,其特征在于,還包括存儲(chǔ)通過評(píng)估表達(dá)式而產(chǎn)生的結(jié)果, 接收掃描所述目標(biāo)的另一請(qǐng)求,檢索結(jié)果,將結(jié)果提供給更新源,從所述更新源接收至少部 分依賴于所述結(jié)果的附加規(guī)則。
6.如權(quán)利要求1所述的方法,其特征在于,還包括基于所述目標(biāo)從多個(gè)映射數(shù)據(jù)結(jié)構(gòu) 選擇所述映射數(shù)據(jù)結(jié)構(gòu),每個(gè)映射數(shù)據(jù)結(jié)構(gòu)適用于預(yù)定義類型的目標(biāo)。
7.如權(quán)利要求1所述的方法,其特征在于,還包括通過檢查目標(biāo)的一個(gè)或多個(gè)屬性,生 成從規(guī)則指示的資源名稱到目標(biāo)的對(duì)應(yīng)的資源名稱的一個(gè)或多個(gè)映射。
8.一種在計(jì)算環(huán)境中的系統(tǒng),包括更新代理015),用于接收掃描目標(biāo)以確定用于所述目標(biāo)的更新的掃描請(qǐng)求,所述更新 代理駐留在不同于所述目標(biāo)的實(shí)體上,所述更新代理還用于向更新源請(qǐng)求規(guī)則,所述規(guī)則 指示出要檢查的資源以確定所述目標(biāo)的屬性;資源訪問器030、231、232),用于接收對(duì)目標(biāo)的資源的資源請(qǐng)求,所述資源請(qǐng)求指示出 資源名稱,所述資源訪問器還用于經(jīng)映射數(shù)據(jù)結(jié)構(gòu)確定目標(biāo)的對(duì)應(yīng)的資源名稱,所述資源 訪問器還用于從所述目標(biāo)獲得來自所述對(duì)應(yīng)的資源名稱的資源的至少一些數(shù)據(jù);表達(dá)式評(píng)估器025),用于通過將所述至少一些數(shù)據(jù)與規(guī)則的一個(gè)或多個(gè)準(zhǔn)則相比較 來評(píng)估規(guī)則的至少一個(gè)表達(dá)式,以產(chǎn)生基于此的結(jié)果。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述目標(biāo)包括離線虛擬機(jī),所述資源訪問器 用于獲得所述至少一些數(shù)據(jù)而不使所述虛擬機(jī)在線。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述目標(biāo)包括在線虛擬機(jī),所述資源訪問 器用于在所述虛擬機(jī)在線時(shí)獲得所述至少一些數(shù)據(jù)。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述目標(biāo)包括不同于虛擬機(jī)的設(shè)備,所述 資源訪問器用于從所述設(shè)備或與所述設(shè)備相關(guān)聯(lián)的存儲(chǔ)獲得所述至少一些數(shù)據(jù)。
12.如權(quán)利要求8所述的系統(tǒng),其特征在于,還包括存儲(chǔ)設(shè)備,用于接收并存儲(chǔ)所述結(jié) 果,并在被請(qǐng)求時(shí)提供所述結(jié)果,所述更新代理還用于向所述存儲(chǔ)設(shè)備請(qǐng)求所述結(jié)果并連 同向更新源請(qǐng)求規(guī)則將結(jié)果提供給更新源。
13.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在被執(zhí)行 時(shí)執(zhí)行以下動(dòng)作,包括從更新代理接收(420)對(duì)目標(biāo)的資源的至少一些數(shù)據(jù)的請(qǐng)求,所述請(qǐng)求包括第一資源 名稱,所述更新代理用于掃描所述目標(biāo)以確定所述目標(biāo)的屬性,所述更新代理用于在確定 用于所述目標(biāo)的更新時(shí)與多程更新源通信,所述更新代理用于在評(píng)估表達(dá)式時(shí)使用所述至 少一些數(shù)據(jù)來確定所述至少一些數(shù)據(jù)是否滿足用于確定所述目標(biāo)的屬性的規(guī)則的一個(gè)或 多個(gè)準(zhǔn)則;將所述第一資源名稱映射(42 到第二資源名稱,所述第二資源名稱標(biāo)識(shí)所述目標(biāo)的 所述資源;使用所述第二資源名稱從所述目標(biāo)獲得(430)所述資源的所述至少一些數(shù)據(jù);以及向所述更新代理提供(43 所述至少一些數(shù)據(jù)。
14.如權(quán)利要求13所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,還包括在接收對(duì)所述至少一些數(shù)據(jù)的請(qǐng)求之前,接收關(guān)于將資源名稱或其一部分與另一資源 名稱或其一部分相關(guān)聯(lián)的關(guān)聯(lián)的指示;將所述關(guān)聯(lián)存儲(chǔ)在映射數(shù)據(jù)結(jié)構(gòu)中;以及在將所述第一資源名稱映射到所述第二資源名稱時(shí)使用所述關(guān)聯(lián)。
15.如權(quán)利要求13所述的計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于,還包括從所述至少一些數(shù)據(jù) 獲得第三資源名稱,將所述第三資源名稱映射到所述目標(biāo)的第四資源名稱,從對(duì)應(yīng)于所述 第四資源名稱的資源獲得至少一些其他數(shù)據(jù),將所述至少一些其他數(shù)據(jù)提供給所述更新代 理。
全文摘要
使用第三方目標(biāo)狀態(tài)的適用性檢測(cè)。這里所描述的主題的各方面涉及檢測(cè)需要的更新。在各方面中,更新代理接收掃描用于目標(biāo)的更新的請(qǐng)求。目標(biāo)可包括虛擬設(shè)備或非虛擬設(shè)備。該請(qǐng)求可包括一個(gè)或多個(gè)規(guī)則,指示出要檢查來確定設(shè)備的屬性的資源。更新代理使用資源訪問器來訪問所述規(guī)則指示的資源。資源訪問器將所述更新代理所指示的資源名稱映射到所述目標(biāo)的對(duì)應(yīng)的資源名稱。更新代理可通過設(shè)計(jì)來消除不相關(guān)更新的多程協(xié)議向更新源提供評(píng)估所述規(guī)則的結(jié)果。
文檔編號(hào)G06F9/445GK102141925SQ201110037389
公開日2011年8月3日 申請(qǐng)日期2011年1月31日 優(yōu)先權(quán)日2010年2月2日
發(fā)明者C·S·古奇, D·C·Y·程, S·拉木蘭, V·拉斯 申請(qǐng)人:微軟公司