我正在使用Common Information Model (CIM)來對基礎架構進行建模。該模型爲不同的IT系統描述了許多類。它是全面的,所以它由一系列層次而不是一個層次組成。例如,要表示物理服務器機箱,請定義一個CIM_Chassis實例。然後,爲了表示將在該硬件上運行的邏輯服務器,您可以定義一個CIM_ComputerSystem實例。然後,您應該將這兩者與CIM_SystemPackaging的一個實例相關聯,注意其中一個由另一個提供。在任何一類中都沒有財產,您可以將其中一個作爲另一個財產。他們是兩個不同的班級,由第三班班級相關。該模型將用XML進行描述,並由CIM的當前XML模式進行驗證。我不明白從XSD的CIM_SystemPackaging,它應該包含什麼內容。如何在xmlCIM中關聯實例?
此XML說明了問題(底盤是CIM_Chassis.xsd別名等):
<chassis:CIM_Chassis>
<chassis:CreationClassName>CIM_Chassis</chassis:CreationClassName>
<chassis:Manufacturer>Cisco</chassis:Manufacturer>
<chassis:Model>Catalyst 6000</chassis:Model>
<chassis:Tag>6548431</chassis:Tag>
</chassis:CIM_Chassis>
<computer:CIM_ComputerSystem>
<computer:CreationClassName>CIM_ComputerSystem</computer:CreationClassName>
<computer:Name>Switch1</computer:Name>
</computer:CIM_ComputerSystem>
<sp:CIM_SystemPackaging>
<sp:Antecedent>?</sp:Antecedent>
<sp:Dependent>?</sp:Dependent>
</sp:CIM_SystemPackaging>
我應該放哪裏了?是?架構文檔沒有提到這個問題,網絡上似乎沒有XML示例。這不驗證:
在模式,依賴和先行的類型cimReference,它是:
<xs:complexType name="cimReference">
<xs:sequence>
<xs:any namespace="##other" maxOccurs="unbounded" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
所以這並不能幫助我很多。我想知道是否我的意圖是將實例嵌入到先行程序中:
<sp:CIM_SystemPackaging>
<sp:Antecedent>
<chassis:CIM_Chassis>
...etc...
</chassis:CIM_Chassis>
</sp:Antecedent>
<sp:Dependent>
<computer:CIM_ComputerSystem>
...etc...
</computer:CIM_ComputerSystem>
</sp:Dependent>
</sp:CIM_SystemPackaging>
這驗證了OK,但似乎沒有縮放。由於機箱內部的每個硬件都可能存在一個對象,並且它們都需要與具有類似關聯類的機箱相關聯,所以很快就不可能實現。它似乎也違背了整個關聯模式。有沒有人熟悉CIM來解釋它應該如何工作?
爲了跟上這個,我最終決定CIM對於建模基礎設施來說太複雜了,並且建立了我自己的數據模型。您需要大約10個CIM對象來模擬一臺計算機。 –