專利名稱:基于模板的服務(wù)管理的制作方法
基于模板的服務(wù)管理 背景由監(jiān)視系統(tǒng)監(jiān)視服務(wù)(例如軟件應(yīng)用程序、硬件設(shè)備、Web服務(wù)、數(shù)據(jù)庫(kù) 應(yīng)用程序、網(wǎng)頁(yè)、網(wǎng)站等)是當(dāng)前比較常見(jiàn)的。監(jiān)視系統(tǒng)采用各種各樣不同的 形式并監(jiān)視各種各樣不同的事情。例如,某些監(jiān)視系統(tǒng)監(jiān)視服務(wù)的狀態(tài),例如 服務(wù)是否正在運(yùn)行、已停止、或已被異常終止。其它監(jiān)視系統(tǒng)監(jiān)視關(guān)于特定性 能準(zhǔn)則的服務(wù)健康狀況。例如,某些監(jiān)視器監(jiān)視一個(gè)服務(wù)正在使用的存儲(chǔ)器量、 或該服務(wù)正在使用的處理器容量、或其它類似準(zhǔn)則。執(zhí)行這些類型的服務(wù)監(jiān)視需要了解服務(wù)的各組件、服務(wù)的從屬性、以及服 務(wù)的行為。對(duì)于這些構(gòu)造的定義是復(fù)雜的,并且經(jīng)常只有工程師或其它參與該 服務(wù)設(shè)計(jì)的技術(shù)人員能理解。類似地,業(yè)務(wù)期望監(jiān)視的不同服務(wù)類型正演變得復(fù)雜,并包括分布式服務(wù)、 以及冗余與多層架構(gòu)。這些因素導(dǎo)致配置對(duì)這些服務(wù)類型的監(jiān)視的任務(wù)變得越 來(lái)越復(fù)雜。類似地,業(yè)務(wù)應(yīng)用程序以及業(yè)務(wù)解決方案正被廣泛運(yùn)用。然而,這樣的解 決方案對(duì)于使用它們的不同用戶可以是唯一的、或是對(duì)用戶定制的。因此,現(xiàn) 有系統(tǒng)只能夠通過(guò)構(gòu)建自定義監(jiān)視邏輯來(lái)監(jiān)視這些解決方案。為了有效地監(jiān)視 給定的服務(wù),必須經(jīng)常解決一些高層次問(wèn)題。這些問(wèn)題(可以需要或可以不需要回答)中的某些問(wèn)題的例子如下 該服務(wù)看上去是什么樣的? 該服務(wù)由什么組件構(gòu)成以及該服務(wù)各組件如何交互? 有問(wèn)題的服務(wù)依賴于什么基礎(chǔ)結(jié)構(gòu)服務(wù)? 我們?nèi)绾卧诰W(wǎng)絡(luò)中發(fā)現(xiàn)該服務(wù)的部署? 我們?nèi)绾螀^(qū)分給定服務(wù)的兩個(gè)部署? 該服務(wù)的什么屬性是用戶關(guān)注的? 關(guān)于該服務(wù),應(yīng)該收集哪些探測(cè)數(shù)據(jù)(instrumentation data) 數(shù)據(jù)應(yīng)如何格式化和顯示以便對(duì)服務(wù)管理員有用? 用戶在該服務(wù)上執(zhí)行的常見(jiàn)任務(wù)是什么? 管理員如何得知該服務(wù)是否按照設(shè)計(jì)的在執(zhí)行? 能影響該服務(wù)的運(yùn)行能力的問(wèn)題有哪些?*如何能檢測(cè)出這樣的問(wèn)題,或者甚至如何防止? 應(yīng)該收集哪些數(shù)據(jù)來(lái)診斷這些問(wèn)題? 是否存在可響應(yīng)于這些問(wèn)題來(lái)執(zhí)行的任何修正動(dòng)作? 什么時(shí)候應(yīng)該將可能的問(wèn)題通知管理員? 什么數(shù)據(jù)應(yīng)該作為理解問(wèn)題和對(duì)其進(jìn)行故障査找的上下文提供給管理員?這些只是可以用來(lái)指導(dǎo)用于給定服務(wù)的監(jiān)視解決方案的設(shè)計(jì)的一些常見(jiàn) 的高層次問(wèn)題。還將注意到,這些問(wèn)題中的每個(gè)問(wèn)題都可導(dǎo)致另一個(gè)其中額外 問(wèn)題必須被解答的詳細(xì)層面。與足夠詳細(xì)地回答這些問(wèn)題以便監(jiān)視系統(tǒng)能工作 相關(guān)聯(lián)的復(fù)雜度經(jīng)常超過(guò)解決方案的用戶(或解決方案的管理員)能掌握的復(fù)雜度。因此,公司在獲得對(duì)其定制的業(yè)務(wù)解決方案的足夠監(jiān)視方面面臨困難。該 任務(wù)可能需要被外包,這增加了成本,并且不便于集成。上述的討論僅被提供用于一般的背景信息,并且不意在用來(lái)幫助確定所要 求保護(hù)的主題的范圍。概述本發(fā)明的一個(gè)實(shí)施例采用定義了給定服務(wù)類型的某些監(jiān)視特性的模板,其 中,該特性是該服務(wù)類型的所有服務(wù)所共有的。用戶可以配置該模板來(lái)獲得用于給定服務(wù)的服務(wù)定義。該服務(wù)定義被傳送至一可編程性層(programmability layer)并且提供了足夠信息使得該可編程性層在不需要由用戶進(jìn)一步定制的情 況下可以構(gòu)造監(jiān)視給定服務(wù)所需要的各種監(jiān)視程序、規(guī)則、類、視圖以及任務(wù)。 在一實(shí)施例中,用戶還可以如所希望地定制服務(wù)定義,以便獲得額外的監(jiān)視。 提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。本概述并非意在確定所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也并非意在用來(lái)幫助確定所要求保護(hù)的主題的范圍。附圖簡(jiǎn)述
圖1是可以在其中釆用本發(fā)明的一個(gè)說(shuō)明性環(huán)境。圖2是模板框架的一個(gè)實(shí)施例的框圖。圖3A是示出圖2中所示的模板框架的操作的一個(gè)實(shí)施例的流程圖。 圖3B示出了用來(lái)配置模板以獲得服務(wù)定義的一組用戶界面頁(yè)面的一個(gè)實(shí) 施例。圖3C示出了指示一給定特征的監(jiān)視特性的類型繼承的一個(gè)實(shí)施例。 圖3D示出了能由模板作者生成的健康模型的一個(gè)實(shí)施例。 圖4是根據(jù)一個(gè)實(shí)施例的模板創(chuàng)作環(huán)境的框圖。圖5是根據(jù)一個(gè)實(shí)施例示出了如何采用圖4所示的系統(tǒng)來(lái)創(chuàng)作模板的流程圖。圖6是根據(jù)一個(gè)實(shí)施例示出了如何創(chuàng)作模板以供分發(fā)的流程圖。圖7示出了用于向監(jiān)視系統(tǒng)傳遞模板的傳遞機(jī)制的總體模式。圖7A-7E示出了用于模板的模式。圖8A-8J示出了用于UI頁(yè)面顯示畫(huà)面的模式。詳細(xì)描述本發(fā)明一般涉及采用模板來(lái)配置要被監(jiān)視的服務(wù)的描述。然而,在更詳細(xì) 地描述本發(fā)明之前,將描述能在其中使用本發(fā)明的一個(gè)說(shuō)明性環(huán)境。圖1示出了在其上能實(shí)現(xiàn)各實(shí)施例的合適的計(jì)算系統(tǒng)環(huán)境100的示例。計(jì) 算系統(tǒng)環(huán)境IOO只是合適的計(jì)算環(huán)境的一個(gè)示例,并不意在對(duì)本發(fā)明的使用范圍或功能暗示任何限制。計(jì)算環(huán)境ioo也不應(yīng)該被解釋為具有涉及該示例性操作環(huán)境100中所示出的組件中的任何一個(gè)組件或其組合的任何依賴或要求。各實(shí)施例可與眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置一起操作。適合與 各種實(shí)施例一起使用的公知的計(jì)算系統(tǒng)、環(huán)境、和/或配置的示例包括,但不限 于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器系統(tǒng)、機(jī)頂盒、可編程消費(fèi)類電子產(chǎn)品、網(wǎng)絡(luò)PC、微型計(jì)算機(jī)、大型計(jì)算機(jī)、電話系統(tǒng)、以及包括上述系統(tǒng)或設(shè)備中的任何一種的分布式計(jì)算環(huán)境等等。各實(shí)施例可以在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一 般上下文中描述。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型 的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。某些實(shí)施例被設(shè)計(jì)成在其中由通 過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理器執(zhí)行任務(wù)的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì) 算環(huán)境中,程序模塊可位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)儲(chǔ)存介質(zhì) 兩者上。參考圖1,用于實(shí)現(xiàn)某些實(shí)施例的一個(gè)示例性系統(tǒng)包括計(jì)算機(jī)110形式的 通用計(jì)算設(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)總線、視頻電子 標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、以及也被稱為夾層(Mezzanine)總線的外圍部 件互聯(lián)(PCI)總線。計(jì)算機(jī)IIO通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能被計(jì) 算機(jī)IIO訪問(wèn)的任何可用介質(zhì),包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移 動(dòng)介質(zhì)。作為示例,而并非限制,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通 信介質(zhì)。計(jì)算機(jī)儲(chǔ)存介質(zhì)包括以用來(lái)存儲(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、 EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它 光學(xué)盤(pán)存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可用來(lái)儲(chǔ)存所期 望的信息并能被計(jì)算機(jī)110訪問(wèn)的任何其它介質(zhì)。通信介質(zhì)通常以諸如載波或 其它傳輸介質(zhì)等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊 或其它數(shù)據(jù),并包括任何信息傳遞介質(zhì)。術(shù)語(yǔ)"己調(diào)制數(shù)據(jù)信號(hào)"指的是將其一 個(gè)或多個(gè)特性以在該信號(hào)中編碼信息的方式來(lái)設(shè)置或改變的信號(hào)。作為示例而非限制,通信介質(zhì)包括有線介質(zhì),例如有線網(wǎng)絡(luò)或直接線連接,以及無(wú)線介質(zhì), 例如聲學(xué)、射頻、紅外線和其它無(wú)線介質(zhì)。上述的任何一種的組合也應(yīng)該被包 括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲(chǔ)器130包括諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器 (RAM) 132等易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)。包含(例 如在啟動(dòng)期間)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程的基本輸 入/輸出系統(tǒng)133 (BIOS)通常存儲(chǔ)在ROM131中。RAM 132通常包含處理單 元120直接可訪問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而不 是限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136以及程 序數(shù)據(jù)137。計(jì)算機(jī)110還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ) 介質(zhì)。僅作為示例,圖l示出了讀取和寫(xiě)入不可移動(dòng)、非易失性磁介質(zhì)的硬盤(pán) 驅(qū)動(dòng)器141,讀取和寫(xiě)入可移動(dòng)、非易失性磁盤(pán)152的磁盤(pán)驅(qū)動(dòng)器151,以及 讀取和/或?qū)懭胫T如CD ROM或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤(pán)156的 光盤(pán)驅(qū)動(dòng)器155。能用于該示例性操作環(huán)境的其它可移動(dòng)/不可移動(dòng)、易失性/ 非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、 數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器141通常通過(guò)諸如接 口 140等不可移動(dòng)存儲(chǔ)器接口與系統(tǒng)總線121相連,磁盤(pán)驅(qū)動(dòng)器151和光盤(pán)驅(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中,例如,硬盤(pán)驅(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)號(hào)用 來(lái)說(shuō)明至少它們是不同的副本。用戶可以通過(guò)諸如鍵盤(pán)162、話筒163和定點(diǎn)設(shè)備161 (例如鼠標(biāo)、跟蹤 球或觸摸墊)等輸入設(shè)備將命令和信息輸入到計(jì)算機(jī)110中。其它輸入設(shè)備(未 示出)可以包括操縱桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀等等。這些及其它輸入設(shè)備通常通過(guò)耦合至系統(tǒng)總線的用戶輸入接口 160連接至處理單元 120,但也可通過(guò)其它接口和總線結(jié)構(gòu),例如并行端口、游戲端口、或通用串行總線(USB)來(lái)連接。監(jiān)視器191或其它類型的顯示設(shè)備也通過(guò)諸如視頻接 口 190等接口連接至系統(tǒng)總線121。除了監(jiān)視器之外,計(jì)算機(jī)還可包括諸如揚(yáng) 聲器197和打印機(jī)196等其它外圍輸出設(shè)備,它們可通過(guò)輸出外圍接口 195被連接。計(jì)算機(jī)IIO采用與諸如遠(yuǎn)程計(jì)算機(jī)180等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏輯連 接在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、手持式設(shè)備、服務(wù) 器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備、或其它常見(jiàn)的網(wǎng)絡(luò)節(jié)點(diǎn)等等,并且通常包 括許多或全部以上關(guān)于計(jì)算機(jī)IIO所描述的元件。圖1所示的邏輯連接包括局 域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但還可包括其它網(wǎng)絡(luò)。這樣的網(wǎng)絡(luò) 連接環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。當(dāng)在LAN網(wǎng)絡(luò)連接環(huán)境中使用時(shí),計(jì)算機(jī)IIO通過(guò)網(wǎng)絡(luò)接口或適配器170 連接至LAN171。當(dāng)在WAN網(wǎng)絡(luò)連接環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào) 制解調(diào)器172,或用于通過(guò)諸如因特網(wǎng)等WAN 173建立通信的其它裝置???內(nèi)置或外置的調(diào)制解調(diào)器172可通過(guò)用戶輸入接口 160或其它合適的機(jī)制連接 至系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)IIO所描繪的程序模塊或其部 分可以存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例,而非限制,圖l將遠(yuǎn)程應(yīng)用 程序185示為駐留在遠(yuǎn)程計(jì)算機(jī)180中。將意識(shí)到,所示出的網(wǎng)絡(luò)連接是示例 性的,并且可以采用在計(jì)算機(jī)之間建立通信鏈路的其它手段。圖2是根據(jù)一個(gè)實(shí)施例的模板框架200的框圖。模板框架200包括監(jiān)視配 置向?qū)?02和監(jiān)視系統(tǒng)可編程性層204。向?qū)?02被示為訪問(wèn)模板208和210, 模板208和210中的各自分別從來(lái)自不同服務(wù)類型的服務(wù)中的一組共同特性 212和214中生成。模板208被示為基于來(lái)自第一服務(wù)類型的服務(wù)(共同由標(biāo) 號(hào)216指代)的特性212,而模板210被示為基于來(lái)自第二服務(wù)類型的服務(wù)(共 同由標(biāo)號(hào)218指代)的特性214。配置向?qū)?02被示為接收來(lái)自用戶224的配置信息226以及訪問(wèn)UI組裝 件(assembly) 209,該UI組裝件209是對(duì)應(yīng)于模板208和210的UI顯示畫(huà) 面。如以下更詳細(xì)地描述的,配置向?qū)?02基于用戶提供的配置信息226并從所選擇的模板208或210 (由用戶選出)中生成服務(wù)定義228。監(jiān)視系統(tǒng)可編程性層204被示為接收服務(wù)定義228以及訪問(wèn)可用監(jiān)視邏輯 220?;诜?wù)定義228,可編程性層204生成被部署為監(jiān)視給定服務(wù)的監(jiān)視邏 輯222。圖3A是更詳細(xì)地示出圖2中所示的框架200的操作的流程圖。然而,在 討論框架200的操作之前,將討論模板212和214。通過(guò)將要監(jiān)視的服務(wù)分組 到各服務(wù)類型群來(lái)得到每個(gè)模板。第一類型的服務(wù)由標(biāo)號(hào)216指示,第二類型 的服務(wù)由標(biāo)號(hào)218指示。每一服務(wù)具有共同的監(jiān)視特性。例如,第一類型的服 務(wù)206具有共同的監(jiān)視特性212,而第二類型的服務(wù)218具有共同的監(jiān)視特性 214。模板208基于第一類型的服務(wù)216的共同監(jiān)視特性212生成。模板210 從第二類型的服務(wù)218的共同監(jiān)視特性214中生成。盡管可以采用各種各樣的不同手段來(lái)獲得服務(wù)群的共同特性,但是一個(gè)說(shuō) 明性手段是通過(guò)采用用于該組服務(wù)群的類型繼承。例如,圖3C示出了用于一 特定操作系統(tǒng)服務(wù)400的類型繼承。如通過(guò)類型繼承看到的,服務(wù)(Service) 400是一操作系統(tǒng)(OS)本地應(yīng)用程序(Windows::LocalApplication) 402。 OS 本地應(yīng)用程序402是一個(gè)本身為系統(tǒng)應(yīng)用程序(System::Application) 406的系 統(tǒng)本地應(yīng)用程序(System:丄ocalApplication) 404。系統(tǒng)應(yīng)用程序406為系統(tǒng)受 管實(shí)體(System:ManagedEntity) 408。因此,圖3C顯示了特定OS服務(wù)400 具有一組監(jiān)視配置特性410。因此,在一實(shí)施例中,各個(gè)模板208和210中的 每一個(gè)具有相關(guān)聯(lián)的一組共同監(jiān)視特性,該共同監(jiān)視特性可以通過(guò)用于由該模板表示的服務(wù)類型的類型繼承來(lái)獲得。按照這樣,為了為給定服務(wù)生成和部署監(jiān)視邏輯,用戶224首先提供輸入 來(lái)打開(kāi)監(jiān)視配置向?qū)?02。這由圖3A中的框300所指示。當(dāng)配置向?qū)?02被 打開(kāi),它生成用戶界面顯示畫(huà)面以通過(guò)采用配置向?qū)?02帶領(lǐng)用戶進(jìn)行配置監(jiān) 視???B指示了一組示例性用戶界面顯示畫(huà)面。當(dāng)配置向?qū)?02首先被打開(kāi) 后,它可說(shuō)明性地生成一個(gè)靜態(tài)歡迎顯示畫(huà)面,如圖3B中的顯示畫(huà)面350。 可以看到,該靜態(tài)顯示畫(huà)面可說(shuō)明性地顯示一歡迎信息并提供諸如沿著顯示畫(huà) 面250底部定位的"Next (下一步)"按鈕的用戶可激活元素,以便允許用戶前進(jìn)至下一個(gè)屏幕。該靜態(tài)顯示畫(huà)面是靜態(tài)的,因?yàn)闊o(wú)論哪些模板可用配置向 導(dǎo)202來(lái)配置的,它都不會(huì)改變。然后用戶前進(jìn)至模板選擇屏幕,例如在圖3B中的框352處所顯示的。如 所見(jiàn),框352提供可用模板的列表,作為生成配置對(duì)給定服務(wù)的監(jiān)視的服務(wù)定 義的起始點(diǎn)。在UI顯示畫(huà)面352中顯示的模板列表包括對(duì)應(yīng)于操作系統(tǒng)服務(wù)、 com+應(yīng)用程序、數(shù)個(gè)應(yīng)用程序、網(wǎng)站、Web服務(wù)、Web應(yīng)用程序、數(shù)據(jù)庫(kù)應(yīng) 用程序以及分布式應(yīng)用程序的模板。顯示在顯示畫(huà)面352中的各種模板表示可 供用戶選擇的可用模板208 — 210 (來(lái)自圖2)。顯示畫(huà)面352中的模板僅表示 代表性的模板列表,并且還能提供其它模板列表。用戶只需選擇在例如用戶界面顯示畫(huà)面352上向用戶顯示的監(jiān)視模板之 一。對(duì)監(jiān)視模板的選擇由圖3A中的框302指示。這可以由各種各樣的方式來(lái) 完成,例如通過(guò)高亮顯示所需模板并點(diǎn)擊"Next",或雙擊所選模板,等等。一旦用戶選擇了監(jiān)視模板,監(jiān)視配置向?qū)?02訪問(wèn)UI組裝件209并在對(duì) 應(yīng)于所選模板的組裝件中獲得一 UI頁(yè)面組。該UI頁(yè)面組中的UI頁(yè)面作為配 置屏幕354 (圖3B所示)而顯示,并允許用戶輸入用于進(jìn)一步配置由所選模 板表示的監(jiān)視功能的配置信息226。例如,模板可以允許用戶打開(kāi)或關(guān)閉各種 不同的監(jiān)視選項(xiàng),或?yàn)橄到y(tǒng)性能準(zhǔn)則設(shè)置閾值水平,等等。顯示用于用戶對(duì)所 選模板進(jìn)行配置的配置屏幕由圖3A中的框304指示。然后用戶向配置向?qū)?02提供配置信息226,并且向?qū)?02生成服務(wù)定義 228。這由圖3A中的框306指示。配置屏幕354還可以說(shuō)明性地允許用戶添加定制監(jiān)視。圖3D示出了由模 板表示的并且由用戶通過(guò)配置屏幕354配置和定制的健康模型的一個(gè)示例性實(shí) 施例?,F(xiàn)在將描述此示例性模型320以增強(qiáng)對(duì)本討論的其余部分的理解。健康模型320說(shuō)明性地包括第一模型部分315和第二模型部分330。第一 模型部分315說(shuō)明性地是由所選模板預(yù)定義和表示并且可以由用戶通過(guò)配置屏 幕354配置的監(jiān)視。第二模型部分330說(shuō)明性地是由用戶通過(guò)配置屏幕輸入的 定制監(jiān)視程序配置。第一模板部分315說(shuō)明性地包括多個(gè)監(jiān)視程序321-325,所有監(jiān)視程序監(jiān) 視不同的項(xiàng)目。模型320還包括上調(diào)低層監(jiān)視程序321-325的結(jié)果的上調(diào)監(jiān)視程序(roll-up monitor) 326-329。在圖3D所示的實(shí)施例中,監(jiān)視程序321-325 包括僅檢查服務(wù)狀態(tài)(即,它是否正在運(yùn)行、已停止、或已被異常終止)的服 務(wù)檢查監(jiān)視程序321。監(jiān)視程序還包括監(jiān)視從屬服務(wù)的狀態(tài)的從屬服務(wù)檢查監(jiān) 視程序322。監(jiān)視程序323-325是分別監(jiān)視處理器、存儲(chǔ)器和句柄的使用的資 源使用監(jiān)視程序。上調(diào)監(jiān)視程序326和327上調(diào)來(lái)自這些監(jiān)視程序的信息,上 調(diào)監(jiān)視程序326和327實(shí)現(xiàn)規(guī)則以向基本健康服務(wù)上調(diào)監(jiān)視程序328提供指示 基本的被監(jiān)視的準(zhǔn)則或特性(由監(jiān)視程序321-325監(jiān)視)是否達(dá)到或者超過(guò)給 定閾值的狀態(tài)信息?;窘】捣?wù)上調(diào)監(jiān)視程序329基于來(lái)自上調(diào)監(jiān)視程序 326和327的輸入進(jìn)而向服務(wù)健康監(jiān)視程序329提供狀態(tài)數(shù)據(jù)。圖3D還示出健康服務(wù)模型320的第二模型部分330包括一定制探測(cè)監(jiān)視 程序配置。監(jiān)視程序配置330包括一對(duì)監(jiān)視被高級(jí)健康服務(wù)監(jiān)視程序333上調(diào) 的高級(jí)(不是基本)特性或準(zhǔn)則的定制監(jiān)視程序331和332。定制監(jiān)視程序可 以監(jiān)視在被監(jiān)視的服務(wù)中的定制探測(cè)。例如,監(jiān)視程序331可以說(shuō)明性地為一 個(gè)監(jiān)視涉及正被監(jiān)視的服務(wù)的高級(jí)健康信息的定制探測(cè)事件的事件監(jiān)視程序。 類似地,數(shù)字?jǐn)?shù)據(jù)監(jiān)視程序332可以說(shuō)明性地監(jiān)視由被監(jiān)視的探測(cè)(例如數(shù)個(gè) 安全性相關(guān)事件)生成的任何類型的數(shù)字?jǐn)?shù)據(jù)。來(lái)自監(jiān)視程序331和332的數(shù) 據(jù)由監(jiān)視程序333上調(diào)并提供給提供指示被監(jiān)視服務(wù)的總體健康的輸出的服務(wù) 健康監(jiān)視程序329。在一個(gè)說(shuō)明性實(shí)施例中,模型部分330中的該定制探測(cè)監(jiān) 視配置由通過(guò)對(duì)應(yīng)于所選模板的配置屏幕354輸入的用戶的配置信息226來(lái)配 置。在任何情況下,如圖3中的框306所示, 一旦所有用戶配置信息226被輸 入至配置向?qū)?02中,配置向?qū)?02就生成服務(wù)定義228。然后,配置向?qū)?02可以說(shuō)明性地向用戶提供額外的屏幕,例如圖3B中 的提示用戶關(guān)于該服務(wù)定義228的名稱、描述以及位置的UI屏幕356。這允 許用戶特別地為服務(wù)定義228取名,以及將服務(wù)定義228存儲(chǔ)于給定位置。最后,配置向?qū)?02可以提供允許用戶審閱已輸入的所有配置信息以及已 創(chuàng)建的服務(wù)定義228的最終審閱屏幕358(如圖3B)。當(dāng)然,如所期望的,可以 提供各種各樣的其它或不同的用戶界面屏幕??梢钥吹?,基于用戶希望去監(jiān)視的服務(wù)類型的類型繼承并由此基于用戶選擇的模板,可以說(shuō)明性地自動(dòng)解答在本申請(qǐng)的背景部分中提出的大量問(wèn)題。一旦形成服務(wù)定義,它即被傳送至監(jiān)視可編程性層204。可編程性層204 然后訪問(wèn)可用的監(jiān)視邏輯220并創(chuàng)建監(jiān)視由服務(wù)定義228所定義的服務(wù)所需的 監(jiān)視程序、規(guī)則、任務(wù)、視圖、類等等。該信息說(shuō)明性地被存儲(chǔ)在層204可訪 問(wèn)的數(shù)據(jù)存儲(chǔ)中。這由圖3A中的框307指示。一旦生成服務(wù)定義228并且創(chuàng)建了監(jiān)視邏輯,可編程性層204執(zhí)行發(fā)現(xiàn)來(lái) 定位用戶環(huán)境中所有要被監(jiān)視的服務(wù)。例如, 一旦生成了服務(wù)定義228,可編 程性層204必須檢查該用戶環(huán)境中的每一臺(tái)機(jī)器以確定它是否正在運(yùn)行監(jiān)視構(gòu) 架200以及它是否有用戶期望監(jiān)視的特定服務(wù)。用戶環(huán)境可以包括單個(gè)機(jī)器、 的內(nèi)聯(lián)網(wǎng)或其它網(wǎng)絡(luò),以及還可能包括服務(wù)器、移動(dòng)設(shè)備、便攜式計(jì)算機(jī)、無(wú) 線網(wǎng)絡(luò)上的計(jì)算設(shè)備等??删幊绦詫?04由此確定它是否需要將與服務(wù)定義相 關(guān)聯(lián)的監(jiān)視邏輯或策略應(yīng)用于給定機(jī)器。例如,假設(shè)要監(jiān)視的服務(wù)是反病毒應(yīng)用程序。還假設(shè)用戶環(huán)境中的機(jī)器中 的一個(gè)給定機(jī)器主存該反病毒應(yīng)用程序。在此情況中,可編程性層204標(biāo)識(shí)主 存該反病毒應(yīng)用程序的機(jī)器并將與服務(wù)定義228相關(guān)聯(lián)的監(jiān)視策略應(yīng)用于該機(jī) 器。這可以通過(guò)各種各樣不同的方式來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,可編程性層204 向在用戶環(huán)境中正被監(jiān)視系統(tǒng)監(jiān)視的每個(gè)機(jī)器發(fā)送一發(fā)現(xiàn)規(guī)則。那些機(jī)器接收 該發(fā)現(xiàn)規(guī)則并周期性地運(yùn)行該發(fā)現(xiàn)規(guī)則以便査看在該機(jī)器上是否存在該特定 服務(wù)(在此情況中,為反病毒應(yīng)用程序)。當(dāng)該服務(wù)確實(shí)存在于該機(jī)器上時(shí), 則如服務(wù)定義228中描述的,監(jiān)視該服務(wù)所需的監(jiān)視策略被提供給該機(jī)器,以 便可以實(shí)現(xiàn)期望的服務(wù)監(jiān)視。執(zhí)行發(fā)現(xiàn)由圖3A中的框308指示了。當(dāng)執(zhí)行了發(fā)現(xiàn)并且標(biāo)識(shí)了要監(jiān)視的服務(wù)在其上運(yùn)行的機(jī)器,可編程性層 204然后標(biāo)識(shí)要被監(jiān)視的服務(wù)的各單獨(dú)實(shí)例以便將這些實(shí)例中的一個(gè)與另一個(gè) 區(qū)分出來(lái)。換言之,如果機(jī)器正運(yùn)行同一服務(wù)的兩個(gè)實(shí)例,則必須區(qū)分這兩個(gè) 實(shí)例。在一個(gè)實(shí)施例中,這通過(guò)采用用戶所選的模板中的身份信息來(lái)執(zhí)行。模 板說(shuō)明性地包括將成功標(biāo)識(shí)出要被監(jiān)視的服務(wù)的每個(gè)實(shí)例的身份或關(guān)鍵屬性 (例如在一個(gè)計(jì)算機(jī)內(nèi)的服務(wù)名稱以及多計(jì)算機(jī)實(shí)現(xiàn)的機(jī)器名稱)。這將說(shuō)明 性地由用戶所選模板執(zhí)行。標(biāo)識(shí)各單獨(dú)實(shí)例由圖3A中的框310指示。一旦標(biāo)識(shí)出要被監(jiān)視的服務(wù)的位置以及各單獨(dú)實(shí)例,監(jiān)視系統(tǒng)可編程性層204然后在標(biāo)識(shí)出的機(jī)器上部署已創(chuàng)建的監(jiān)視程序、規(guī)則、視圖等來(lái)監(jiān)視服務(wù)。這由圖3A的框312指示。然后,經(jīng)部署的監(jiān)視邏輯222可以提供各種輸出。例如,輸出可以作為以 不同方式顯示被監(jiān)視服務(wù)的性能的各視圖。例如,各視圖可以顯示被監(jiān)視服務(wù) 關(guān)于存儲(chǔ)使用對(duì)比時(shí)間的性能。當(dāng)然,還可采用其它各種各樣的不同視圖。類 似地,所部署的監(jiān)視邏輯222可以生成集合。集合通過(guò)執(zhí)行與要被收集的、存 儲(chǔ)于數(shù)據(jù)庫(kù)中并隨后被報(bào)告的事件相關(guān)聯(lián)的規(guī)則來(lái)獲得。例如,對(duì)于監(jiān)視邏輯 來(lái)說(shuō),收集用戶希望記入日志的并隨后生成關(guān)于其的報(bào)告的安全性相關(guān)事件是 合乎需要的。監(jiān)視邏輯222和可編程性層204還可以與配置向?qū)?02結(jié)合來(lái)執(zhí)行任務(wù)。 例如, 一個(gè)任務(wù)可以允許用戶一旦服務(wù)停止后即重啟該服務(wù)。提供輸出由圖3A 中的框314指示。可編程性層204還為模板提供可編程性支持。例如,可編程性層204允許 有人通過(guò)生成模板集合、枚舉模板、獲得用于模板的標(biāo)識(shí)符、以及執(zhí)行模板來(lái)管理模板。將注意的是,在一個(gè)實(shí)施例中,每個(gè)模板具有一默認(rèn)策略。默認(rèn)地應(yīng)用于 例如健康模型的配置可以包括默認(rèn)閾值。換言之,在健康模型的資源使用部分 中,可以有與被監(jiān)視的服務(wù)己使用的存儲(chǔ)器量、已使用的處理器容量等等相關(guān) 聯(lián)的閾值。對(duì)這些值的監(jiān)視可以是性能計(jì)數(shù)器。如果性能計(jì)數(shù)器超過(guò)閾值,則 監(jiān)視程序中的狀態(tài)信息改變。當(dāng)然,在另一個(gè)實(shí)施例中,還允許用戶改變默認(rèn) 值。圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的模板創(chuàng)作環(huán)境500的框圖。模板創(chuàng)作環(huán)境 500包括接收來(lái)自作者510的模板定義504以及包括用戶界面頁(yè)面組的組裝件 506的模板創(chuàng)作組件502。模板創(chuàng)作組件502生成模板并將其隨同組裝件506 一起插入到如由標(biāo)號(hào)512指示的諸如管理包(managementpack)等分發(fā)機(jī)制中。圖5是更好地示出生成分發(fā)機(jī)制的環(huán)境500的操作的流程圖。分發(fā)機(jī)制可 以是各種不同機(jī)制中的任何一種,并且為了示例,此處描述的分發(fā)機(jī)制是管理 包。如上所述,模板基本上是一組預(yù)定義的由用戶輸入某組配置信息來(lái)配置的 監(jiān)視。首先,作者生成一模板定義。這由圖5中的框600指示。在一個(gè)實(shí)施例中,為了生成模板定義504,需要三樣?xùn)|西配置信息、引用及實(shí)現(xiàn)信息。說(shuō) 明性地,配置信息是指定將由用戶輸入并在實(shí)現(xiàn)部分中使用的配置值的信息。 引用是將在存儲(chǔ)模板輸出的管理包中創(chuàng)建的引用列表。實(shí)現(xiàn)部分本身是具有在 其中嵌入的替代參數(shù)的管理包片段。這些參數(shù)涉及該模板的配置部分。例如,如果需要元素ServiceName (服務(wù)名稱)作為配置的一部分,則其可以作為 Sconfig/ServiceNameS在實(shí)現(xiàn)部分中使用。然后,當(dāng)運(yùn)行該模板時(shí),該值用 ServiceName的實(shí)際值來(lái)替代。創(chuàng)建模板定義504的第一步是創(chuàng)建作為有效的獨(dú)立管理包所需的管理包元 素(例如類、監(jiān)視程序、規(guī)則等)。功能被測(cè)試并且如所需要地被更新,并且 模板從管理包中創(chuàng)建并被插入到將最終包含該模板的管理包的模板部分中。然 后,定義模板所需要的配置信息并在模板中需要的地方替代配置參數(shù)。然后, 可以運(yùn)行該模板并測(cè)試輸出。模板創(chuàng)作組件502說(shuō)明性地在生成模板定義504時(shí)向作者510提供這個(gè)逐 步方法。用于生成模板定義的步驟在以下參考圖6更詳細(xì)地描述。然后,作者生成包括用戶界面頁(yè)面組的相應(yīng)組裝件,該用戶界面頁(yè)面集在 用戶選擇了該模板時(shí)將作為配置頁(yè)面354 (圖3B中所示)向用戶顯示。這由 圖5中的框602指示。UI頁(yè)面集可以用多種不同的方式來(lái)生成。例如,管理 包可以包含可被配置為UI頁(yè)面組的一個(gè)或多個(gè)可重復(fù)使用UI頁(yè)面定義。UI 頁(yè)面定義的一個(gè)示例在以下表1中示出。組<UIPages><!--允許用戶瀏覽一機(jī)器并選擇窗口性能計(jì)數(shù)器及其實(shí)例的UI頁(yè)面。輸入無(wú)(對(duì)該頁(yè)面的所有輸入都被忽略) 輸出示例<ComputerName/〉<CounterName〉% DiskTime</CounterName><〇bj ectName>PhysicalDisk</Obj ectName><InstanceName/>—-><UIPage ID=',System,UIPage. Perf ormanceCounterPage, Accessibility-" Puk)lic"〉 〈工mplementati〇n>.Mom.UI,Components</Assembly><Type〉Microsoft.EnterpriseManagement.Mom.Internal.UI.Modules.PerfCounterDataSource〈/Type〉</UIPsge〉以上表1中的示例性頁(yè)面允許用戶選擇一性能對(duì)象、計(jì)數(shù)器和實(shí)例,并之 后輸出該信息。該頁(yè)面組包含頁(yè)面引用集合以及將各頁(yè)面的輸出變換成向其分配了該頁(yè) 面組的類型所使用的形式的輸出變換。以下表2示出了如何采用頁(yè)面引用來(lái)定 義一頁(yè)面組的例子。表2<UIPages〉〈!一允許用戶選取一WMI名稱空間、類、該類的屬性以及探查該WMI的頻率 的U工頁(yè)面。.(可任選,如果沒(méi)有指定,則將示出頻率控件和值,如果為假,則在更新時(shí) 僅讀取并生成WM工Query標(biāo)簽). 輸出示例<NameSpace〉ro〇t\cimv2</NameSpace> 〈Query〉select * from Win32—Service</Query> <Params〉</Params><Frequency>9 00</Frequency>一一〉<UIPage ID=,,System.UIPage. WM工Query Provider Page1 Accessibility-" Public',> (Implementation)<Assembly>Micr〇s〇ft.Mom.U工.Components〈/Assembly〉〈Type>Micr〇s〇ft,EnterpriseManagement.Mom, Internal.UI, Modules.WMIDataSource</Type〉 </Implementati〇n〉 </UIPage></UIPages〉 <UIPageSets〉< ! 一一用于System,Windows .Windows WmiQueryProvider禾莫塊類型的 UI頁(yè)面組<UIPageSetID=,'System . U工PageSet .Modules .Windows WM工Query Provider',TypeDefinition工D-"System,Windows,WruiQueryProvider"> <UIPageReferences〉 <UIPageReference ID="System.UIPageSet.Modules.Windows.Wmi Query Provider . Ref erencel ,'PageID="System.U工Page.WM工QueryProviderPage"><InputParameters/> <InputTrans f〇rm/> </UIPageReference> </UIPageReferences></UIP3geSet〉 <UIPageSetID="System.UIPageSet.Modules.Windows.WMIQueryProbe"TypeDefinitionID="System.Windows WmiQueryProbe"〉 <UIPageReferences> <UIPageReference ID="System.UIPageSet.Modules.Windows,WmiQueryProbe.ReferencelPageID="System.U工Page WM工QueryProviderPage"><InputParameters)〈ShowFrequency〉false</Sh〇wFrequency> </InputParameters> <InputTrans f〇,/> </UIPageReference〉 </UIPageRefe;i:ences> <〇utputTrans f〇rm><xsl: stylesheet versi〇n=,' 1 . ',xmlns:xsl="http://www w3 〇rg/l999/XSL/Transform"〉<xsl:output method-"xral" indent="yes" omit一xml一—一〉declaration="yes"/><xsl:template match="/"〉<xsl:copy-of select-"/NameSpace"/> <xsl:copy-of select="/Query"/> <xsl:copy-of select="/Params"/> </xsl:template> </xsl:stylesheet></UIPageSet> </UIPageSets>接著,生成管理包,或者修改現(xiàn)有的管理包,使得它包括新的模板和對(duì)應(yīng) 的組裝件(對(duì)應(yīng)的UI頁(yè)面組)?;蛘?,可以通過(guò)諸如安裝于用戶正使用的計(jì) 算機(jī)上的安裝包等另一機(jī)制來(lái)傳送管理包(MP)定義與組裝件。重要是它們以某 種方式傳送,并且很可能它們是一起傳送的。這由圖5中的框604指示。接著,管理包被分發(fā)到具有操作監(jiān)視系統(tǒng)(例如,上述的向?qū)Ш涂删幊绦?層)并在其上完成監(jiān)視的機(jī)器上。這可以用各種方式完成,例如將其導(dǎo)入到數(shù) 據(jù)庫(kù)中以及由適當(dāng)?shù)挠?jì)算機(jī)取出。這由圖5中的框606指示。當(dāng)所分發(fā)的管理包被導(dǎo)入到數(shù)據(jù)庫(kù)中時(shí),新的模板和其對(duì)UI組裝件的引 用被添加到可用模板列表。這允許該新的模板可被用戶選擇。換言之,當(dāng)用戶 調(diào)用配置向?qū)?02時(shí),該向?qū)?02查詢數(shù)據(jù)庫(kù)以獲得可用模板列表。然后,與 新模板相對(duì)應(yīng)的顯示畫(huà)面將在圖3B中所示的模板顯示屏幕354中顯示,使得 該新的模板可被用戶選擇。這由圖5中的框608指示。當(dāng)新的模板被用戶選擇時(shí),配置向?qū)?02基于對(duì)應(yīng)的組裝件(UI頁(yè)面組) 209顯示配置屏幕354。這由圖5中的框610指示。換言之, 一旦新的模板被 用戶選擇,與該模板相關(guān)聯(lián)的特定配置UI頁(yè)面組被標(biāo)識(shí)并顯示給用戶。那些 頁(yè)面組將作為圖3B中所示的配置頁(yè)面354被顯示。圖6是更好地示出如何生成圖5中框600所示的模板定義的流程圖。首先, 作者生成模板所使用的管理包元素(例如類、監(jiān)視器、規(guī)則等)。這可以用生 成任何其它管理包類似的方式完成。例如,表3顯示了包含很少信息(單一類) 但被設(shè)計(jì)成簡(jiǎn)單地說(shuō)明此處討論的基本原理的示例性管理包。趨<ManagementPack xmlns : xsd-"http : / /www . w3 . org/2 001/XMLSchema,'xmlns : xsi = ',http : / /www , w3 .〇rg/2 0 01 /XMLSchema-instance ,,><Manifest> <Identity><ID>System,Windows.Service.Template</ID><Versi〇n>6.0.0.0</Versi〇n〉 <PublicKeyToken〉31bf38 5 6ad364e35</PublicKeyT〇ken></Identity><Name>Micorosft Windows Service Template Management Pack</Name><References〉<Reference Alias="Windows"> <ID〉System.Windows.MP</ID> <Versi〇n>6.0.0.0</Versi〇n><PublicKeyT〇ken〉31bf38 5 6ad3 6 4e35</PublicKeyT〇ken></Reference〉 </References> </Manifest> <TypeDefiniti〇ns> <EntityTypes〉 <ClassTypes〉<ClassType ID=,'SomeClassid', Abstract-"false" Accessibility-"Public" H〇sted="true" Base="Windows!System,Windows.OwnProcessNTService"/></ClassTypes> </EntityTypes> </TypeDefinitions〉</ManagementPack>生成管理包元素由圖6中的框702指示。在一個(gè)實(shí)施例中,作者510接著創(chuàng)建具有可以與原始管理包相同的標(biāo)識(shí)符 的模板。在一個(gè)實(shí)施例中,有效的模板定義包括一空配置元素、對(duì)原始管理包 中定義的每個(gè)引用的一個(gè)引用、以及稱作自引用的新引用,模板使用該自引用 來(lái)定義對(duì)包含它的管理包的引用。這可以不是必需的,并且如果模板作者不使 用,則可以移除它。該定義還說(shuō)明性地包括包含了從中創(chuàng)建模板的整個(gè)管理包 的實(shí)現(xiàn)部分。例如,以上表3中所示的管理包將生成以下表4所示的模板。表4<Template ID="System.Windows.Service.Template"><C〇nfigurati〇n;> </C〇nfiguration> <References〉<Reference 工D="Windows"/〉 <Reference ID="Self',/> </References> 〈Implementation><TypeDefinitions> <EntityTypes〉 <ClassTypes><ClassType ID=,,SomeClassid,' Abstract^"false" Accessibility-"Public" Hosted="true Base = "Windows ! System .Windows . OwnProces sNT Service ', /〉 </ClassTypes〉 <RelationshipTypes/〉 </EntityTypes〉 </TypeDefiniti〇ns〉 </工mplementation>將原始管理包轉(zhuǎn)換成模板由圖6中的框704指示。在另一個(gè)實(shí)施例中,該模板 簡(jiǎn)單地是管理包的一部分。接著,作者510定義所需的模板配置。 一開(kāi)始,在本示例中,假設(shè)作者希 望用戶提供兩個(gè)配置元素來(lái)作為配置信息226 (圖2中)。在這種情況下,作 者可以輸入如以下表5所示的配置部分。<Template I D=" System. Windows .Service . Template ,' > <C〇nfigurati〇n>〈;xsd : element name = " Name space " type = "xsd:string"/〉 <xsd:element name="TypeNarue" type="xsd:string"/〉 </Configui:ati〇n> <References>(Reference ID= "Windows',/> <Ref erence 工D=,'Self " /> </References〉 <Implementation)<TypeDefiniti〇ns> <EntityTypes> 〈C丄assTypes〉<ClassType 工D-',SorueClassid,' 7\bstract="false" Accessibility="Public" H〇sted="true" Base = "Windows!System,Windows.OwnProcessNTService,' /> </ClassTypes> <Relati〇nshipTypes/> </EntityTypes></TypeDefinitions> < /工mpleruentat ion〉 </Template〉定義模板配置由圖6中的框706指示。最后,作者添加替換變量。這樣,作者為配置項(xiàng)目和引用定義了替代字符 串。這些可以位于實(shí)現(xiàn)部分的任何地方并且可以通過(guò)例如提供顯示可被插入的 配置元素與引用的右擊上下文菜單而方便化。在這個(gè)正討論的簡(jiǎn)單示例中,作 者為類名釆用兩個(gè)配置變量并使用基類中的引用之一。這由以下的表6示出。表6<Template ID="System.Windows.Service.Template"〉 <C〇nfigurati〇n><xsd:element name="Namespace" type="xsd:string"/> <xsd:element name="TypeName" type="xsd:string"/> </C〇nfigurati〇n> <References><Ref erence ID=,'Self " /> <Reference ID="System"/> 〈Reference ID="Windows"/> <Reference ID="Mom"/〉 </References〉 <Implementation><TypeDefiniti〇ns> <EntityTypes> <ClassTypes> <ClassType工D="$C〇nfig/Namespace$.$C〇nfig/TypeName$" Abstract = "false"Accessibi1ity="Public" H〇sted="true" Base = "$Reference/Self$System.Windows,OwnProces sNTService"/〉</ClassTypes〉 <RelationshipTypes/> </EntityTypes〉 </TypeDefiniti〇ns> </Implementation) </Template〉添加替代變量由圖6中的框708指示。該模板定義是完整的,并且作者說(shuō)明性 地測(cè)試該模板的執(zhí)行。然后,作者繼而為新創(chuàng)建的模板創(chuàng)建用戶界面頁(yè)面組。這已在上面描述并 且可以需要新的UI頁(yè)面或可以使用現(xiàn)有的UI頁(yè)面。圖7示出了管理包的總體模式。將注意到,由于現(xiàn)在的討論涉及將模板添加到管理包,因此此處只討論模板部分。圖7簡(jiǎn)單地示出在一個(gè)示例性模式中 模板可在何處適合到管理包。在這個(gè)模式中可看到,模板在承載了模板的管理 包中定義并且模板所要求的所有必需類型和對(duì)象被包括在同一管理包或被引 用的管理包中。UI組件作為組裝件隨同管理包一起提供,并且對(duì)這些組裝件 的引用被包括在管理包中。圖7A-7B示出了用于定義模板的模式,而圖8A-8J示出了用于定義UI頁(yè)面組的模式。如圖7A所示,管理包的模板部分包括一個(gè)或多個(gè)模板。如圖7B所示, 每個(gè)模板需要配置、引用和實(shí)現(xiàn)部分。該模板說(shuō)明性地具有兩個(gè)屬性。第一個(gè) 屬性是表示該類型的內(nèi)部標(biāo)識(shí)符的ID,并且該標(biāo)識(shí)符在管理包的名稱空間內(nèi) 是唯一的。第二個(gè)屬性是作為管理包作者使用的批注域的可任選批注。配置部分定義了為運(yùn)行模板必須被設(shè)置的配置項(xiàng)目。這由圖7C示出。引用部分說(shuō)明性地包含了包括在管理包中的、在運(yùn)行模板之后存儲(chǔ)了輸出 的引用信息。這由圖7D較好地示出。實(shí)際引用在包含被使用之前的模板的管 理包中定義。在管理包中沒(méi)有定義的一個(gè)模板專用引用是上述的自引用。實(shí)現(xiàn)部分包括管理包片段。這是在運(yùn)行模板之后將創(chuàng)建管理包片段的模 板。這個(gè)部分通常在管理包模式定義之后,但不同的是來(lái)自模塊的配置不僅用 于配置管理包對(duì)象,還用來(lái)填充對(duì)象名稱。該模式在圖7E中示出。如上面簡(jiǎn)短地討論的,管理包可以包括零個(gè)或多個(gè)可重復(fù)使用UI頁(yè)面定 義。如圖8A所示,每個(gè)UI頁(yè)面在UI頁(yè)面部分中定義。每個(gè)UI頁(yè)面具有三 個(gè)屬性,第一個(gè)屬性是作為管理包名稱空間內(nèi)的用于該UI頁(yè)面的唯一標(biāo)識(shí)符 的標(biāo)識(shí)符屬性。第二個(gè)屬性是管理包作者使用的可任選批注域,以及第三個(gè)屬 性是確定該UI頁(yè)面是否可以由另一個(gè)管理包中的UI頁(yè)面組引用的可訪問(wèn)性屬 性。每個(gè)UI頁(yè)面需要一個(gè)實(shí)現(xiàn)部分。圖8B示出了用于此部分的模式。該實(shí)現(xiàn) 部分包含組裝件和定義了該頁(yè)面的類型信息。這由圖8C示出。UI頁(yè)面組被用來(lái)將在同一管理包或引用管理包中定義的各UI頁(yè)面組分組 在一起。頁(yè)面組描述了將為模板顯示的UI。如圖8D所示,UI頁(yè)面組部分包 括零個(gè)或多個(gè)UI頁(yè)面組。每個(gè)頁(yè)面組具有三個(gè)屬性,第一個(gè)屬性是標(biāo)識(shí)符,第二個(gè)屬性是可任選批注域,以及第三個(gè)屬性是標(biāo)識(shí)了該頁(yè)面組作為目標(biāo)的類 型的類型定義標(biāo)識(shí)符。如圖8E所示,頁(yè)面組具有對(duì)UI頁(yè)面的一組引用,并且可任選地具有輸出變換。UI頁(yè)面引用元素包含先前定義的一對(duì)多UI頁(yè)面引用。這由圖8F指示。 每個(gè)UI頁(yè)面引用具有兩個(gè)屬性,包括一個(gè)標(biāo)識(shí)符屬性和一個(gè)類型標(biāo)識(shí)符屬性。 類型標(biāo)識(shí)符屬性是對(duì)已經(jīng)在該管理包中或引用管理包中定義過(guò)的UI頁(yè)面的引用。頁(yè)面組將每個(gè)頁(yè)面的輸出按照顯示它們的順序放置在一起,以便為模板創(chuàng) 建配置輸出。可任選地,如果指定了輸出變換,則在提交輸出配置之前,將該 變換應(yīng)用于輸出配置。如圖8G所示,該變換可以在UI頁(yè)面組的輸出變換元素 中指定。UI頁(yè)面組內(nèi)的UI頁(yè)面引用具有如圖8H所示的模式。標(biāo)題和副標(biāo)題控制 該頁(yè)面在UI中的顯示。這些是內(nèi)部名稱,并且可在用于友好的、本地化的文 本的語(yǔ)言包部分中被引用。選項(xiàng)卡名稱控制該選項(xiàng)卡的名稱,即當(dāng)該名稱在選 項(xiàng)卡控件中時(shí)該名稱將被顯示在該選項(xiàng)卡上。在該情況下,可以不使用標(biāo)題和 副標(biāo)題。頁(yè)面組定義不需要了解它在UI (例如在向?qū)ы?yè)面或選項(xiàng)卡頁(yè)面)中 將如何被顯示。一個(gè)頁(yè)面可任選地接收輸入?yún)?shù)。這些參數(shù)由頁(yè)面實(shí)現(xiàn)根據(jù)要求來(lái)使用。 如圖81所示,輸入?yún)?shù)可以是諸如XML等任何公知的配置。UI頁(yè)面將目標(biāo)對(duì)象的配置作為輸入。例如,當(dāng)打開(kāi)模板的屬性時(shí),該模 板的配置被傳送至每個(gè)頁(yè)面。 一個(gè)頁(yè)面可以僅對(duì)該配置的一部分感興趣,所以 可以將變換應(yīng)用于該配置以便只有所需要的配置被該頁(yè)面使用。如圖8J所示, 這個(gè)可任選變換在頁(yè)面引用的輸入變換元素中指定。可以看到,本系統(tǒng)提供使用戶能對(duì)甚至是定制的解決方案或服務(wù)進(jìn)行快速 配置監(jiān)視功能的模板。本系統(tǒng)還是可擴(kuò)展的,以使新模板與相應(yīng)的組裝件(或 用戶界面顯示畫(huà)面)能被容易地定義并添加至監(jiān)視系統(tǒng)。盡管用對(duì)結(jié)構(gòu)性特征和/或方法性動(dòng)作專用的語(yǔ)言描述了該主題,但應(yīng)該理 解,所附權(quán)利要求中定義的主題并不必然局限于以上所描述的具體特征或動(dòng) 作。相反,上述的具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例性形式而公開(kāi)的。
權(quán)利要求
1.一種配置用于監(jiān)視計(jì)算機(jī)控制的服務(wù)的計(jì)算機(jī)實(shí)現(xiàn)的監(jiān)視程序的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括基于模板選擇輸入,訪問(wèn)多個(gè)監(jiān)視模板中所選擇的一個(gè)監(jiān)視模板;顯示一用戶界面組裝件中對(duì)應(yīng)于所選模板的一組用戶界面配置顯示畫(huà)面;通過(guò)所述一組用戶界面配置顯示畫(huà)面,接收指示所選模板的用戶配置的配置輸入;以及基于所選模板和所述配置輸入,輸出指示要在所述服務(wù)上執(zhí)行的所期望的監(jiān)視的配置的服務(wù)定義。
2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法還包括 基于所述服務(wù)定義所定義的所期望的監(jiān)視的配置,配置監(jiān)視邏輯。
3. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法還包括 部署所配置的監(jiān)視邏輯來(lái)監(jiān)視所述服務(wù)。
4. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述計(jì)算機(jī)實(shí)現(xiàn) 的方法是在一用戶環(huán)境中部署的,并且所述方法還包括在部署所配置的監(jiān)視邏輯之前,標(biāo)識(shí)所述用戶環(huán)境中部署所述服務(wù)的位置。
5. 如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述用戶環(huán)境包 括多個(gè)計(jì)算系統(tǒng),所述多個(gè)計(jì)算系統(tǒng)中的每一個(gè)具有一相應(yīng)的監(jiān)視系統(tǒng),并且 其中,標(biāo)識(shí)位置包括向所述計(jì)算系統(tǒng)中的每一個(gè)發(fā)送一發(fā)現(xiàn)規(guī)則,所述發(fā)現(xiàn)規(guī)則由所述監(jiān)視系 統(tǒng)執(zhí)行以確定所述對(duì)應(yīng)的計(jì)算系統(tǒng)是否已部署了所述服務(wù)。
6. 如權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法還包括:標(biāo)識(shí)在所述用戶環(huán)境中部署的所述服務(wù)的單獨(dú)實(shí)例。
7. 如權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法還包括 部署所述服務(wù)定義指示的所期望的監(jiān)視的配置,以在所標(biāo)識(shí)的位置上監(jiān)視所述服務(wù)的單獨(dú)實(shí)例。
8. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述方法還包括 接收所述模板選擇輸入作為指示要被監(jiān)視的服務(wù)類型。
9. 一種管理服務(wù)監(jiān)視模板的方法,包括生成定義對(duì)應(yīng)于對(duì)一種服務(wù)類型的一組監(jiān)視的服務(wù)監(jiān)視模板的模板定義; 生成對(duì)應(yīng)于所述服務(wù)監(jiān)視模板的一組用戶界面顯示畫(huà)面; 將所述服務(wù)監(jiān)視模板與對(duì)應(yīng)的用戶界面顯示畫(huà)面放置在一分發(fā)機(jī)制中;以及將所述服務(wù)監(jiān)視模板與所述對(duì)應(yīng)的一組用戶界面顯示畫(huà)面分發(fā)到使用服 務(wù)監(jiān)視系統(tǒng)的用戶環(huán)境中的計(jì)算系統(tǒng)。
10. 如權(quán)利要求9所述的方法,其特征在于,所述方法還包括 將所述服務(wù)監(jiān)視模板以及所述對(duì)應(yīng)的一組用戶界面顯示畫(huà)面展示給所述用戶環(huán)境中的服務(wù)監(jiān)視系統(tǒng)。
11. 如權(quán)利要求io所述的方法,其特征在于,所述用戶界面顯示畫(huà)面包括配置屏幕,并且其中,將所述服務(wù)監(jiān)視模板和所述用戶界面顯示畫(huà)面放置在一分發(fā)機(jī)制中包括以一組靜態(tài)用戶界面顯示屏幕來(lái)分組所述配置屏幕。
12. 如權(quán)利要求ll所述的方法,其特征在于,所述方法還包括 在所述服務(wù)監(jiān)視系統(tǒng)上顯示在所述服務(wù)監(jiān)視系統(tǒng)中部署的所有監(jiān)視模板的指示;以及接收對(duì)所述服務(wù)監(jiān)視模板之一 的用戶選擇。
13. 如權(quán)利要求12所述的方法,其特征在于,所述方法還包括 顯示對(duì)應(yīng)于所述用戶監(jiān)視模板中所選擇的一個(gè)用戶監(jiān)視模板的配置屏幕。
14. 如權(quán)利要求9所述的方法,其特征在于,將所述服務(wù)監(jiān)視模板和所述 對(duì)應(yīng)的用戶界面顯示畫(huà)面放置在一分發(fā)機(jī)制中包括將所述服務(wù)監(jiān)視模板和對(duì)所述用戶界面顯示畫(huà)面的引用放置在一具有預(yù) 定義模式的管理包中。
15. —種服務(wù)監(jiān)視系統(tǒng),包括-多個(gè)監(jiān)視配置模板,每個(gè)監(jiān)視配置模板表示一群共同服務(wù)類型的服務(wù)共有 的一組監(jiān)視特性;多個(gè)用戶界面顯示畫(huà)面組,每一組對(duì)應(yīng)于所述多個(gè)監(jiān)視配置模板中的一 個(gè);以及監(jiān)視配置組件,所述監(jiān)視配置組件被配置成接收對(duì)所述多個(gè)監(jiān)視配置模板 中的一個(gè)監(jiān)視配置模板的用戶選擇并顯示對(duì)應(yīng)于所選擇的監(jiān)視配置模板的一 組用戶界面顯示畫(huà)面。
16. 如權(quán)利要求15所述的服務(wù)監(jiān)視系統(tǒng),其特征在于,所述監(jiān)視配置組件 被配置成接收配置信息作為對(duì)所述用戶界面顯示畫(huà)面的用戶輸入,并基于所選 擇的監(jiān)視配置模板和所述配置信息生成服務(wù)定義,所述服務(wù)定義指示要在給定 服務(wù)上執(zhí)行的所期望的監(jiān)視。
17. 如權(quán)利要求16所述的服務(wù)監(jiān)視系統(tǒng),其特征在于,所述監(jiān)視配置組件 被配置成接收新的監(jiān)視配置模板以及對(duì)應(yīng)的用戶界面顯示畫(huà)面組,并顯示所述 新的監(jiān)視配置模板以供用戶選擇。
18. 如權(quán)利要求16所述的服務(wù)監(jiān)視系統(tǒng),其特征在于,所述服務(wù)監(jiān)視系統(tǒng)還包括監(jiān)視可編程性層,所述監(jiān)視可編程性層被配置成接收所述服務(wù)定義并基于 所述服務(wù)定義為所述給定服務(wù)配置監(jiān)視邏輯。
19. 如權(quán)利要求18所述的服務(wù)監(jiān)視系統(tǒng),其特征在于,所述監(jiān)視可編程性 層被配置成部署所配置的監(jiān)視邏輯以監(jiān)視所述給定服務(wù)。
20. 如權(quán)利要求19所述的服務(wù)監(jiān)視系統(tǒng),其特征在于,所述監(jiān)視可編程性層被配置成標(biāo)識(shí)用戶環(huán)境中使用的所述給定服務(wù)的單獨(dú)實(shí)例,并部署所配置的 監(jiān)視邏輯以監(jiān)視所述給定服務(wù)的每個(gè)實(shí)例。
全文摘要
本發(fā)明的一個(gè)實(shí)施例使用了定義給定服務(wù)類型的某些特征的模板,其中,這些特征對(duì)該服務(wù)類型的所有服務(wù)是共有的。用戶可以配置該模板來(lái)獲得用于給定服務(wù)的服務(wù)定義。該服務(wù)定義被傳送至一可編程性層并提供了足夠的信息使得該可編程性層在不需要由用戶進(jìn)一步定制的情況下可以構(gòu)造監(jiān)視給定服務(wù)所需要的各種監(jiān)視程序、規(guī)則、類以及任務(wù)。在一個(gè)實(shí)施例中,用戶還可以如所希望地定制服務(wù)定義,以便獲得額外的監(jiān)視。
文檔編號(hào)G06F17/00GK101273349SQ200680035789
公開(kāi)日2008年9月24日 申請(qǐng)日期2006年9月28日 優(yōu)先權(quán)日2005年9月30日
發(fā)明者A·J·薩格維, A·拉科什米納拉亞納, C·巴哈德里, L·瑞滋, S·O·威爾森, T·A·懷特, V·V·弗里諾夫, V·弗洛什 申請(qǐng)人:微軟公司