next up previous contents
Next: Callbacks der OSI-Attribute, die Up: Die Implementierung des CMIP/SNMP Previous: Die C++-Klasse myGlobalPollingClass

C++-Klassen für die OSI-Klassen und OSI-Attribute  

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.



 
next up previous contents
Next: Callbacks der OSI-Attribute, die Up: Die Implementierung des CMIP/SNMP Previous: Die C++-Klasse myGlobalPollingClass
Copyright Munich Network Management Team