Eindrücke von den verwendeten CORBA-Implementierungen

ORBacus 4.0a2/4.0b1 für C++

Dies ist eine der ersten CORBA-Implementierungen, die zumindest in einer Alpha bzw Beta-Version mit Unterstützung für den Portable Object Adapter verfügbar waren. Schon mit der 4.0a2 gab es fast keine Probleme mehr. Allerdings ist diese Implementierung recht resourcenhungrig beim Compilieren von Programmen.

omniORB 3.0pre1 (für C++)

Seit Ende September 1999 gibt es auch eine Alpha-Version von omniORB mit Unterstützung des POA. Anfangs waren noch einige Fehler enthalten, die jedoch mit der Zeit natürlich ausgebessert werden, sodass die 3.0er-Version bald einen recht stabilen und fehlerfreien Status erreichen dürfte. Positiv an dieser Implementierung ist sicherlich, daß sie der GNU General Public License bzw der GNU Library General Public License unterliegt und mittlerweile auch CVS-Zugriff auf den aktuellen Source-Code möglich ist. Im Vergleich zu ORBacus ist omniORB wesentlich resourcenschonender beim Compilieren, bietet aber auch nicht ganz so viele Features an.

Visibroker für Java (inkludiert in Netscape Navigator 4.x)

Die im Navigator integrierte Version vom Visibroker für Java ist leider schon veraltet, dh sie hat vor allem keine POA-Unterstützung. Darüber hinaus ist sie offenbar nicht richtig multithreading-fähig, da sie Methodenaufrufe über eine Verbindung synchronisiert -- es können allerdings manuell zusätzliche Verbindungen zu einem Objekt erzeugt werden, über die konkurrente Aufrufe getätigt werden können.

ORBacus 3.2 für Java

Die Java-Version von ORBacus gibt es bisher nur in der Version 3.2 -- eine Beta der Version 4.0 mit POA-Unterstützung ist allerdings noch für 1999 angekündigt.

JacORB 1.0 Beta 13

JacORB unterliegt der GNU Library General Public License und bietet seit der Version 1.0 (Beta) auch Unterstützung für den Portable Object Adapter. Bei der Verwendung von JacORB innerhalb eines Applets gibt es allerdings noch einige kleinere Probleme, die hoffentlich bald behoben werden.

In der derzeitigen Version hat JacORB noch Probleme, wenn der Appligator von einem Applet aus nicht benutzt werden soll. Zur Lösung sind in den Dateien jacorb/orb/Delegate.java und jacorb/orb/ORB.java die Abfragen auf isApplet durch false zu ersetzen.

Damit Callback auch funktionieren, wenn nur Verbindungen von/zu localhost erlaubt sind, muss dies noch explizit jacorb/orb/BasicAdapter.java angepaßt werden, damit bei Objektreferenzen auch der localhost eingetragen wird. Dazu fügt man am besten vor Zeile 187 noch folgende Anweisung ein:

address = "localhost";

Fnorb 1.0 (für Python)

Fnorb war die erste für Python verfügbare CORBA-Implementierung. Mittlerweile hat sie aber durch Python-Bindings von ORBit und omniORB Konkurrenz bekommen. Bis auf die noch fehlende POA-Unterstützung ist Fnorb aber ein ausgewachsener ORB, der kaum Wünsche offen läßt. Da er selbst komplett in Python geschrieben ist, ist er auf jeder Plattform verfügbar, für die es Python gibt.