Next: Übersetzung der IDL-Dateien in
Up: Implementierung der CORBA-Objekte für
Previous: Implementierung der CORBA-Objekte für
Für die Entwicklung des Prototypen wurde das Produkt VisiBroker
for Java der Firma Visigenic, das seit April 1996 erhältlich ist,
eingesetzt. Die Implementierung basiert auf der Version 3.0 vom
September 1997. Zu diesem Zeitpunkt wurde der Markt der Java-ORBs vor
allem von drei Produkten beherrscht: Visigenic's VisiBroker for
Java, IONA's OrbixWeb und Sun's Joe. Die Auswahl des
geeignetsten Produkts war Aufgabe vor Beginn der Implementierung. Die
Entscheidung wurde anhand des Vergleichs der ORBs in [VD97]
und durch einen Test der frei verfügbaren Evaluierungsversionen von
OrbixWeb und VisiBroker getroffen. Folgende Anforderungen
sollte das Produkt erfüllen:
- Der ORB sollte mit der CORBA-Spezifikation 2.0 der OMG konform
sein. Ebenso sollte die Abbildung von IDL nach Java auf dem
standardisierten Java language mapping der OMG basieren.
- Sowohl Client als auch Server sollten in Java programmiert
werden können. Als Client sollte der ORB auch Java-Applets
unterstützen.
- Sowohl die Entwicklungswerkzeuge als auch die Laufzeitumgebung
(ORB) sollten für die wichtigsten UNIX-Plattformen (IBM AIX, Sun
Solaris und HP-UX) zur Verfügung stehen, um CORBA-Agenten in
heterogener Umgebung entwickeln und betreiben zu können.
- Das Produkt sollte möglichst viele der bereits standardisierten
CORBA-Services beinhalten.
- Guter Support durch den Hersteller sollte gewährleistet sein.
Joe scheiterte an der zweiten Anforderung, da zu diesem
Zeitpunkt nur die Entwicklung von Java-Clients möglich war.
OrbixWeb und VisiBroker boten im wesentlichen die gleiche
Funktionalität. Die Entscheidung fiel aus folgenden Gründen auf den
VisiBroker, der die obigen Anforderungen am besten erüllte:
- Die Entwicklungsumgebung und der ORB sind auf allen Plattformen
lauffähig, die das JDK ab Version 1.1.2 unterstützen, da sie
vollständig in Java implementiert sind. Einzige Einschränkung: Ein
zur Laufzeit erforderlicher Dämon, der sog. Smart Agent, stand
nur für Solaris bzw. Windows NT zur Verfügung. Dieser muß aber nur
auf einem Rechner innerhalb des Netzes vorhanden sein. Auf seine
Funktion wird in Abschnitt 6.4.1 eingegangen.
- Visigenic liefert mit dem optionalen Produkt
Gatekeeper einen Mechanismus, der es CORBA-Applets unter
Umgehung der Kommunikationseinschränkungen für Java-Applets ermöglicht,
auf Server-Objekte auf beliebigen Rechnern zuzugreifen. Diese
Technik basiert auf Proxy-Objekten kombiniert mit einem Tunneling
von IIOP über HTTP (siehe Abschnitt 6.5 und
[Vis97a]).
- Als einziges Produkt bot VisiBroker zumindest die
CORBA-Services Naming und Event.
- Die Firma Netscape hatte angekündigt, den ORB von
Visigenic sowohl in ihre Browser Navigator und
Communicator als auch in ihre Web-Server zu integrieren. Bis
dato wurde diese Integration allerdings nicht vollständig und nur mit
der alten ORB-Version 2.5 vollzogen.
Alle Leistungsmerkmale des VisiBroker aufzuführen, würde an
dieser Stelle zu weit führen. Daher werden in diesem Überblick nur die
wichtigsten Funktionen genannt, die für die Implementierung des
Prototypen benötigt werden. Für Details sei auf die Manuale
[Vis97b] und [Vis97c] verwiesen.
Der IDL-Compiler idl2java zur Übersetzung der
IDL-Objektbeschreibungen des Objektmodells wird im Abschnitt
6.3.2 beschrieben.
Der ORB ermöglicht die transparente Kommunikation zwischen den
verteilten CORBA-Objekten. Ruft ein Client eine Methode auf einem ihm
bekannten Objekt auf, lokalisiert der ORB das entsprechende Objekt,
leitet den Aufruf weiter und gibt das Ergebnis an den Client
zurück. Der ORB ist kein separater Prozeß, sondern eine Sammlung von
Java-Klassen in einem Archiv, die zur Laufzeit von der Java-VM zu den
Clients bzw. Servern hinzugebunden werden. Diese Klassen müssen auf
allen Rechnern installiert sein, auf denen CORBA-Objekte laufen sollen.
Der Smart Agent ist ein Dämon zur einfacheren Lokalisation von
CORBA-Objekten. Es handelt sich hierbei um eine proprietäre
Erweiterung der CORBA-Spezifikation. Server-Objekte registrieren sich
bei ihrer Aktivierung bei dem Agenten. Mit seiner Hilfe können sich
Clients über den Objektnamen und dem optionalen Hostnamen an ein
Server-Objekt binden, das heißt, dessen IOR ermitteln. Diese Funktionalität
ist nicht mit dem CORBA Naming-Service zu verwechseln. Tatsächlich
sollte dieser Dienst eine standardisierte Lokalisierungsfunktion
bereitstellen und den Smart Agent überflüssig
machen. Unglücklicherweise ist der Betrieb des Visigenic
Naming-Service auch nur bei vorhandenem Smart Agent möglich,
da der ORB den Bootstrap-Mechanismus über die Operation
list_initial_references() noch nicht unterstützt. Für den Fall,
daß sich der Einsatz des Smart Agent verbietet, weil z.B. auf
Objekte über einen Fremd-ORB zugegriffen wird, muß der umständliche
und komplizierte Umweg über sog. stringified IORs, die in
fest definierten Dateien abgelegt werden, gegangen werden. Der
Smart Agent wird über das Kommando osagent [-v] &
gestartet. Er ist ausschließlich unter Solaris bzw. Windows NT
lauffähig, muß aber nur einmal im Netz vorhanden sein, solange er von
allen Objekten per UDP-Broadcast erreichbar ist.
Bei Verwendung des Smart Agent kann auch eine automatische
Objektaktivierung genutzt werden. Normalerweise müssen die
CORBA-Objekte über ein Server-Programm kreiert und aktiviert werden
(siehe Abschnitt 6.3.5), bevor ein Client auf sie zugreifen
kann. Wird auf jedem Rechner mit CORBA-Objekten der sog. Object
Activation Daemon (OAD) gestartet, kann der Smart Agent
Objekte bei Bedarf, das heißt bei Aufruf durch einen Client, starten. Dazu
müssen die Objekte mit Name und IDL-Schnittstelle mit Hilfe des
Werkzeugs oadutil einmalig beim OAD, der das CORBA
Implementation Repository implementiert, registriert werden.
Weiterhin bietet VisiBroker for Java ein Interface
Repository (IR) zur Registrierung von Objektschnittstellen,
welches über Kommandozeilen-Tools oder zur Laufzeit von Objekten
abgefragt werden kann.
Für den Betrieb des VisiBroker müssen folgende
Umgebungsvariablen gesetzt bzw. angepaßt werden.
- PATH:
- Ergänzen um die Pfade zu den JDK- und
VisiBroker-Executables. Es ist unbedingt darauf zu achten, daß sich nur
der Java-Compiler und die Java-VM des JDK 1.1.2 oder höher im
Suchpfad befinden. Anderenfalls treten schwer zu lokalisierende
Fehler auf.
- CLASSPATH:
- Ergänzen um die Pfade zu den Klassenarchiven
für den ORB und die CORBA Services.
- VBROKER_ADM:
- Verzeichnis, auf das der Smart Agent
schreibend zugreifen darf. Enthält Log-Dateien, Interface und
Implementation Repository.
- OSAGENT_ADDR:
- (optional) IP-Adresse des Rechners, auf dem
der osagent läuft. Wird andernfalls über einen
UDP-Broadcast ermittelt.
- OSAGENT_PORT:
- (optional) Portnummer des osagent,
falls nicht der Default-Port 14000 verwendet wird.
- LD_LIBRARY_PATH:
- Bei Verwendung des JNI (siehe
Abschnitt 6.3.4) muß das Verzeichnis für die erzeugten
Bibliotheken angegeben werden.
Next: Übersetzung der IDL-Dateien in
Up: Implementierung der CORBA-Objekte für
Previous: Implementierung der CORBA-Objekte für
Copyright Munich Network Management Team