亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

軟件測試臺生成的制作方法

文檔序號:6348637閱讀:144來源:國知局
專利名稱:軟件測試臺生成的制作方法
軟件測試臺生成
背景技術(shù)
正在開發(fā)和發(fā)布使網(wǎng)絡(luò)管理員能協(xié)調(diào)信息技術(shù)(IT)過程和/或自動地監(jiān)視企業(yè)網(wǎng)絡(luò)中的設(shè)備的健康狀況的軟件產(chǎn)品和程序(一般稱為“軟件”)。一旦被安裝,這樣的軟件可以生成和存儲描述企業(yè)網(wǎng)絡(luò)中的實際實體和它們之間的關(guān)系的數(shù)據(jù)以及涉及這樣的實體的操作的數(shù)據(jù)。為了為特定企業(yè)或企業(yè)類型開發(fā)、測試這樣的軟件和支持對這樣的軟件的使用,如果軟件被一個實際企業(yè)安裝,能夠針對適當(dāng)?shù)乇硎緦⒂稍撥浖傻臄?shù)據(jù)的量和內(nèi)容的測試數(shù)據(jù)運(yùn)行該軟件是十分重要的。獲取這樣的數(shù)據(jù)的一種方法是在軟件已經(jīng)安裝并被使用一段時間之后從企業(yè)本身獲取它。然而,由于關(guān)于數(shù)據(jù)將如何被處理的隱私顧慮以及還由于收集這樣的數(shù)據(jù)可能要求消耗企業(yè)的時間和/或資金,許多企業(yè)可能對此方法感到不舒服。甚至在一個企業(yè)愿意共享這樣的數(shù)據(jù)的情況下,也可能有這樣的數(shù)據(jù)或這樣的數(shù)據(jù)的某些子集無法由軟件開發(fā)人員獲取和/或用于測試的技術(shù)原因。從特定企業(yè)獲得的數(shù)據(jù)的獨(dú)特性也可能使這樣的數(shù)據(jù)不適合用于主流測試。如果軟件還沒有被發(fā)布或者如果一個企業(yè)不愿意或不能夠共享由軟件所生成的數(shù)據(jù),則無法從該企業(yè)直接獲得測試數(shù)據(jù)。在此情況下,必須由開發(fā)人員采取某種方法來生成測試數(shù)據(jù)??紤]到通常所需的數(shù)據(jù)的量,手動生成不是可行的方法。因此,必須使用某種自動化方法。雖然自動化測試數(shù)據(jù)生成器能夠產(chǎn)生大量的測試數(shù)據(jù),但是它們往往是受限于它們不能生成公平地表示當(dāng)軟件由實際企業(yè)安裝時由該軟件產(chǎn)生的那種數(shù)據(jù)的豐富而有變化的測試數(shù)據(jù)。與生成測試數(shù)據(jù)相關(guān)聯(lián)的另一個挑戰(zhàn)涉及準(zhǔn)確地為某一企業(yè)或企業(yè)類型的測試數(shù)據(jù)進(jìn)行建模,因為IT基礎(chǔ)結(jié)構(gòu)有相當(dāng)大的不同。常規(guī)上,對企業(yè)進(jìn)行分類的問題常常通過將企業(yè)放在預(yù)定義的類(例如,小型、中等市場、全球)中并隨后作出關(guān)于每一個類的在某種程度上是任意的并且脫離實際數(shù)據(jù)的假設(shè),而以非常粗略的方式來處理。分類的另一種方法涉及要求一個企業(yè)的代表填寫一份詳細(xì)的調(diào)查,該調(diào)查用來沿著各種維度(例如, 大小、企業(yè)拓?fù)浣Y(jié)構(gòu)、對各種技術(shù)的使用、垂直行業(yè)、多民族或多地區(qū)、語言、面向因特網(wǎng)或面向內(nèi)部、技術(shù)采用率等等)來分類企業(yè)。然而,常常難以將這樣的信息與用于為企業(yè)生成代表性測試數(shù)據(jù)的參數(shù)相關(guān)聯(lián)。此外,當(dāng)回答調(diào)查時,代表常常對企業(yè)了解不足而難以提供準(zhǔn)確的回答。因而所需要的是用于生成用于開發(fā)、測試軟件(諸如用于管理IT過程和/或監(jiān)視企業(yè)網(wǎng)絡(luò)中的設(shè)備的軟件)和/或支持對該軟件的使用的測試臺的系統(tǒng)和方法。優(yōu)選地, 該系統(tǒng)和方法應(yīng)該能以自動化方式為特定企業(yè)或企業(yè)類型生成大量的真實而豐富的測試數(shù)據(jù),其中這樣的測試數(shù)據(jù)公平地表示當(dāng)該軟件由該特定企業(yè)或企業(yè)類型安裝時由該軟件產(chǎn)生的那種數(shù)據(jù)。

發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容是為了以精簡的形式介紹將在以下具體實施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。此處描述了用于生成用于開發(fā)、測試軟件(諸如用于管理IT過程和/或監(jiān)視企業(yè)網(wǎng)絡(luò)中的設(shè)備的軟件)和/或支持對該軟件的使用的測試臺的系統(tǒng)和方法。該系統(tǒng)和方法能以自動化方式為特定企業(yè)或企業(yè)類型生成大量的真實而豐富的測試數(shù)據(jù),其中,這樣的測試數(shù)據(jù)公平地表示當(dāng)該軟件由該特定企業(yè)或企業(yè)類型安裝時由該軟件產(chǎn)生的那種數(shù)據(jù)。具體而言,此處描述了一種用于生成用于開發(fā)、測試軟件和/或支持對該軟件的使用的測試臺的計算機(jī)實現(xiàn)的方法。根據(jù)該方法,接收清單。清單引用計算機(jī)網(wǎng)絡(luò)的類型空間模型,該類型空間模型包括硬件、軟件、網(wǎng)絡(luò)以及存儲實體類型,并包括傳達(dá)參數(shù)的編碼, 該參數(shù)可以被用來將計算機(jī)網(wǎng)絡(luò)的所述類型空間模型膨脹為計算機(jī)網(wǎng)絡(luò)的實例空間模型。 然后,處理清單以創(chuàng)建計算機(jī)網(wǎng)絡(luò)的實例空間模型。將表示實例空間模型的數(shù)據(jù)存儲到物理存儲介質(zhì)中。取決于實現(xiàn),類型空間模型也可以包括進(jìn)程數(shù)據(jù)實體。在一個實施例中,編碼傳達(dá)基數(shù)信息,該信息指定在創(chuàng)建實例空間模型時要生成的實體類型實例或關(guān)系類型實例的具體數(shù)量。編碼也可以傳達(dá)屬性信息,該信息指定要與在創(chuàng)建實例空間模型時所生成的實體類型實例相關(guān)聯(lián)的屬性。在一特定實施例中,類型空間模型包括對象-關(guān)系有向圖,該有向圖描述多個潛在有向圖實例,而實例空間模型包括該多個潛在有向圖實例中的一個。此處還描述了一種用于生成清單的計算機(jī)實現(xiàn)的方法。清單引用計算機(jī)網(wǎng)絡(luò)的類型空間模型,該類型空間模型包括硬件、軟件、網(wǎng)絡(luò)以及存儲實體類型,并包括傳達(dá)參數(shù)的編碼,該參數(shù)可以被用來將計算機(jī)網(wǎng)絡(luò)的所述類型空間模型膨脹為計算機(jī)網(wǎng)絡(luò)的實例空間模型。根據(jù)該方法,使用網(wǎng)絡(luò)管理軟件產(chǎn)品來收集關(guān)于企業(yè)網(wǎng)絡(luò)的信息。從收集到的信息中提取由清單中所包括的編碼傳達(dá)的一個或多個參數(shù)。然后,使用所提取的參數(shù)來生成清在一個實施例中,前述的方法還包括對于與多個不同的企業(yè)相關(guān)聯(lián)的多個不同的企業(yè)網(wǎng)絡(luò)執(zhí)行收集、提取和使用步驟,以生成多個清單,并組合該多個清單中的兩個或更多以創(chuàng)建原型清單。在一個特定實現(xiàn)中,組合多個清單中的兩個或更多以創(chuàng)建原型清單包括基于由多個清單中的每一個清單中的編碼所傳達(dá)的參數(shù)來聚集這些清單,以生成一個或多個清單集群,以及基于由至少一個集群中所包括的各清單中的每一個清單中的編碼所傳達(dá)的參數(shù),來創(chuàng)建與該集群相關(guān)聯(lián)的原型清單。此處還描述了一種用于生成用于開發(fā)、測試軟件和/或支持對該軟件的使用的測試臺的系統(tǒng)。該系統(tǒng)包括類型空間定義處理器、實體引擎以及數(shù)據(jù)庫寫入動作模塊。類型空間定義處理器被配置成接收清單,并從其中獲取計算機(jī)網(wǎng)絡(luò)的類型空間模型以及可以被用來將計算機(jī)網(wǎng)絡(luò)的類型空間模型膨脹為計算機(jī)網(wǎng)絡(luò)的實例空間模型的參數(shù),其中類型空間模型包括硬件、軟件、網(wǎng)絡(luò)以及存儲實體類型。實體引擎被配置成處理類型空間模型和參數(shù)以創(chuàng)建計算機(jī)網(wǎng)絡(luò)的實例空間模型。數(shù)據(jù)庫寫入動作模塊被配置成將表示所述實例空間模型的數(shù)據(jù)存儲到物理存儲介質(zhì)中。下面將參考各個附圖,詳細(xì)描述本發(fā)明的進(jìn)一步特點和優(yōu)點以及本發(fā)明的各實施例的結(jié)構(gòu)和操作。值得注意的是,本發(fā)明不僅限于此處所描述的具體實施例。這樣的實施例只是出于例示的目的?;诖颂幩脑恚硗獾膶嵤├龑δ切┫嚓P(guān)領(lǐng)域技術(shù)人員是顯而易見的。附圖簡述結(jié)合到本說明書并構(gòu)成本說明書的一部分的附圖示出了本發(fā)明,且與具體實施方式
一起進(jìn)一步用于說明本發(fā)明的原理,并使本領(lǐng)域技術(shù)人員能夠?qū)嵤┖褪褂帽景l(fā)明。

圖1是根據(jù)本發(fā)明的一實施例的示例測試臺生成系統(tǒng)的框圖。圖2描繪了根據(jù)本發(fā)明的一實施例的用于生成測試臺的方法的流程圖。圖3描繪了有向圖的示例。圖4描繪了樹的示例。圖5描繪了無環(huán)有向圖的示例。圖6描繪了有環(huán)有向圖的示例。圖7描繪了根據(jù)本發(fā)明的一實施例的實體引擎基于計算機(jī)網(wǎng)絡(luò)的類型空間模型來生成計算機(jī)網(wǎng)絡(luò)的實例空間模型的方法的流程圖。圖8描繪了根據(jù)本發(fā)明的一實施例的準(zhǔn)備和細(xì)化清單的數(shù)據(jù)流程。圖9描繪了可以被用來實現(xiàn)本發(fā)明的各個方面的示例基于處理器的計算機(jī)系統(tǒng)。通過下面的結(jié)合附圖對本發(fā)明進(jìn)行的詳細(xì)說明,本發(fā)明的特點和優(yōu)點將變得更加顯而易見,在附圖中相同的附圖標(biāo)記在整個說明書中標(biāo)識對應(yīng)的元素。在附圖中,相同的附圖標(biāo)記一般指示相同的、功能上類似的和/或在結(jié)構(gòu)上類似的元素。元素首次在其中出現(xiàn)的附圖由對應(yīng)的附圖標(biāo)記中最左邊的數(shù)字來指示。
具體實施例方式A.測試數(shù)據(jù)生成系統(tǒng)和方法圖1是根據(jù)本發(fā)明的一實施例的示例測試數(shù)據(jù)生成系統(tǒng)100的框圖。示例測試數(shù)據(jù)生成系統(tǒng)100可以有利地被用來生成用于開發(fā)、測試軟件產(chǎn)品或程序和/或支持對該軟件產(chǎn)品或程序的使用的測試臺。例如,測試數(shù)據(jù)生成系統(tǒng)100可以被用來生成一個測試臺, 該測試臺可以用于開發(fā)、測試對用于執(zhí)行網(wǎng)絡(luò)管理功能的軟件產(chǎn)品或程序和/或支持該軟件產(chǎn)品或程序的使用,其中這些功能可包括,但不僅限于,管理IT過程和/或監(jiān)視企業(yè)網(wǎng)絡(luò)中的設(shè)備。在一個具體實施例中,測試數(shù)據(jù)生成系統(tǒng)100被用來生成測試發(fā)現(xiàn)數(shù)據(jù)以用于開發(fā)、測試MICROSOFT SYSTEM CENTER SERVICE MANAGER(微軟系統(tǒng)中心服務(wù)管理器)的一個版本或MICROSOFT SYSTEM CENTER OPERATIONS MANAGER(微軟系統(tǒng)中心操作管理器)的一個版本和/或支持對它們的使用,這些版本中的每一個都是位于美國華盛頓州雷德蒙市的微軟公司發(fā)布的。然而,這些產(chǎn)品只作為示例,并且系統(tǒng)100可以被用來生成用于各種其他軟件產(chǎn)品或程序的測試數(shù)據(jù)。如圖1所示,系統(tǒng)100包括許多元件和過程,下面將描述其中每一個。在一個實施例中,圖1所示出的每一個過程都被實現(xiàn)為軟件,軟件可以由諸如下面參考圖9所描述的示例基于處理器的計算機(jī)系統(tǒng)900之類的基于處理器的計算機(jī)系統(tǒng)來執(zhí)行。在一種實現(xiàn)中, 所有軟件實現(xiàn)的過程都由單個計算機(jī)系統(tǒng)來執(zhí)行??闪磉x地,不同的軟件實現(xiàn)的過程可以由不同的計算機(jī)系統(tǒng)來執(zhí)行,并且數(shù)據(jù)可以通過網(wǎng)絡(luò)或某種其他渠道在不同的過程之間傳遞。模型儲存庫102包括可以被用來存儲由系統(tǒng)100所生成的測試數(shù)據(jù)的數(shù)據(jù)庫或某
6種其他結(jié)構(gòu)化數(shù)據(jù)集。在執(zhí)行系統(tǒng)100的任何過程之前,模型儲存庫102被用元數(shù)據(jù)填充, 該元數(shù)據(jù)描述了可以存在于模型儲存庫102中的實例實體的類型以便待測試的系統(tǒng)的其余部分正常地運(yùn)轉(zhuǎn)。實例實體可包括,例如,硬件、軟件、網(wǎng)絡(luò)和存儲實體。此元數(shù)據(jù)可以被視為描述企業(yè)網(wǎng)絡(luò)的“類型空間模型”的一種方式。在一個實施例中,數(shù)據(jù)庫102包括通過在計算機(jī)系統(tǒng)上安裝MICROSOFT SYSTEM CENTER OPERATIONS MANAGER的一個版本來創(chuàng)建的數(shù)據(jù)庫。進(jìn)一步根據(jù)此實施例,在一個或多個管理包中體現(xiàn)描述類型空間模型的元數(shù)據(jù), 管理包被作為安裝過程的一部分和/或在安裝過程之后加載到模型儲存庫102中。儲存庫元數(shù)據(jù)讀取器104是被配置成提取描述存儲在儲存庫102中的類型空間模型的元數(shù)據(jù)并將它提供給類型空間定義處理器106的過程。類型空間定義處理器106部分地被配置為從儲存庫元數(shù)據(jù)讀取器104中接收所提取的描述類型空間模型的元數(shù)據(jù),并處理所提取的元數(shù)據(jù)以生成引用類型空間模型的清單 108。清單108可以被格式化,以便它可以被用戶使用計算機(jī)實現(xiàn)的用戶界面工具輕松地閱讀和注釋。在一個實施例中,清單108包括可擴(kuò)展標(biāo)記語言(XML)文檔,但是這只是一個示例。根據(jù)一種實現(xiàn),用戶手動地注釋清單108以向其中添加某些經(jīng)編碼的參數(shù)。在圖 1中,這樣的手動注釋一般由用戶輸入框110來表示。如此處比較詳細(xì)地描述的,被添加到清單108中的經(jīng)編碼的參數(shù)供實體引擎114使用,以將被清單108引用的類型空間模型轉(zhuǎn)換為特定企業(yè)網(wǎng)絡(luò)的存儲器-實例化的模型,此處也被稱為“實例空間模型”。例如,盡管類型空間模型可以描述一個企業(yè)網(wǎng)絡(luò)內(nèi)存在的實體的所有類型,但是由用戶所添加的經(jīng)編碼的參數(shù)可以指定在特定實例空間模型內(nèi)應(yīng)該實際存在那些實體類型的多少實例。經(jīng)編碼的參數(shù)也可以指定應(yīng)該與每一個實體實例相關(guān)聯(lián)的屬性。例如,可以指定可以被用來確定要與一個或多個實體實例相關(guān)聯(lián)的屬性值的屬性規(guī)則。作為另一個示例,盡管類型空間模型可以描述一個企業(yè)網(wǎng)絡(luò)中的各實體類型之間存在的關(guān)系的所有類型,但是由用戶所添加的經(jīng)編碼的參數(shù)可以指定在特定實例空間模型內(nèi)應(yīng)該實際存在那些關(guān)系類型的多少實例。在一個實施例中,由用戶向清單108添加的經(jīng)編碼的參數(shù)包括基數(shù)信息,該信息指定在創(chuàng)建實例空間模型時要由實體引擎114生成的實體類型實例以及關(guān)系類型實例的具體數(shù)量。由用戶向清單108添加的經(jīng)編碼的參數(shù)也可以包括屬性信息,該信息指定要與在創(chuàng)建實例空間模型時由實體引擎114生成的各種實體實例相關(guān)聯(lián)的屬性。類型空間定義處理器106進(jìn)一步被配置成接收被注釋的清單108,并基于該清單來在存儲器中創(chuàng)建企業(yè)網(wǎng)絡(luò)的類型空間模型112。在一個實施例中,類型空間模型112包括被清單108引用的適于由實體引擎114進(jìn)行處理的類型空間模型的對象模型。此對象模型可以例如通過對已注釋的清單108進(jìn)行并行化(de-serialize)來獲得。類型空間模型 112還作為注釋過程的一部分來合并被引入到清單108的參數(shù)。在一個實施例中,類型空間定義處理器106可用于將這些參數(shù)中的一個或多個從在清單中所使用的格式(例如,串格式)轉(zhuǎn)換為另一種格式(例如,整數(shù)值),以便合并在類型空間模型112內(nèi)。實體引擎114被配置成讀取類型空間模型112,并基于類型空間模型112以及其中合并的參數(shù)來創(chuàng)建特定企業(yè)網(wǎng)絡(luò)的實例空間模型116。例如,實體引擎114可以通過根據(jù)類型空間模型112內(nèi)所合并的基數(shù)信息創(chuàng)建類型空間模型112內(nèi)所包括的每一個實體以及關(guān)系類型的0-n個實例,來生成實例空間模型116。作為另一個示例,實體引擎114可以通過根據(jù)類型空間模型112內(nèi)所合并的屬性規(guī)則將屬性與各種實體實例相關(guān)聯(lián),來創(chuàng)建實例空間模型116。如此處針對本發(fā)明的特定實現(xiàn)更詳細(xì)地討論的,取決于對清單108進(jìn)行注釋的方式,實體引擎114可以按確定性的或非確定性的方式來生成實例空間模型116。一旦由實體引擎114創(chuàng)建了實例空間模型116,儲存庫寫入動作模塊118用于將實例空間模型116寫入到模型儲存庫102。此過程包括將表示實例空間模型116的數(shù)據(jù)存儲到物理存儲介質(zhì)中。在一個實施例中,將表示實例空間模型116的數(shù)據(jù)存儲到物理存儲介質(zhì)的過程可以被分成多個循環(huán)。在每一個循環(huán)中,從實體引擎114接收表示實例空間模型 116的數(shù)據(jù)的一部分,然后,由儲存庫寫入動作模塊118存儲到模型儲存庫102。如下實現(xiàn)可能是所希望的可用于存儲表示實例空間模型的數(shù)據(jù)的存儲器量是受限的。盡管圖1中未示出,但是系統(tǒng)100也可以包括一個或多個可選插件模塊。插件模塊可以與實體引擎114和儲存庫寫入動作模塊118 —起使用,以修改和/或增強(qiáng)這些元件中的一個或兩者的操作。在一個實施例中,至少一個插件模塊被用來使儲存庫寫入動作模塊118的數(shù)據(jù)存儲操作被如前所述地分成多個循環(huán)。插件模塊還可以進(jìn)一步被用來修改和 /或增強(qiáng)實體引擎114創(chuàng)建實例空間模型116的方式或儲存庫寫入動作模塊118將表示實例空間模型116數(shù)據(jù)寫入到物理存儲介質(zhì)的方式。圖2描繪了根據(jù)本發(fā)明的一實施例的用于生成測試臺的方法的流程圖200?,F(xiàn)在將繼續(xù)參考如上文參考圖1所描述的系統(tǒng)100的元件來描述流程圖200的方法。然而,該方法不僅限于該實現(xiàn)。如圖2所示,流程圖200的方法從步驟202開始,在該步驟中,儲存庫元數(shù)據(jù)讀取器104從模型儲存庫102中提取描述計算機(jī)網(wǎng)絡(luò)的類型空間模型的元數(shù)據(jù)。類型空間模型可以描述,例如,計算機(jī)網(wǎng)絡(luò)內(nèi)存在的實體類型以及各實體類型之間存在的關(guān)系類型。在步驟204中,實體定義處理器106處理所提取的元數(shù)據(jù)以生成引用類型空間模型的用戶-可閱讀的/可編輯的清單108。此步驟可以包括,例如,將類型空間模型串行化為諸如XML文檔之類的用戶可閱讀的/可編輯的文檔。在步驟206中,用戶對清單108進(jìn)行注釋以將經(jīng)編碼的參數(shù)添加到其中。用戶可以例如經(jīng)由計算機(jī)實現(xiàn)的用戶界面工具來對清單108進(jìn)行注釋。經(jīng)編碼的參數(shù)可包括例如基數(shù)信息,該基數(shù)信息指定在創(chuàng)建實例空間模型時要生成的實體類型實例或關(guān)系類型實例的具體數(shù)量。經(jīng)編碼的參數(shù)也可以包括例如屬性信息,該信息指定要與在創(chuàng)建實例空間模型時所生成的至少一個實體類型實例相關(guān)聯(lián)的屬性。例如,可以指定可以被用來確定要與一個或多個實體類型實例相關(guān)聯(lián)的屬性值的屬性規(guī)則。如在下面的章節(jié)C中所描述的,在某些實現(xiàn)中,此注釋步驟也可以自動地執(zhí)行。在步驟208中,類型空間定義處理器106接收清單108的經(jīng)注釋的版本并處理它以獲得計算機(jī)網(wǎng)絡(luò)的類型空間模型112。類型空間模型112合并了在步驟206中添加到清單108的參數(shù)。在步驟210中,實體引擎114基于類型空間模型112以及其中包括的參數(shù)來創(chuàng)建計算機(jī)網(wǎng)絡(luò)的實例空間模型116。例如,實體引擎114可以通過根據(jù)類型空間模型112中所合并的基數(shù)信息創(chuàng)建類型空間模型112中所包括的每一個實體以及關(guān)系類型的0-n個實例,來生成實例空間模型116。作為另一個示例,實體引擎114可以通過根據(jù)類型空間模型112內(nèi)所合并的屬性規(guī)則將屬性與各種實體實例相關(guān)聯(lián),來生成實例空間模型116。在步驟 212中,儲存庫寫入動作模塊118將表示由實體引擎114所創(chuàng)建的實例空間模型116的數(shù)據(jù)存儲到模型儲存庫102中?,F(xiàn)在將描述系統(tǒng)100的特定實現(xiàn)以及流程圖200,其中計算機(jī)網(wǎng)絡(luò)的類型空間模型包括對象-關(guān)系有向圖,該有向圖描述多個潛在有向圖實例,并且其中計算機(jī)網(wǎng)絡(luò)的實例空間模型包括該多個潛在有向圖實例中的一個。B.示例系統(tǒng)實現(xiàn)現(xiàn)在將描述系統(tǒng)100的特定實現(xiàn),其中要生成的測試數(shù)據(jù)是與MICROSOFT SYSTEM CENTER OPERATIONS MANAGER(下面簡稱為“SCOM”)的一個版本相關(guān)聯(lián)的數(shù)據(jù)庫的測試發(fā)現(xiàn)數(shù)據(jù)。在此實施例中,系統(tǒng)100被配置成創(chuàng)建基本上類似于將在正常SCOM發(fā)現(xiàn)過程中生成的發(fā)現(xiàn)數(shù)據(jù)的SCOM發(fā)現(xiàn)數(shù)據(jù)。如下文所描述的,這樣的發(fā)現(xiàn)數(shù)據(jù)將企業(yè)網(wǎng)絡(luò)建模為有向圖。需要注意的是,在此章節(jié)所描述的系統(tǒng)100的實現(xiàn)的各方面也可以被用來生成與 MICROSOFT SYSTEM CENTER SERVICE MANAGER (下面簡稱為 “SCSM”)的版本相關(guān)聯(lián)的數(shù)據(jù)庫的測試發(fā)現(xiàn)數(shù)據(jù)。由此,此章節(jié)也可以包括對SCSM的引用。值得注意的是,此實施例只是作為示例描述的。相關(guān)領(lǐng)域技術(shù)人員將容易理解,此處所描述的概念可以被擴(kuò)展到為其他軟件產(chǎn)品以及程序生成測試數(shù)據(jù),包括,但不僅限于, 使用由類型空間元數(shù)據(jù)所定義的實體以及關(guān)系來生成有向圖實例空間的其他軟件產(chǎn)品以及程序。1.背景以及術(shù)語為促進(jìn)對此實施例的理解,定義某些術(shù)語是有幫助的。下面是將涉及有向圖的概念與SCOM數(shù)據(jù)庫建模技術(shù)的語言進(jìn)行關(guān)聯(lián)的簡要定義。SCOM數(shù)據(jù)庫被設(shè)計成提供企業(yè)網(wǎng)絡(luò)的簡明視圖。為實現(xiàn)這一點,該數(shù)據(jù)庫對計算機(jī),這些計算機(jī)之間的關(guān)系,安裝在這些計算機(jī)上的軟件,以及這性計算機(jī)以及軟件的健康狀況、性能以及狀態(tài)進(jìn)行建模。該模型是以有向圖的形式來表示的,并存儲在SCOM數(shù)據(jù)庫中。a.有向圖術(shù)語現(xiàn)在將討論通常用來描述有向圖的某些術(shù)語。有向圖可以被定義為一組節(jié)點和邊,其中邊將節(jié)點彼此連接。每一條邊都采取在一個節(jié)點開始并在一個節(jié)點結(jié)束的箭頭的形式。圖3描繪了具有連接三個節(jié)點(表示為302、304以及306)的三條邊(表示為312、 314以及316)的示例有向圖300。i.節(jié)點和邊有向圖中的節(jié)點可以包括用來表示某一狀態(tài)、位置或?qū)ο蟮狞c、圓或某種其他符號。節(jié)點的示例可以是地圖上的城市。有向圖中的邊可以表示節(jié)點之間的路線。例如,可以將連接城市A與城市B的高速公路的向北行駛的車道表示為一條邊。也可以將該同一條高速公路的向南行駛的車道表示成連接城市B與城市A的邊。ii.環(huán)和有環(huán)有向圖可以使用術(shù)語“父節(jié)點”和“子節(jié)點”來描述某些有向圖中的邊從其開始和結(jié)束的節(jié)點。由此,繼續(xù)參考前面的涉及城市A和城市B的城市示例,高速公路的向北行駛的邊具有父節(jié)點“A”和子節(jié)點“B”。向南行駛的邊具有父“B”節(jié)點和子節(jié)點“A”。對有向圖的某些描述通過簡單地聲明“A”是“B”的父節(jié)點,“B”是“A”的父節(jié)點來簡化這一點。由于此示例中的任一節(jié)點是另一節(jié)點的父節(jié)點,因此該有向圖是有環(huán)的。環(huán)可能是平凡的或復(fù)雜的。在同一節(jié)點開始和結(jié)束的邊是平凡的。更加復(fù)雜的環(huán)可包括追溯從一個節(jié)點開始和在該節(jié)點終止的路線的許多節(jié)點和邊。追溯有向圖的算法必須考慮環(huán)以避免無限循環(huán)。iii.樹樹可以被定義為具有下列特征的有向圖(1) 一個節(jié)點可以具有從它指出的0-n 條邊;( 一個節(jié)點可以具有指向它的0-1條邊;以及C3)該有向圖不能具有任何環(huán)。在樹中,節(jié)點和邊彼此構(gòu)成父子關(guān)系。例如,圖4描繪了具有四個節(jié)點(表示為402、404、406 和408)和三條邊(表示為412、414和416)的樹400。在樹400中,可以說節(jié)點402是節(jié)點404,406和408的父節(jié)點,因為邊412,414和416從節(jié)點402分別指向節(jié)點404,406和 408。iv.無環(huán)有向圖無環(huán)有向圖可以被定義為具有下列特征的有向圖(1) 一個節(jié)點可以具有從它指出的0-n條邊;(2) —個節(jié)點可以具有指向它的0-n條邊;以及,(3)該有向圖不能具有任何環(huán)。值得注意的是,無環(huán)有向圖和樹之間的唯一區(qū)別是,一個節(jié)點可以具有一個以上的父節(jié)點。圖5描繪了具有七個節(jié)點(表示為502、504、506、508、510、512和514)和六條邊(表示為522、5對、5沈、5觀、530和53 的示例無環(huán)有向圖500。在無環(huán)有向圖500中,可以說節(jié)點502是節(jié)點506,508和510的父節(jié)點,因為邊522,524和526從節(jié)點502分別指向節(jié)點506,508和510。此外,還可以說節(jié)點504是節(jié)點510,512和514的父節(jié)點,因為邊528、 530和532從節(jié)點504分別指向節(jié)點510,512和514。v.有環(huán)有向圖有環(huán)有向圖類似于無環(huán)有向圖,只是已經(jīng)移除了針對環(huán)的限制。有環(huán)圖可以被定義為具有下列特征的有向圖(1) 一個節(jié)點可以具有從它指出的0-n條邊;( 一個節(jié)點可以具有指向它的0-n條邊;以及,C3)該有向圖可以具有環(huán)。圖6描繪了具有七個節(jié)點(表示為 602、604、606、608、610、612 和 614)和八條邊(表示為 622、624、626、628、630、632、634 和636)的示例有環(huán)有向圖600。在有環(huán)有向圖600中,可以說節(jié)點602是節(jié)點606、608和 610的父節(jié)點,因為邊622,624和626從節(jié)點602分別指向節(jié)點606,608和610??梢哉f節(jié)點604是節(jié)點610,612和614的父節(jié)點,因為邊628,630和632從節(jié)點604分別指向節(jié)點 610,612 和 614。此外,在有環(huán)有向圖600中,可以說節(jié)點606是節(jié)點614的父節(jié)點,因為邊634從節(jié)點606指向節(jié)點614。反過來,可以說節(jié)點614是節(jié)點606的父節(jié)點,因為邊636從節(jié)點 614指向節(jié)點606。節(jié)點606和614之間的互逆的父子關(guān)系構(gòu)成一個環(huán)。b. SCOM 術(shù)語如上文所指出的,SCOM數(shù)據(jù)庫將企業(yè)網(wǎng)絡(luò)建模為有向圖。盡管如此,用來描述 SCOM數(shù)據(jù)庫的術(shù)語在某種程度上不同于上述的有向圖術(shù)語。下面將試圖部分地說明某些 SCOM術(shù)語和對應(yīng)的有向圖術(shù)語之間的關(guān)系。i.實體和實體類型SCOM使用術(shù)語“實體”來表示節(jié)點。實體可以包括,例如,但不僅限于,計算機(jī)、軟件產(chǎn)品或程序的實例(例如,位于美國華盛頓州雷德蒙市的微軟公司發(fā)布的MICROSOFT SQL SERVER(微軟 SQL服務(wù)器)或MICROSOFT INTERNET INFORMATION SERVICES (微軟因特網(wǎng)信息服務(wù))的實例)、數(shù)據(jù)庫、網(wǎng)站、或組名??梢詾槊恳粋€實體定義類型。例如,可以為實體定義諸如"Windows. Computer (Windows 計算機(jī)),,、"SQL. Engine (SQL 引擎),,、"Database (數(shù)據(jù)庫)”等等之類的類型。需要注意的是,在SCSM中,實體可以包括,例如,但不僅限于,更改請求、用戶對事件的評論、更改請求中的完成更改請求手動活動的分析者條目、軟件更新寸寸。ii.關(guān)系以及關(guān)系類型SCOM使用術(shù)語“關(guān)系”來表示連接實體的邊??梢允褂眯g(shù)語“源實體”和“目標(biāo)實體”來描述關(guān)系的方向。在SCOM中有三個顯式的關(guān)系類型主存關(guān)系、包含關(guān)系和引用關(guān)系。需要注意的是,在SCSM中,一個示例關(guān)系可以是“計算機(jī)安裝了軟件更新”。主存關(guān)系定義樹狀結(jié)構(gòu)。例如,計算機(jī)可以主存MICROSOFT SQL SERVER的0_n個實例、MICROSOFT INTERNET INFORMATION SERVICES 的 0_n 個實例等等。包含關(guān)系定義潛在無環(huán)有向圖。例如,MICROSOFT SQL SERVER的一組所有實例可包括計算機(jī)A、計算機(jī)B、以及計算機(jī)C上的實例。計算機(jī)C可以另外主存 MICROSOFT INTERNET INFORMATION SERVICES 的實例,使得該組所有 MICROSOFT INTERNET INFORMATION SERVICES實例還將包括計算機(jī)C。由于兩個組都指向計算機(jī)C,因此該有向圖不是樹。引用關(guān)系潛在地是有環(huán)的。例如,主存在計算機(jī)A上的MICROSOFT EXCHANGE SERVER(微軟Exchange (交換)服務(wù)器)(由位于美國華盛頓州雷德蒙市的微軟公司發(fā)布) 的實例可以引用主存在計算機(jī)B上的MICROSOFT EXCHANGE SERVER的實例。而主存在計算機(jī)B上的MICROSOFT EXCHANGE SERVER的實例又可以引用主存在計算機(jī)A上的實例。這種關(guān)系系列是有環(huán)的。SCOM數(shù)據(jù)庫模型還包括可以被稱為“繼承關(guān)系”的隱含關(guān)系類型。繼承關(guān)系引用特定形式的主存,其中任何實體都可以(可任選地)從另一實體繼承。例如,類型“Windows. Computer"的實體可以從類型“System. Computer (系統(tǒng)計算機(jī)),,的實體繼承。另外,另一類型“Unix. Computer (Unix計算機(jī))”的實體也可以從“System. Computer”繼承。如果存在“Windows. Computer”的實例,則它從“System. Computer”的恰好一個實例繼承。在SCOM 中,繼承始終是單個繼承,類似于C#編程語言中的類的單個繼承。SCOM用來描述企業(yè)網(wǎng)絡(luò)的元數(shù)據(jù)不將繼承信息編碼為關(guān)系類型。結(jié)果,此處所描述的其他方法用于編碼此信息。iii.實體壽命SCOM中的主存關(guān)系定義存在準(zhǔn)則。例如,如果從計算機(jī)中移除MICROSOFT SQL SERVER的實例,則與該實例相關(guān)聯(lián)的任何數(shù)據(jù)庫也都被移除。作為另一個示例,如果用戶在主存了三個MICROSOFT SQL SERVER數(shù)據(jù)庫的計算機(jī)上安裝MICROSOFT SQL SERVER的實例,則SCOM數(shù)據(jù)庫將認(rèn)識到這四個新實體的存在。停止使用主存MICROSOFT SQL SERVER 的這些實例以及相關(guān)聯(lián)的數(shù)據(jù)庫的計算機(jī)相當(dāng)于使整個樹消失。由此,主存和實體壽命是緊密地鏈接的概念。iv.實體訪問
11
在SCOM中,使用包含關(guān)系來定義訪問和安全性準(zhǔn)則。例如,SCOM組可以是主存MICROSOFT SQL SERVER的所有計算機(jī)的組,另一個組可以是主存MICROSOFT INTERNET INFORMATION SERVICES的所有計算機(jī)。根據(jù)此示例,SCOM會將主存MICROSOFT SQL SERVER 和MICROSOFT INTERNET INFORMATION SERVICES兩者的計算機(jī)定義為包含在這兩個組中。 由此,MICROSOFT SQL SERVER 組將指向該計算機(jī),并且 MICROSOFT INTERNET INFORMATION SERVICES組將指向該同一個計算機(jī)。由于這兩個組都指向同一個計算機(jī),因此相關(guān)聯(lián)的“包含”圖是無環(huán)有向圖。如上文所指出的,SCOM可以使用包含圖來定義訪問準(zhǔn)則。例如,具有對一個組的訪問權(quán)限的IT操作員可能沒有對另一個組的訪問權(quán)限。如此,在第一組和第二組各自都包含同一個計算機(jī)的情況下,只有對第一組的訪問權(quán)限的操作員將能夠訪問被包括在這兩個組內(nèi)的計算機(jī),但不能訪問第二組中的其他計算機(jī)中的任何一個。v.數(shù)據(jù)庫實體以及關(guān)系表SCOM數(shù)據(jù)庫包含兩個類型-空間元數(shù)據(jù)表一個描述實體類型,一個定義各實體類型之間的關(guān)系類型。數(shù)據(jù)庫另外還定義了兩個其他表,包含實體實例的表以及包含實體關(guān)系實例的表。每一個實體以及關(guān)系實例都包含對相關(guān)聯(lián)的元數(shù)據(jù)實體或關(guān)系類型的引用。其他相關(guān)的表在系統(tǒng)內(nèi)存儲特定實體類型和實例的屬性類型以及實例值。在只有一個表包含對每一個實體實例的引用而另一個表包含對每一個關(guān)系實例的引用的情況下,這兩個實例-表定義一個大型有環(huán)有向圖。然而,為便于理解下面所描述的測試數(shù)據(jù)生成系統(tǒng)100的特定實現(xiàn),將所有主存關(guān)系(包括繼承關(guān)系)描繪為紅色、將所有包含關(guān)系描繪為藍(lán)色、并將所有引用關(guān)系描繪為綠色是十分有用的。只看紅色邊以及它們的連接節(jié)點會揭示樹結(jié)構(gòu)的森林??此{(lán)色邊以及它們的節(jié)點會示出無環(huán)圖的族。看藍(lán)色邊以及它們的節(jié)點應(yīng)該示出有環(huán)圖的族。2.示例實體引擎實現(xiàn)如上文參考圖1所討論的,實體引擎114被配置成基于由清單108所描述的類型空間模型以及由用戶添加到其中的參數(shù),來創(chuàng)建特定企業(yè)網(wǎng)絡(luò)的實例空間模型。在當(dāng)前所描述的SCOM相關(guān)的實現(xiàn)中,實例空間模型包括形成有向圖的對象的一組存儲器實例。為創(chuàng)建實例空間模型,實體引擎114讀取并驗證經(jīng)注釋的清單108,然后根據(jù)某種確定性算法來生成每一個SCOM實體以及關(guān)系類型的0-n個實例。利用適當(dāng)?shù)刈⑨尩那鍐?08,由一個計算機(jī)上的實體引擎114所生成的實例空間模型應(yīng)該與由另一計算機(jī)上的實體引擎114所生成的實例空間模型相同。然而,在一種實現(xiàn)中,對清單108作出的注釋也可以指定非確定性的實例空間模型。例如,這樣的注釋可以根據(jù)特定測試方案的需求來指定根據(jù)隨機(jī)整數(shù)函數(shù)的實體/關(guān)系基數(shù)。a.實體引擎生成實例空間模型的示例算法在描述清單108的示例之前,首先描述實體引擎114可以用來處理清單108的一種方式是有幫助的。在SCOM相關(guān)的實現(xiàn)中,清單108可以包含可以被用來生成多個不同的有向圖實例的一組SCOM實體以及關(guān)系類型,其中每一個有向圖實例都是不同的企業(yè)網(wǎng)絡(luò)的模型。例如,清單108可以包含來自SCOM數(shù)據(jù)庫(即,類型空間)的“ManagedType (托管類型),,和“RelationshipType (關(guān)系類型),,表的副本。進(jìn)一步根據(jù)這樣的實現(xiàn),用戶利用與特定有向圖實例應(yīng)該采取什么形狀有關(guān)的信息來注釋清單108,其中該特定有向圖實例是特定企業(yè)網(wǎng)絡(luò)的模型。在一個實施例中,由用戶添加到清單108的信息包括基數(shù)信息和/或?qū)傩砸?guī)則信息,該基數(shù)信息指定要由實體引擎114所生成的SCOM實體類型實例以及關(guān)系類型實例的具體數(shù)量,該屬性規(guī)則信息指定如何實例化要與由實體引擎114所生成的各種實體實例相關(guān)聯(lián)的屬性。該組SCOM實體以及關(guān)系類型可以被視為類型空間模型,而該特定有向圖實例可以被視為實例空間模型。由此,實體引擎108從類型空間圖來創(chuàng)建實例圖。圖7描繪了實體引擎114可以用于基于經(jīng)注釋的清單108來生成有向圖實例的示例方法的流程圖700。該方法的開始由標(biāo)記為“開始”的框702來表示。在該方法啟動之后,控制流向步驟704,在該步驟中,創(chuàng)建根實體實例并將其排入此處被稱為 “EntityQueueCollection(實體隊列集合),,的隊列中。根實體實例表示樹的根節(jié)點,此處被稱為“構(gòu)造樹”,它是由實體引擎104所生成的并被用作用于循環(huán)訪問實例空間模型的起始點。實體引擎114基于在清單108中所定義的SCOM “根類型”來生成根實體實例。在一個實施例中,實體引擎114根據(jù)下列算法來標(biāo)識根類型
(1)循環(huán)通過所有SCOM實體類型以創(chuàng)建不從任何其他實體繼承的所有實體類型的列表;
(2)如果列表長度不是1,則報告錯誤;以及
(3)如果列表長度是1,則所列出的實體類型變?yōu)椤案愋汀?。在SCOM(或SCSM)中,根類型將是Sytem. Entity (系統(tǒng)實體)。在SCOM中,繼承意味著,如果一個實體從另一實體繼承,則它同時是所定義的類型以及其繼承鏈中的所有類型。例如,在SCOM中,Windows. Computer從System. Computer 繼承。這意味著,Windows. Computer實例(如果它存在的話)也是System. Computer。SCOM數(shù)據(jù)庫中的所有實體從System. Entity類型繼承。這一類型是不從另一實體類型繼承的唯一實體類型。由此,System. Entity類型提供用于迭代通過SCOM實例空間模型的起始點(根)。在創(chuàng)建了根實體實例并使其入隊之后,實體引擎114根據(jù)由清單108所描述的類型空間模型中的關(guān)系來構(gòu)建實體實例的“構(gòu)造樹”。如圖7所示,構(gòu)造樹的構(gòu)建從判斷步驟 706開始,在該步驟中,實體引擎114確定在隊列“EmityQueueCollection”中是否有任何實體實例。如果在“EntityQueueCollection”中有任何實體實例,則使該隊列的最前面的實體實例出隊,如步驟708所示。在判斷步驟710,實體引擎114確定它是否已經(jīng)迭代通過了在步驟708出隊的實體實例的所有主存和繼承關(guān)系類型。根據(jù)由清單108所描述的類型空間模型,確定可以應(yīng)用于特定實體實例的各種主存和繼承關(guān)系類型。如果實體引擎114在判斷步驟710確定它已經(jīng)迭代通過了相關(guān)實體實例的所有主存和繼承關(guān)系類型,則控制返回到判斷步驟706,以確定“EntityQueueCollection”中是否有更多實體實例。然而,如果實體引擎114在判斷步驟710中確定它沒有迭代通過在步驟708出隊的實體實例的所有主存和繼承關(guān)系類型,則它評估與每一個剩余的主存或繼承關(guān)系類型相關(guān)聯(lián)的基數(shù)值,如步驟714所示。如上文所討論的,可以例如由用戶在對清單108的注釋期間指定與主存或繼承關(guān)系相關(guān)聯(lián)的基數(shù)值。如果實體引擎114在判斷步驟714中確定與剩余的主存或繼承關(guān)系類型相關(guān)聯(lián)的基數(shù)值不大于零,則對相關(guān)實體實例的相關(guān)主存或繼承關(guān)系類型的處理被視為完成,并且控制返回到判斷步驟710以確定對于相關(guān)的實體實例是否有其他剩余的主存或繼承關(guān)系類型需要進(jìn)行迭代。然而,如果實體引擎114在判斷步驟714中確定與剩余的主存或繼承關(guān)系類型相關(guān)聯(lián)的基數(shù)值大于零,則控制流向步驟716,在該步驟中,實體引擎114基于與特定主存或繼承關(guān)系類型相關(guān)聯(lián)的基數(shù)值來創(chuàng)建0-n個目標(biāo)實體實例。在步驟716中,實體引擎114 還初始化屬性包,并列出與每一個所創(chuàng)建的目標(biāo)實體實例相關(guān)聯(lián)的實例。如此處所使用的, 術(shù)語“屬性包”是指與實體實例相關(guān)聯(lián)的屬性集合。此處將更詳細(xì)地描述屬性包和列表實例的使用。步驟716之后,控制流向步驟718,在該步驟中,實體引擎114創(chuàng)建一個關(guān)系實例, 該關(guān)系實例將相關(guān)實體實例(作為源實體)鏈接到在步驟716中創(chuàng)建的每一個目標(biāo)實體實例。在步驟718之后,控制流向步驟720,在該步驟中,實體引擎114將在步驟716中創(chuàng)建的每一個目標(biāo)實體實例排入隊列“EntityQueueCollection”中。然后,控制返回到判斷步驟 710,在該步驟中,再一次確定實體引擎114是否已經(jīng)迭代通過了先前在步驟708中出隊的實體實例的所有主存/繼承關(guān)系類型。在以上文所描述的方式生成構(gòu)造樹之后,在“EntityQueueCollection”中沒有更多實體實例。此時,控制將從判斷步驟706流向步驟722。在步驟722中,實體引擎114基于由用戶添加到清單108中的參數(shù),為該構(gòu)造中的每一個實體實例創(chuàng)建包含和/或引用關(guān)系。在一個實施例中,此步驟涉及迭代通過整個構(gòu)造樹,以標(biāo)識應(yīng)該基于清單108中所包括的參數(shù)來為其創(chuàng)建包含和/或引用關(guān)系的實體實例,并創(chuàng)建這樣的關(guān)系。其他實施例使用插件模塊來以模仿操作軟件將做什么的方式來形成包含和引用關(guān)系,或者因為對于某些包含和引用關(guān)系利用定制的算法性能會更佳。在步驟722完成之后,流程圖700的方法結(jié)束,如標(biāo)記為“完成”的框7 所示。此時,已經(jīng)創(chuàng)建了完整的實例空間模型。在一個實施例中,在結(jié)束步驟7M之后,將表示完整的實例空間模型的數(shù)據(jù)存儲到SCOM數(shù)據(jù)庫。在替換實施例中,將流程圖700的一個或多個處理步驟期間或完成之后間歇性地將表示實例空間模型的數(shù)據(jù)存儲到SCOM數(shù)據(jù)庫中。b.示例實體引擎實現(xiàn)細(xì)節(jié)前面描述了可以由實體引擎114在系統(tǒng)100的SCOM相關(guān)的實施例中實現(xiàn)的示例算法。下面描述了根據(jù)這樣的實施例的進(jìn)一步的實現(xiàn)細(xì)節(jié)。這些細(xì)節(jié)只是作為示例而已, 不打算限制本發(fā)明。i.發(fā)現(xiàn)隊列和實例空間迭代由于SCOM實例空間模型潛在地是有環(huán)有向圖,因此實體引擎114必須具有迭代通過該有向圖中的全部實例而不會無限地循環(huán)的方法。為實現(xiàn)這一點,在實體引擎114的一種實現(xiàn)中,以如下方式配置如前所述的“EntityQueueCollection”隊列實體引擎114只訪問有向圖中的每一個實體以及關(guān)系實例一次。根據(jù)這樣的實現(xiàn),EntityQueueCollection就像普通隊列那樣起作用,因為它使實體實例入隊和出隊。然而,隊列添加了這樣的一種方法如果入隊請求產(chǎn)生環(huán),則該方法忽略該入隊請求,如果入隊請求不產(chǎn)生環(huán),則該方法處理該入隊請求。在一個實施例中,第一次使特定實體實例入隊時,EntityQueueCollection在散列表中創(chuàng)建對應(yīng)于該實體實例的條目。當(dāng)接收到第二個以及隨后的使同一個實體實例入隊的請求時(如通過訪問散列表所確定的),EntityQueueCollection忽略它們。此方法允許任意有向圖的每一個節(jié)點正好被訪問一次,且對于純樹上的操作不是必需的。ii.繼承關(guān)系類型SCOM數(shù)據(jù)庫不將繼承指定為真實關(guān)系。S卩,在SCOM “RelationshipType”表中沒有“繼承”類型。本發(fā)明的一個實施例通過要求清單108將繼承指定為類型Inherit (繼承)”的關(guān)系來解決此問題。在這樣的實施例中,清單108與SCOM數(shù)據(jù)庫的不同之處在于, 它具有四個而不是三個關(guān)系類型。在一個實施例中,當(dāng)在儲存庫102的元數(shù)據(jù)表中被識別時,儲存庫元數(shù)據(jù)讀取器104自動地將這些關(guān)系插入到清單108中。在SCOM中,繼承關(guān)系的基數(shù)是平凡的,因為根據(jù)定義,繼承基數(shù)只能具有值0或 1 即,關(guān)系存在或不存在。然而,通過包括繼承關(guān)系可以解決下列難題(1)清單108(以及 SC0M)指定實體類型"Windows. Computer" ; (2) "Windows. Server. Computer (Windows 服務(wù)器計算機(jī))”從"Windows. Computer” 繼承;(3) "Windows. Client. Computer (Windows 客戶機(jī)計算機(jī))”從“Windows. Computer”繼承;以及(4)計算機(jī)要么是服務(wù)器(類型“Windows. Server. Computer” ),要么是客戶機(jī)(類型 “Windows. Client. Computer” ),但不是兩者都是。通過將兩個繼承關(guān)系類型添加到“Windows. Computer”,一個用于“Windows. Server. Computer”,一個用于 “Windows. Client. Computer”,則可為計算機(jī)-到-服務(wù)器關(guān)系指定基數(shù)1,為計算機(jī)-到客戶端關(guān)系指定0,或者反之亦然。iii.關(guān)系基數(shù)以及實體類型如上文所描述的,實體引擎114生成構(gòu)造樹的過程假設(shè)每一個關(guān)系類型都具有已定義的基數(shù)。另外,在一種實現(xiàn)中,該過程將根實體類型的基數(shù)自動地定義為1。實體類型以及這些類型之間的關(guān)系也可以被用來確定某些關(guān)系實例的基數(shù)。在SCOM中,實體類型的“類型”是下列各項中的一個=Abstract (抽象)、 Singleton (單獨(dú))Concrete (具體)或Hosted (被主存)。Abstract意味著,實體類型存在于元數(shù)據(jù)中,但是決不會作為實例空間模型中的實例而存在。Singleton、Concrete或 Hosted實體可以存在于實例空間模型中。這些類型的定義以及各實體類型之間的關(guān)系可以被實體引擎114用來根據(jù)下列約定來定義基數(shù)的某些類型(1)如果abstract實體具有與另一個abstract實體的繼承關(guān)系,則實體引擎114將該關(guān)系的基數(shù)定義為1 ; (2)如果 abstract實體具有與singleton實體類型的繼承關(guān)系,則實體引擎114將該關(guān)系的基數(shù)定義為1,無需注釋清單108 ;以及(3)在所有其他情況下,實體引擎114都將關(guān)系的基數(shù)定義為零,除非用戶已經(jīng)在清單108中指定了另一個基數(shù)值。上面的約定允許實體引擎114構(gòu)造樹在無需確定在清單108中是否指定了基數(shù)值的情況下生成構(gòu)造樹,直到諸如引擎遇到其中目標(biāo)類型是concrete且源類型是abstract 的第一繼承關(guān)系實例之時為止。此時,實體引擎114必須使用如在清單108中所指定的基數(shù)值,或假設(shè)基數(shù)是零。iv.分層符號表
由于SCOM數(shù)據(jù)庫中的每一個實體實例都可以具有不同的屬性值(例如,顯示名稱、IP地址等等),因此實體引擎114提供用于為在流程圖600的方法中創(chuàng)建的每一個實體實例容易地生成測試值的手段是合乎需要的。為解決此問題,本發(fā)明的一個實施例包括“分層符號表”,利用該表,用戶可以經(jīng)由對清單108的注釋容易地創(chuàng)作這些值?,F(xiàn)在將描述實現(xiàn)這樣的分層符號表的一種方式。a.名/值對分層符號表的基礎(chǔ)是名和值對。每一個符號都具有名和值。例如,名可以是"DisplayName (顯示名)”,而值是“Computer」(計算機(jī)_1) ”,或者名可以是 “ IpAddress (Ip地址)”,而值是“101. 102. 103. 104”。在一個實施例中,由實體引擎114在流程圖700的方法中所創(chuàng)建的實體實例將與分層符號表中的名/值對的列表相關(guān)聯(lián)。例如, 每一個實體實例都可以與表中的若干條目相關(guān)聯(lián),這些條目中的每一個條目都最終將存儲在數(shù)據(jù)庫102中。b.屬性實例化期間的符號替換在一個實施例中,清單108是XML文檔,其將屬性規(guī)則定義表示為具有名屬性和表示一個值的內(nèi)部文本的元素。當(dāng)實例化實體時,實體引擎114將該名稱和內(nèi)部文本復(fù)制到與帶有一個例外的實體類型定義中所定義的每一個屬性的實體實例相關(guān)聯(lián)的屬性實例。如果內(nèi)部文本包含特殊字符串“ [##symbol Referenceftii](符號引用)”,則實體引擎114替換匹配“ [##”和“##] ”括號之間的串的預(yù)先定義的符號的值。通過此技術(shù),用戶可以創(chuàng)建下面的表1中所示出的名/值對。
屬性名 \內(nèi)部文本存儲在屬性實例中的值DisplayName[##Id##]存儲在符號 "Id"(對于此示例,假設(shè) "Ws_0")的實例的屬性包中的值Domain (域)local.test.comlocal.test.comComputerDomainNa me (計算機(jī)域名)[##Id##].[##Domain##]Ws_0. local, test, com表1在此示例中,當(dāng)(且僅當(dāng))Id符號在每一個實例的屬性包中不同時,使用這三個屬性定義的每一個實體實例都接收DisplayName和ComputerDomainName的不同的屬性值。c.特殊符號-Id、InstanceNumber (實例編號)和Tag (標(biāo)簽)在一個實施例中,實體引擎114預(yù)留某些符號名稱以供內(nèi)部使用。三個示例是“Id”、InstanceNumber,以及“Tag”。Tag是實體的Tag屬性中所定義的值?!癐d”符號是通過串接Tag值、下劃線以及實例編號來為每一個實例創(chuàng)建的值。如果 abstract-到-concrete (抽象-到-具體)關(guān)系具有基數(shù)100,則實體引擎114創(chuàng)建100個目標(biāo)實體實例,并向每一個實例分配實例編號0-99。假設(shè)該實體類型的Tag是“Computer (計算機(jī))”,則每一個實體實例的Id值將是“ComputerJ)”到“Computer_99”。通過使用上文參考符號替換所提及的關(guān)系定義,這意味著,每一個實體實例的ComputerDomainName值將是"ComputerJX local, test, com,,到"Computer_99. local, test, com,,。清單 108 的注釋者可以在與XML元素相關(guān)聯(lián)的內(nèi)部文本中引用符號[##Id##]、[#HnstanceNumber##],以及 [##Tag##],以填充屬性值。d.特殊引用修改符-“Parent (父),,清單108的注釋者能夠引用父實體中的屬性值是有用的。此能力直接引用 Windows. Server. Computer實例與它從其繼承的實例具有相同的值的必要性。下面的表2 描述了使用父引用的實例化。在一個實施例中,儲存庫元數(shù)據(jù)讀取器104可以被配置成為實體中的屬性自動地插入[##Parent. pr0pertyName##](父屬性名)引用值,其中父實體包含相同的屬性名。這減少了所需的清單注釋的量,因為只必需定義屬性規(guī)則,因為父和子繼承實體已經(jīng)被正確地填充。
權(quán)利要求
1.一種用于生成用于開發(fā)、測試軟件和/或支持對該軟件的使用的測試臺的計算機(jī)實現(xiàn)的方法,包括接收引用計算機(jī)網(wǎng)絡(luò)的類型空間模型的清單,所述類型空間模型包括硬件、軟件、網(wǎng)絡(luò)和存儲實體類型,所述清單包括傳達(dá)參數(shù)的編碼,所述參數(shù)可以被用來將所述計算機(jī)網(wǎng)絡(luò)的類型空間模型膨脹為所述計算機(jī)網(wǎng)絡(luò)的實例空間模型O08);處理所述清單以創(chuàng)建所述計算機(jī)網(wǎng)絡(luò)的實例空間模型O10);以及將表示所述實例空間模型的數(shù)據(jù)存儲到物理存儲介質(zhì)中(212)。
2.如權(quán)利要求1所述的方法,其特征在于,所述類型空間模型還包括進(jìn)程數(shù)據(jù)實體。
3.如權(quán)利要求1所述的方法,其特征在于,所述編碼傳達(dá)基數(shù)信息,所述基數(shù)信息指定在創(chuàng)建所述實例空間模型時要生成的實體類型實例或關(guān)系類型實例的具體數(shù)量。
4.如權(quán)利要求1所述的方法,其特征在于,所述編碼傳達(dá)屬性信息,所述屬性信息指定要與在創(chuàng)建所述實例空間模型時所生成的實體類型實例相關(guān)聯(lián)的屬性。
5.如權(quán)利要求1所述的方法,其特征在于,所述類型空間模型包括對象-關(guān)系有向圖, 所述有向圖描述多個潛在有向圖實例,并且其中所述實例空間模型包括所述多個潛在有向圖實例中的一個。
6.如權(quán)利要求1所述的方法,其特征在于,還包括從模型儲存庫中提取描述所述類型空間模型的元數(shù)據(jù);以及處理所提取的元數(shù)據(jù)以生成所述清單。
7.如權(quán)利要求1所述的方法,其特征在于,還包括通過經(jīng)由計算機(jī)實現(xiàn)的用戶界面工具編輯所述清單來將所述參數(shù)添加到所述清單中。
8.一種用于生成引用計算機(jī)網(wǎng)絡(luò)的類型空間模型的清單的計算機(jī)實現(xiàn)的方法,所述類型空間模型包括硬件、軟件、網(wǎng)絡(luò)以及存儲實體類型,所述清單包括傳達(dá)參數(shù)的編碼,所述參數(shù)可以被用來將所述計算機(jī)網(wǎng)絡(luò)的類型空間模型膨脹為所述計算機(jī)網(wǎng)絡(luò)的實例空間模型,所述方法包括使用網(wǎng)絡(luò)-管理軟件產(chǎn)品來收集有關(guān)企業(yè)網(wǎng)絡(luò)的信息(810);以及從所收集到的信息提取所述清單中所包括的所述編碼所傳達(dá)的所述參數(shù)中的一個或多個;以及使用所提取的參數(shù)來生成所述清單(814)。
9.如權(quán)利要求8所述的方法,其特征在于,所述收集步驟包括將從與企業(yè)網(wǎng)絡(luò)相關(guān)聯(lián)的企業(yè)收集到的信息傳送到遠(yuǎn)程實體以用于創(chuàng)建所述清單。
10.如權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包括對于與多個不同的企業(yè)相關(guān)聯(lián)的多個不同的企業(yè)網(wǎng)絡(luò),執(zhí)行所述收集、提取和使用步驟以生成多個清單;以及將所述多個清單中的兩個或更多個組合起來以創(chuàng)建原型清單。
11.如權(quán)利要求8所述的方法,其特征在于,將所述多個清單中的兩個或更多個組合起來以創(chuàng)建原型清單包括基于由所述多個清單中的每一個清單中的所述編碼所傳達(dá)的所述參數(shù)來聚集所述多個清單,以生成一個或多個清單集群;以及基于由至少一個集群中所包括的每一個清單中的所述編碼所傳達(dá)的所述參數(shù)來創(chuàng)建與該集群相關(guān)聯(lián)的原型清單。
12.一種用于生成用于開發(fā)、測試軟件和/或支持對該軟件的使用的測試臺的系統(tǒng),包括類型空間定義處理器(106),其被配置成接收清單(108)并從中獲取計算機(jī)網(wǎng)絡(luò)的類型空間模型(11 和可以被用來將所述計算機(jī)網(wǎng)絡(luò)的類型空間模型膨脹為所述計算機(jī)網(wǎng)絡(luò)的實例空間模型的參數(shù),其中所述類型空間模型(112)包括硬件、軟件、網(wǎng)絡(luò)以及存儲實體類型;實體引擎(114),其被配置成處理所述類型空間模型(11 和所述參數(shù)以創(chuàng)建所述計算機(jī)網(wǎng)絡(luò)的實例空間模型(116);以及數(shù)據(jù)庫寫入動作模塊(118),其被配置成將表示所述實例空間模型的數(shù)據(jù)存儲到物理存儲介質(zhì)中。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述參數(shù)包括基數(shù)信息,所述基數(shù)信息指定在創(chuàng)建所述實例空間模型時要生成的實體類型實例或關(guān)系類型實例的具體數(shù)量。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述參數(shù)包括屬性信息,所述屬性信息指定要與在創(chuàng)建所述實例空間模型時所生成的實體類型實例相關(guān)聯(lián)的屬性。
15.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述類型空間模型包括對象-關(guān)系有向圖,所述有向圖描述多個潛在有向圖實例,并且其中所述實例空間模型包括所述多個潛在有向圖實例中的一個。
全文摘要
描述了用于生成用于開發(fā)、測試軟件(諸如用于管理IT過程和/或監(jiān)視企業(yè)網(wǎng)絡(luò)中的設(shè)備的軟件)和/或支持對該軟件的使用的測試臺的系統(tǒng)和方法。該系統(tǒng)和方法通過處理清單以生成計算機(jī)網(wǎng)絡(luò)的實例空間模型來進(jìn)行操作,其中清單引用計算機(jī)網(wǎng)絡(luò)的類型空間模型并包括傳達(dá)用來將計算機(jī)網(wǎng)絡(luò)的類型空間模型膨脹為計算機(jī)網(wǎng)絡(luò)的實例空間模型的參數(shù)的編碼。類型空間模型可以包括對象-關(guān)系有向圖,該有向圖描述多個潛在有向圖實例,并且實例空間模型可以包括該多個潛在有向圖實例中的一個。
文檔編號G06F9/44GK102341781SQ201080011805
公開日2012年2月1日 申請日期2010年2月26日 優(yōu)先權(quán)日2009年3月6日
發(fā)明者A·J·薩格維, A·格林伯格, C·A·庫布利, R·L·斯通 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1