next up previous contents
Next: Der Syslog Subagent im Up: Implementierung Previous: Implementierung

Das DPI Protokoll

Das von IBM entwickelte DPI (Distributed Program Interface) Protokoll liegt derzeit in der Version 2.0 vor und ist in RFC-1592 dokumentiert. Das Protkoll erlaubt es, den Hauptagenten zu modularisieren und die Funktionalität, für den Manager transparent, auf viele Subagenten zu verteilen.
Ohne die Möglichkeit, Aufgaben an spezialisierte Subagenten verteilen zu können, müßte bei jeder Änderung an der MIB der Hauptagent geändert werden. Dies ist aus mehreren Gründen nicht wünschenswert: zum einen liegt der SNMP Agent bei einer kommerziellen Implementierung oft nicht im Source Code vor und eine Erweiterung ist entweder gar nicht möglich, oder mit erheblichen Kosten verbunden. Bedient man sich einer freien Implementierung, so ist die ständige Erweiterung des Agenten dennoch problematisch, da der Agent zu einem großen Monolith anwächst und immer schwerer zu warten wird. Eine Erweiterung der Standard MIB um Technologie- und Firmen-MIBs, wie es das Informationsmodell des Internet Managements vorsieht, läßt sich so nur schwer realisieren.
Da der SNMP Standard keinerlei Erweiterungen der Fähigkeiten des Agenten durch den Benutzer vorsieht, wurde bei IBM eine Möglichkeit dafür geschaffen: spezialisierte Subagenten melden sich beim Hauptagent an und registrieren den Teilbaum der MIB, für den sie verantwortlich sind. Empfängt nun der Hauptagent eine SNMP Anfrage, die im Zuständigkeitsbereich des Subagenten liegt, so delegiert er die Anfrage und sendet die Antwort vom Subagenten an den Manager zurück. Die Subagenten bleiben dabei verborgen, aus der Sicht des Managers findet die Kommunikation nur mit einem Partner statt.
Der Ablauf einer DPI Kommunikation findet wie folgt statt:

Wozu nun die Befehle COMMIT und UNDO? Geht beim Hauptagenten ein SNMP Paket mit mehreren SET Befehlen ein, so kann es sein, daß diese Befehle auf mehrere Subagenten verteilt werden müssen. Tritt nun bei einem Subagenten ein Fehler auf, d.h. der SET Befehl kann nicht ausgeführt werden, so müssen auch die anderen Subagenten rückgesetzt werden, um Inkonsistenzen zu vermeiden. Um ein derartiges Rollback zu ermöglichen, arbeitet DPI mit einer 2 Level Commit Strategie. Ein eingehendes SET wird auf die Subagenten verteilt. Diese treffen alle Vorbereitungen für das Setzen der Variablen und melden ein OK an den Hauptagenten. Sind alle Subagenten fertig, sendet der Hauptagent ein COMMIT, um das Setzen der Variablen endgültig zu machen. Meldet hingegen ein Subagent einen Fehler beim SET, so sendet der Hauptagent an die anderen Subagenten ein UNDO, um die Änderungen wieder rückgängig zu machen.

Tritt bei einem Subagent der Fehler erst beim COMMIT auf, so liegt das weitere Vorgehen beim Hauptagenten, eine genauere Verfahrensweise ist nicht beschrieben.

Zur DPI Kommunikation mit dem Hauptagenten wurde die von Frank Schütz im Rahmen eines Fopras in PERL 5 implementierte DPI Library benutzt und erweitert.


next up previous contents
Next: Der Syslog Subagent im Up: Implementierung Previous: Implementierung
Copyright Munich Network Management Team