| |
4 Die Kommunikation
Dynamische Schnittstellen
Seminar Verteilte Systeme
CORBA
19
jede Methode dieser Schnittstelle eine Pseudoimplementierung enthält. Diese Pseudoimple-
mentierung sorgt dafür, dass die Anfrage über den ORB an den Server weitergegeben wird,
um dort bearbeitet zu werden. Dazu gehört unter anderem die Umsetzung des Formates der
Parameter, welche der Anfrage übergeben werden. Bei der Generierung des ServerSkeletons,
entsteht ein Quelltextrumpf. Für jede Methode, die zur Schnittstelle des ServerSkeletons
gehört, wird eine entsprechende leere Methode erzeugt. Dieser leere Rumpf muss noch vom
Programmierer mit Quellcode ausgefüllt werden, um die Funktion der Methode zu realisieren.
Das Verhältnis von ClientStub und ServerSkeleton ist auch in der Abbildung 4.4 dar-
gestellt.
Abbildung 4.4: ClientStubs und ServerSkeletons [2]
4.4 Dynamische Schnittstellen
In diesem Abschnitt soll gezeigt werden, dass ClientKomponenten auch ohne ClientStubs
auskommen können. Dies wird durch das Dynamic Invocation Interface (kurz DII)
ermöglicht. Bei den schon bekannten statischen Schnittstellen können nur die, durch die IDL
Definition vorgegebenen, Operationen angeboten bzw. aufgerufen werden. Bei der Verwen-
dung des DII kann der Client auch auf Dienste zugreifen, ohne vorher mit einem ClientStub
für diese Dienste kompiliert worden zu sein. Das heißt, die ClientKomponente hat keine
Kenntnis über diese ServerSchnittstelle. Das DII ermöglicht dem Client, Interfaces zur Lauf-
zeit zu entdecken, und entsprechende Methoden der entdeckten Schnittstelle auch aufzurufen.
Dabei merkt die ServerKomponente nicht, ob die Anfrage aus einer statischen oder dyna-
mischen Schnittstelle kommt.
Um diese Aufgabe erfüllen zu können, besitzt das DII die PseudoSchnittstelle Request. In-
stanzen dieser Schnittstelle bieten Methoden an, mit denen Anfragen an ServerKomponenten
erstellt werden können. Diese Anfragen müssen dann die notwendigen Informationen mit-
liefern. Das ist das Zielobjekt in Form einer IOR, der Name der auszuführenden Methode, die
Parameter, die der Methode übergeben werden sollen und die Angabe, ob eine Antwort
|  |
|
| |
|
|