next up previous contents
Next: 4.3.2 Erzeugung der SNMP-PDUs Up: 4.3 Zustandsloses Gateway Previous: 4.3 Zustandsloses Gateway

4.3.1 Zugriff mittels generischer Klassen

 
  
Abbildung 4.4: Zugriff mittels einer generischen Klasse
\begin{figure}
\begin{center}
\leavevmode \epsffile{GenKlass.eps}\end{center}\end{figure}

Im ersten Fall, der besprochen werden soll, erhält der Manager eine Objektreferenz auf eine Instanz einer generischen Klasse mit i. w. zwei Methoden: Die Schattenobjekte und die dazugehörigen Objektreferenzen werden von diesem Objekt zur Verfügung gestellt. Die get()-Methode erzeugt eine GetRequest-PDU, die set()-Methode eine SetRequest-PDU; das Objekt implementiert also gewissermaßen eine Dienstschnittstelle, mit der eine CORBA-Managementanwendung mit SNMP-Agenten kommunizieren kann. Es ist äquivalent mit dem in Abbildung 4.2 gezeigten snmpserver. Der Manager verwendet explizit diese Schnittstelle, wenn er auf SNMP-Ressourcen zugreifen will.

In der Abbildung 4.4 ist der Zugriff auf die Variable SysLocation des Agenten ,,tosh`` gezeigt. Der Manager benötigt hierzu den get()-,,Dienst``. Er wird also die Methode get() mit den Parameterwerten ``SystemGroup`` (eine Objektreferenz auf das Schattenobjekt ``SystemGroup``), ``SysLocation`` (das gewünschte Attribut) und ``tosh`` (der Zielagent) aufrufen (1). Im Gateway muß daraufhin eine Abbildung des Attributnamens auf die SNMP-Variable stattfinden. Der Objektidentifikator und der Instanzidentifikator sind im adressierten Schattenobjekt gespeichert und werden vom generischen Objekt abgefragt. Schließlich wird eine GetRequest-PDU erzeugt und abgeschickt (2). Die angeforderte Information wird der vom Agenten kommenden GetResponse (3) entnommen und dem Aufrufer zurückgegeben (4).

Dieser Ansatz ist nicht geeignet, da eine Managementanwendung, statt die Attributzugriffsfunktionen der Schattenobjekte aufzurufen, die Objektreferenzen und Attribute explizit als Parameter dem Gateway übergeben muß. Die Tatsache, daß (über ein Gateway) auf SNMP-Ressourcen zugegriffen wird, ist für den Manager nicht transparent. Zu einem gegebenen Objekt (bzw. Objektreferenz) muß der Manager entscheiden, ob für den Zugriff ein Gateway-Dienst verwendet werden muß oder -- bei ,,normalen`` CORBA-Objekten -- direkt die Objektmethoden aufgerufen werden können.

Die zweite Alternative einer generischen Klasse basiert auf der Mehrfachvererbung. Bei der Übersetzung einer Agenten-MIB werden verschiedene Objektklassen erzeugt. Schließlich wird eine Klasse definiert, welche alle Attribute und Methoden der erzeugten IDL-Schnittstellen erbt. Eine Instanz dieser Klasse kann gewissermaßen als CORBA-Repräsentant eines SNMP-Agenten angesehen werden. In der Abbildung 4.5

  
Abbildung 4.5: Zugriff auf einen Schattenagent
\begin{figure}
\begin{center}
\leavevmode \epsffile{GenKlass2.eps}\end{center}\end{figure}

wird eine solche Instanz -- in Anlehnung an die Bezeichnung ,,Schattenobjekt`` -- Schattenagent genannt. Ein Schattenagent integriert die Schnittstellen der Schattenobjektklassen und ein Kommunikationsmodul für den Informationsaustausch mit SNMP-Agenten (den snmpserver, s. o.). Für jeden SNMP-Agenten wird ein Schattenagent erzeugt, diese Aufgabe übernimmt ein eigener Prozeß im Gateway. Der Manager hat von jedem Schattenagent eine Objektreferenz. Zu jedem Attribut gehören eindeutige Methoden, die den Zugriff auf das Attribut ermöglichen. Ein Zugriff selbst erfolgt also durch den Aufruf dieser Methoden mittels eines CORBA-Requests.

Im Beispiel ruft die Managementanwendung die Methode get_SysLocation() auf (1). Der Schattenagent bildet den Attributnamen auf den SNMP-Objektidentifikator ab, identifiziert die zum Attribut gehörende SNMP-Instanz und versendet einen GetRequest (2). Mit (3) und (4) gelangt die angeforderte Managementinformation zuerst zum Schattenagent und dann zum Manager.

Der Gewinn im Vergleich zum obigen Verfahren ist, daß für die Managementanwendung nicht erkennbar ist, daß mit SNMP-Agenten kommuniziert wird. Der Ansatz hat aber folgende Nachteile:


next up previous contents
Next: 4.3.2 Erzeugung der SNMP-PDUs Up: 4.3 Zustandsloses Gateway Previous: 4.3 Zustandsloses Gateway
Copyright Munich Network Management Team