Die Reihe der Klassen, welche die M-Beans der MIB repräsentieren, beginnt mit einem
speziellen ``Haupt-''M-Bean. Dieses Bean repräsentiert die oberste Stufe der
MIB-Hierarchie. Die Klasse wird mit dem MIB-Bezeichner benannt.
Sie stellt eine Unterklasse der SnmpMIB-Klasse dar, welche durch
die oben genannten Pakete bereitgestellt wird. Diese Klasse besitzt zwei Initialisierungsvarianten.
Diese Varianten ermöglichen die Instantiierung der MIB innerhalb des JDMK-Agenten mit
und ohne Registrierung der M-Beans innerhalb des CMF. Es ist durchaus denkbar, um eventuell
die Anzahl der M-Beans zu verringern, auf die Registrierung zu verzichten. Nach wie vor ist ein
Zugriff auf die Elemente durch den SNMP-Adapter möglich. Allerdings setzt der Zugriff
über die anderen Adaptoren eine Registrierung voraus.
Die Initialisierung verläuft kaskadenartig in der MIB-Hierarchie nach unten. Eine Gruppe nach
der anderen wird instantiiert und ggf. im CMF registriert.
Innerhalb jeder Gruppe (bzw. Klasse, die die Gruppe repräsentiert) werden zunächst die
Properties, welche einfache SNMP-Datenstrukturen darstellen, initialisiert. Danach werden,
falls vorhanden, die Tabelleneinträge instantiiert und ggf. im CMF registriert. Es ist zu beachten,
daß für die Tabelle selbst kein M-Bean erzeugt wird, sondern die Bezeichner der Tabelleneinträge
als Domäne den Tabellenbezeichner erhalten. Nachfolgend ist ein Beispiel für die Instantiierung
und Registrierung einer Klasse zu sehen. Es ist bereits die generierte Klasse auskommentiert und
durch eine benutzerspezifische Klasse ersetzt worden. Diese Klasse wurde von der generierten
Klasse abgeleitet. Das Erstellen von benutzerspezifischen Klassen ist in Kapitel
6.4 beschrieben. Die Methode registerNode
wird verwendet, um die
Klasse bzw. die MIB-Gruppe die sie repräsentiert in die JDMK-MIB-Struktur zu integrieren.
// Initialization of the "NetworkParms" group. // For disabling support of this group, just comment out the section. // { NetworkParmsMeta meta= new NetworkParmsMeta((SnmpMib)this); // generated M-Bean, now obsolete //NetworkParms instance = new NetworkParms((SnmpMib)this); // The following line obsoletes genarated M-Bean ... NetworkParmsImpl instance = new NetworkParmsImpl((SnmpMib)this, cmf); // Set Metadata for SNMP-Access ... meta.setInstance(instance); root.registerNode("1.3.6.1.4.1.2206.5.1.1.1", (SnmpMibNode)meta); // The following line obsoletes generated registration line ... cmf.addObject(instance , new ObjectName(mibName + ":" + "tis20.impl.NetworkParmsImpl")); // generated registration, now obsolete //cmf.addObject(instance , new ObjectName(mibName + ":" + "tis20.mibgen.NetworkParms")); }Wie in dem Beispiel ersichtlich, wird eine Metadaten-Klasse generiert, welche bei Zugriffen über den SNMP-Adapter verwendet wird. Diese Metadaten bzw. die dafür generierten Klassen bieten die notwendigen Informationen, falls über einen MIB-Browser oder SNMP-Agenten auf den JDMK-Agenten zugegriffen wird. In Kapitel 6.3.3 wird auf die Verwendung der Metadaten eingegangen.
Abbildung 6.3: Erzeugung der MIB-Rahmenstruktur
Der Ablauf der Generierung richtet sich nach folgendem Schema: