Nachdem die IDL-Beschreibungen der Objektklassen mit ihren Attributen und Methoden erzeugt und an das CORBA-Entwicklungssystem angepaßt sind, muß nun in einem letzten Schritt die Umsetzung der Funktionalität erfolgen, die die Nutzung der Managementinformation erst ermöglicht.
Dies ist gleichbedeutend mit der in zahlreichen Bereichen der
Informatik auftretenden Fragestellung, wie bestehende Altsysteme (
legacy systems) schonend in die objektorientierte Welt
migriert werden können. Wir waren diesem Problem bereits in Abschnitt
bei der Nutzung bestehender
Plattformdienste von CORBA aus begegnet. Der zentrale Lösungsgedanke
ist hierbei, unter Zuhilfenahme sogenannter
IDL-Wrapper bestehenden Code geeignet in
Objektklassen zu kapseln und somit für neue objektorientierte Systeme
zugreifbar zu machen. Der betrachtete SNMP-Agent ist in der
Programmiersprache C implementiert worden und genügt damit
keinesfalls objektorientierten Prinzipien. Dies ist jedoch für die
Migration ohne Bedeutung, da die vom Agenten verwalteten MOCs
lediglich an ihrer Schnittstelle CORBA-konform sein müssen.
Sehr wichtige Voraussetzungen für eine Kapselung in hinreichend
feiner Granularität sind, daß das zu migrierende System genügend
modular implementiert worden ist und die Schnittstellen seiner
Prozeduren offengelegt sind bzw. die Prozeduren im Quellcode
vorliegen. Beides ist in unserem Fall gegeben (siehe Abschnitt
).
Die IDL-Schnittstellenbeschreibungen werden nun einem IDL-Compiler übergeben, der zum einen die Schnittstellen der neu erstellten Objektklassen (hier: die Wrapper für die bereits bestehenden Prozeduren) innerhalb des ORB-Laufzeitsystems bekanntmacht und zum anderen die Datenstrukturen und Schnittstellen des CORBA-Agenten in einer herkömmlichen Programmiersprache (im betrachteten Fall: C) generiert. Momentan sind Algorithmen zur Übersetzung (sogenannte Language Mappings) der Quellsprache IDL in die Zielsprachen C, C++ und Smalltalk durch OMG-Standards spezifiziert; Abbildungen für ADA, COBOL und Java sind ebenfalls in jüngster Zeit verabschiedet worden.
Die so entstandenen C-Programmrümpfe des CORBA-Agenten können nun um die entsprechenden Aufrufe von Prozeduren des bestehenden SNMP-Agenten ergänzt werden, deren Aufgabe lediglich darin besteht, die erhaltenen Parameter auf die Parameter der bestehenden Agentenprozeduren abzubilden und anschließend diese Prozeduren aufzurufen. Hierbei ist es von großem Vorteil, daß der Agent modular aufgebaut ist und die Schnittstellen des Agenten sowohl zu den Ressourcen als auch zum Managementprotokoll hin klar definiert sind.