next up previous contents
Next: Mechanismen für den dynamischen Up: Dynamische Methodenaufrufe in Corba Previous: Inhalt

Einführung:
Der Standard-Methodenaufruf in Corba

Als Referenzentwurf eines verteilten Systems legt Corba das Verfahren eines Methodenaufrufs und die Schnittstellen der dabei teilnehmenden Objekte (Client, Server sowie der ORB als Middleware) fest.


 
Abbildung 1: Standard-Methodenaufruf in Corba
\begin{figure}
\begin{center}
\epsfbox{corba2.eps}\end{center}\end{figure}

Client und Server enthalten nach der Corba-Spezifikation je ein durch den IDL-Compiler generiertes Stück Programmcode als Aufsatz: Der IDL-Stub für den Client und der IDL-Skeleton für den Server.
Die Aufgabe des Stubs und des Skeletons besteht nun darin, die im abstrakten IDL-Code beschriebene Schnittstelle in die jeweils verwendete Programmiersprache umzusetzen.
In einer C++-Implementation würde dies zum Beispiel bedeuten, daß eine Datei hello_world.idl durch den IDL-Compiler in hello_worldC.cc (den Client-Stub) und hello_worldS.cc (den Server-Skeleton) sowie eine gemeinsam verwendete Headerdatei hello_world.hh erzeugt wird (Abb.2). Diese Dateien werden dann auf Client- und Serverseite in den Programmcode eingebunden.

In der laufenden verteilten Anwendung ist es nun Aufgabe des Stubs und des Skeletons, über Kommunikation mit dem ORB den entfernten in einen lokalen Methodenaufruf umzuwandeln. Das bedeutet konkret, daß der Stub dem Client alle Methoden der Serverimplementation anbietet, weshalb man ihn auch als Proxy bezeichnet.



 
Abbildung 2: Stub- und Skeletongenerierung in C++
\begin{figure}
\begin{center}
\epsfbox{corba3.eps}\end{center}\end{figure}

Durch die Definition der Schnittstelle in IDL und die Bereitstellung der aus ihr generierten Programmcodestücke wird damit erreicht, daß sich die Programmierung von Client und Server völlig unabhängig voneinander gestalten läßt. Man könnte also nach der Festlegung der Schnittstelle die Implementation der beiden Seiten verschiedenen Entwicklerteams zuweisen.

Von der Clientseite her ergibt sich damit allerdings folgender Nachteil: Der Client muß von Beginn an ``wissen'', welche Methoden die Serverimplementation bereitstellt, die Aufrufe können also nur statisch ausgeführt werden. Aus diesem Grund wurden der Corba-Spezifikation Mechanismen zur Unterstützung dynamischer Aufrufe beigefügt. Diese sind im wesentlichen das Interface Repository (IR) und das Dynamic Invocation Interface (DII).


next up previous contents
Next: Mechanismen für den dynamischen Up: Dynamische Methodenaufrufe in Corba Previous: Inhalt
Tim Paehler
1998-05-12