Es wurde bereits in Abschnitt 3.2.1 dargestellt, daß es die Aufgabe des
MIBcomposers ist, die C++-Implementierungen der Managementobjekt-Klassen, die in
der MIB des OSI-Agenten durch GDMO-Templates definiert werden, zu generieren.
Diese Implementierung setzt sich aus einer Reihe von C++-Klassen zusammen, wobei
jede OSI-Klasse und jedes OSI-Attribut von einer eigenen C++-Klasse realisiert
wird.
Daraus wird sofort ersichtlich, daß eine OSI-Managementobjekt-Klasse von einer
Vielzahl von C++-Klassen repräsentiert werden kann. Die OSI-Vererbungshierarchie
spiegelt sich dabei in der C++-Vererbungshierarchie wieder: Die OSI-Klasse ,,
internetSystem`` ist beispielsweise von der OSI-Klasse ,,top`` abgeleitet (siehe 3.1.1). Der MIBcomposer generiert dafür unter
anderen die beiden C++-Klassen CLASS_top und
CLASS_internetSystem. Die OSI-Vererbungshierarchie überträgt sich auf die
C++-Klassen, indem die CLASS_internetSystem von CLASS_top
abgeleitet wird.
Diese generierten C++-Klassen stellen die Implementierung von
Mangementobjekten dar und deren Instanzen haben damit die Aufgabe, Managementoperationen auszuführen.
Das Auslösen einer Managementoperation beruht dabei auf dem Aufrufen einer oder
mehrerer Mehtode(n) dieser C++-Klassen. Diese Methoden basieren auf den schon
vorgestellten Callbacks.
Ein vereinfachtes Beispiel soll die Zusammenhänge verdeutlichen: Ein GET-Request
eines OSI-Managers auf einer beliebigen Instanz einer OSI-Klasse bewirkt einen Methodenaufruf
(common_get) in der diese OSI-Klasse repräsentierenden C++-Klasse. Diese Methode
realisiert das Aufrufen verschiedener Callback-Routinen, die schließlich für
das Lesen von Attributwerten verantwortlich sind.
So generiert der MIBcomposer für alle möglichen CMIS-Anforderungen
entsprechende Methodenaufrufe in den C++-Klassen. Diese Methoden enthalten je nach
Anforderung verschiedene Callbacks. Die Aufgabe eines Agentenentwicklers besteht
in der Implementierung dieser Callbacks. Damit wird auch deutlich, daß ein
Entwickler zu einer Managementobjekt-Klasse nicht alle Callbacks realisieren
muß: Im Extremfall, falls er gar keinen Callback-"Code erstellt, generiert
der MIBcomposer alle notwendigen C++-Klassen und damit die den möglichen
CMIS-Requests entsprechenden Methoden.
Diese Methoden rufen die ,,leeren`` Callbacks auf, damit wird kein ,,spezielles Verhalten`` ausgeführt, der
entsprechende CMIS-Request kann aber vollständig abgearbeitet werden.
Bei der Implementierung des Gateways mußten für alle OSI-Klassen und
OSI-Attribute, die aus der Übersetzung der Internet-MIBs in OSI-MIBs entstanden
sind, die entsprechenden Callback-Routinen programmiert werden.