通用訊息模型

通用訊息模型 (CIM) 是一種可延伸的物件導向資料模型,包含企業中許多不同部分的資訊。 CIM是由分散式管理工作組 (DMTF) 維護的跨平臺標準。 開發人員透過 WMI 即可使用 CIM 來建立代表硬碟、應用程式、網路路由器或甚至是使用者定義的技術 (如空調網路) 的類別。 透過檢視和變更 CIM 類別,管理員即可控制企業的各個層面。 例如,管理員可以查詢代表桌面工作站的 CIM 類型執行個體。 然後管理員即可執行指令碼來修改 CIM 工作站執行個體。 WMI 會將對工作站 CIM 類別執行個體所做的任何變更轉譯為對實際工作站的變更。

CIM 是一種與語言無關的程式設計模型,使用物件導向技術來描述企業。 使用三個層級的父子繼承,CIM 可以描述企業一般和特定層面。 CIM 也會使用稱為「關聯」的技術,將企業模型的不同部分連結在一起,並使用架構來區分不同的管理環境。

CIM 的設計目的是在管理環境中呈現邏輯和實體物件的一致檢視。 CIM 代表使用稱為「類別」的物件導向建構來管理物件。如同 C++ 或 COM 類別,CIM 類別可以包含屬性來描述資料及描述行為的方法。 如同一組 COM 類別,CIM 不會系結至任何平臺。 不過,WMI 包含描述 Microsoft Windows 作業系統平臺之 CIM 的擴充功能。

CIM 會定義三個層級的類別:

  • 核心

    核心類別代表套用至所有管理區域的 Managed 物件。 這些類別提供分析及描述受管理系統的基本詞彙。 __Parameters__SystemSecurity類別是核心類別的範例。

  • 通用

    通用類別代表套用至特定管理區域的 Managed 物件。 不過,常見的類別與特定實作或技術無關。 通用類別是核心類別的延伸模組。 CIM_UnitaryComputerSystem類別是通用類別的範例。

  • Extended

    擴充類別代表受管理物件,這些物件是通用類別的技術特有新增專案。 擴充類別通常適用于特定平臺,例如 UNIX 或 Microsoft Win32 環境。 Win32_ComputerSystem類別是擴充類別的範例。

開發人員可以從另一個類別衍生類別。 衍生類別代表父類別的特殊案例,並繼承父系的所有屬性和方法。 例如, Win32_ComputerSystem 繼承自 CIM_UnitaryComputerSystem。 繼承關聯性可以使用系統屬性 來判斷__Derivation__Dynasty__SuperClass__Derivation系統屬性是字串陣列,列出整個繼承鏈結,以及包含根類別,也會包含在__Dynasty中。 __SuperClass系統屬性會顯示目前類別的立即父系。

WMI 也支援關聯。 關聯是兩個或多個不同 WMI 類別之間的關聯性。 例如,執行中的工作站通常會有處理器。 WMI 關聯類別 Win32_ComputerSystemProcessor 會將工作站類別 Win32_ComputerSystem 與處理器類別 Win32_Processor產生關聯。 不過,關聯類別不需要將兩個相依類別系結在一起。 事實上,關聯類別的主要目的是顯示不一定相依于彼此的類別之間的關聯性。 如需詳細資訊,請參閱 宣告關聯類別

最後,WMI 支援架構的概念。 在 WMI 的內容中,架構是描述特定管理環境的類別群組。 Microsoft Windows 軟體發展工具組 (SDK) 使用兩種架構:CIM 架構和 Win32 架構。 CIM 架構類別名稱開頭為 CIM_,而 Win32 架構類別名稱開頭為 Win32_。 CIM 架構包含核心和通用類別的定義,而 Win32 架構則包含 Win32 環境通用之擴充類別的定義。 不過,協力廠商廠商可以建立自己的架構來描述廠商的特定需求。 因為架構是設計成可無限擴充的,所以開發人員一律可以新增類別,以描述現有環境中的新 Managed 物件。 不過,為了簡單起見,大部分廠商都會選擇建立繼承 CIM 或 Win32 架構屬性的架構。