Beispiel

von Thomas Hütsch (thomas.huetsch@huetsch.de)


Ein HP Laserjet soll im CIM modelliert werden. Für das Beispiel müssen drei Entitätsklassen und eine Aggregation definiert werden (CIM_Realizes ist im Core Modell schon definiert).


Abbildung eines HP Laserjet auf das CIM

Dieses Beispiel erhebt keinen Anspruch auf Vollständigkeit, es soll lediglich veranschaulicht werden wie eine Abbildung von Eigenschaften und Strukturen definiert werden kann. Der Aufbau der MOF-Datei für die zu registrierenden Klassen hat etwa den folgenden Inhalt:

// physikalische Ausprägung des Druckers
[Version ("1.0.0")]
class SCADE_PhysicalPackage : CIM_PhysicalPackage {
    string Location;
};

// logische Ausprägung des Druckers
[Version ("1.0.0")]
class SCADE_Laserjet : CIM_Printer {
    string Administrator;
};

// Netzwerkschnittstellen
[Version ("1.0.0")]
class SCADE_NetworkAdapter : CIM_NetworkAdapter {
};

// Aggregation
[Association, Version("1.0.0")]
class SCADE_LaserjetInterface : CIM_Component {
    [Aggregate, Override ("GroupComponent")]
    SCADE_Laserjet REF GroupComponent;
    [Override ("PartComponent")]
    SCADE_NetworkAdapter REF PartComponent;
};

Analog zu diesem Modell wird das Mapping-Modell definiert. Die SCADE_Provider.conf Datei hat etwa den folgenden Inhalt:

# Mapping der physikalischen Eigenschaften des Druckers
class PhysicalPackage is SCADE_PhysicalPackage {
    property Tag is $ID;
    property CreationClassName is $CIM_CLASS;
    property Model is "HP Laserjet 2200DN";
    property Description is const system.sysDescr;
    property Location is system.sysLocation;
}

# Mapping der Schlüsseleigenschaften eines CIM_EnabledLogicalDevice
# (wird mehrfach benutzt, daher als abstrakte Basisklasse definiert)
class Key {
    property SystemName is $HOSTNAME;
    property DeviceID is $ID;
    property SystemCreationClassName is $MAPPING_CLASS;
    property CreationClassName is $CIM_CLASS;
}

# Mapping der logischen Eigenschaften des Druckers
class Laserjet : Key is SCADE_Laserjet {
    property Administrator is system.sysContact;
}

# Mapping der Netzwerkschnittstellen
class IFace : Key is SCADE_NetworkAdapter {
    property Name is const interfaces.ifTable.ifEntry.ifDescr;
    property OctetsTransmitted is const volatile interfaces.ifTable.ifEntry.ifOutOctets;
    property OctetsReceived is const volatile interfaces.ifTable.ifEntry.ifInOctets;
}

# Erzeugen der Assoziationen und Aggregationen
association PhysicalPackage Laserjet is CIM_Realizes;
aggregation Laserjet IFace cardinal interfaces.ifNumber is SCADE_LaserjetInterface;

device Laserjet SNMP 192.168.x.x "secret";

Die letzte Zeile definiert das verwaltete Gerät (Aggregat). Von dieser Wurzelinstanz aus werden mittels der definierten Assoziationen / Aggregationen die logischen Geräte (Komponenten) definiert.


$Id: example.html 64 2005-02-23 22:43:23Z thuet $