Dela via


Gemensam informationsmodell

Common Information Model (CIM) är en utökningsbar, objektorienterad datamodell som innehåller information om olika delar av ett företag. CIM- är en plattformsoberoende standard som underhålls av arbetsgruppen för distribuerad hantering (DMTF). Via WMI kan en utvecklare använda CIM för att skapa klasser som representerar hårddiskar, program, nätverksroutrar eller till och med användardefinierade tekniker, till exempel en nätverksansluten luftkonditionering. Genom att visa och göra ändringar i en CIM-klass kan en chef styra olika aspekter av företaget. En chef kan till exempel fråga en CIM-klassinstans som representerar en skrivbordsarbetsstation. Chefen kan sedan köra ett skript för att ändra CIM-arbetsstationsinstansen. WMI skulle översätta alla ändringar i CIM-klassinstansen för arbetsstationen till en ändring av den faktiska arbetsstationen.

CIM är en språkoberoende programmeringsmodell som använder objektorienterade tekniker för att beskriva ett företag. Med hjälp av tre nivåer av överordnat/underordnat arv kan CIM beskriva både allmänna och specifika aspekter av ett företag. CIM använder också en teknik som kallas "association" för att länka samman olika delar av företagsmodellen och använder scheman för att skilja mellan olika hanteringsmiljöer.

CIM är utformat för att presentera en konsekvent vy över logiska och fysiska objekt i en hanteringsmiljö. CIM representerar hanterade objekt med hjälp av en objektorienterad konstruktion som kallas "klass". Precis som en C++- eller COM-klass kan en CIM-klass innehålla egenskaper för att beskriva data och metoder för att beskriva beteende. Precis som en uppsättning COM-klasser är CIM inte kopplat till någon plattform. WMI innehåller dock ett tillägg till CIM som beskriver Microsoft Windows operativsystemplattformar.

CIM definierar tre nivåer av klasser:

  • Kärna

    Kärnklasser representerar hanterade objekt som gäller för alla hanteringsområden. Dessa klasser ger en grundläggande vokabulär för att analysera och beskriva hanterade system. Klasserna __Parameters och __SystemSecurity är exempel på kärnklasser.

  • Gemensam

    Vanliga klasser representerar hanterade objekt som gäller för specifika hanteringsområden. Vanliga klasser är dock oberoende av en viss implementering eller teknik. Vanliga klasser är en förlängning av kärnklasserna. Klassen CIM_UnitaryComputerSystem är ett exempel på en vanlig klass.

  • Utökad

    Utökade klasser representerar hanterade objekt som är teknikspecifika tillägg till de vanliga klasserna. En utökad klass gäller vanligtvis för en specifik plattform, till exempel UNIX eller Microsoft Win32-miljön. Klassen Win32_ComputerSystem är ett exempel på en utökad klass.

En utvecklare kan härleda en klass från en annan klass. En härledd klass representerar ett specialfall för den överordnade klassen och ärver alla egenskaper och metoder för den överordnade klassen. Till exempel ärver Win32_ComputerSystem från CIM_UnitaryComputerSystem. Arvsrelationer kan fastställas med hjälp av systemegenskaperna __Derivation, __Dynastyoch __SuperClass. Den __Derivation systemegenskapen är en matris med strängar som visar hela arvskedjan upp till och med rotklassen, som också ingår i __Dynasty. Den __SuperClass systemegenskapen visar den omedelbara överordnade för den aktuella klassen.

WMI stöder också associationer. En association är en relation mellan två eller flera olika WMI-klasser. Till exempel har en arbetsstation som körs vanligtvis en processor. WMI-associationsklassen Win32_ComputerSystemProcessor associerar arbetsstationsklassen Win32_ComputerSystem med processorklassen Win32_Processor. En associationsklass behöver dock inte koppla ihop två beroende klasser. I själva verket är det primära syftet med en associationsklass att visa relationer mellan klasser som inte nödvändigtvis är beroende av varandra. Mer information finns i Deklarera en associationsklass.

Slutligen stöder WMI begreppet scheman. I samband med WMI är ett schema en grupp klasser som beskriver en viss hanteringsmiljö. Microsoft Windows Software Development Kit (SDK) använder två scheman: CIM-schemat och Win32-schemat. CIM-schemaklassnamnen börjar med CIM_och win32-schemaklassnamnen börjar med Win32_. CIM-schemat innehåller definitionerna för kärnklasserna och vanliga klasser, medan Win32-schemat innehåller definitionerna för de utökade klasser som är gemensamma för Win32-miljön. En tredjepartsleverantör kan dock skapa egna scheman för att beskriva leverantörsspecifika krav. Eftersom scheman är utformade för att vara oändligt utökningsbara kan en utvecklare alltid lägga till nya klasser för att beskriva nya hanterade objekt i en befintlig miljö. För enkelhetens skull väljer dock de flesta leverantörer att skapa scheman som ärver egenskaper från CIM- eller Win32-scheman.