Zurück | Weiter |
Allgemeines
Der Object Request Broker stellt im CORBA System die Kommunikationsplattform
da. Nur durch den ORB kann ein Client mit einem Server sprechen. Der ORB nimmt dabei
die Vermittlungsposition ein.
Aufgaben
Der ORB ist ein zentrale Bestandteil eines CORBA Systems. Durch ihn kann ein
Client mit einem oder mehreren Servern kommunizieren. Es ist möglich auch
mehrere gleiche Serverobjekte auf verschiedenen Rechnern vorzuhalten. Stichwort Sicherheit oder
Lastverteilung. Ein Server muss zu Anfragezeit des Clients noch nicht einmal exitieren.
Der ORB sorgt dafür, dass dieser gestartet bzw. erzeugt wird. Wenn der Sender
eine andere lokale Darstellung der Daten hat, als der Empfänger, so wandelt der
ORB diese Daten um - falls erwünscht. Der ORB trägt dafür sorge, dass
der Request eines Clients auch das Serverobjekt findet. Stichwort Naming Service.
Kommunikation
Ein Client bzw. Server kann auf verschiendene Weise mit einem ORB kommunizieren. Die
folgende Abbildung zeige alle Möglichkeiten auf:
DII | Dynamic Invokation Interface - Diese Schnittstelle muss verwendet werden, wenn dem Programmierer noch nicht bekannt ist, welche Art von Interface er verwenden kann, um mit dem ORB zu kommunizieren. Es ist eine universelle Lösung und daher auch kompizierter zu implementieren. Diese Methode ist nur auf der Seite des Client zu verwenden. |
IDL - Stub | Clientseitig: Interface wird aus der IDL Datei gewonnen. Diese Schnittstelle ist direkt für diesen Client geschaffen worden. Es ist die einfachste Art der Kommunikation mit dem ORB. |
ORB Interface | Hierbei handelt es sich um eine Schnittstelle, die spezifisch für einen bestimmten ORB ist. Sie ist nicht standartisiert. |
DSI | Dynamic Skeleton Interface - Hierbei handelt es sich um das selbe wie bei dem DII, nur dass sich dieser Teil auf den Server bezieht. |
IDL Skeleton | Serverseitig:Interface wird aus der IDL Datei gewonnen. Diese Schnittstelle ist direkt für diesen Client geschaffen worden. Es ist die einfachste Art der Kommunikation mit dem ORB. |
OA | Object Adapter - Diese Schnittstelle hat eine recht grosse Bedeutung. Daher wird ihr hier auch ein eigenes Kaptiel gewidmet. Hier sei nur kurz erwähnt, dass der OA die Aufgabe hat einer Objektreferenz ein Objekt zuzuordnen. |
Implementation des ORB in einem realen Programm
Der ORB ist in dem hier gezeigten Beispielprogramm direkt sowohl zum Client als auch zum Server
mit compiliert. Dazu möchte ich hier ein paar Reports des Prozess-Status angeben.