next up previous contents
Next: 3.3.2 Naming Service Up: 3.3 CORBA Previous: 3.3 CORBA

3.3.1 Grundlegende Konzepte und Notation

Ein CORBA-Objekt ist eine gekapselte Entität, die einem Client Dienste anbietet. Ein Dienst (Service) ist eine Schnittstelle, in der Operationen, die mit der Interface Definition Language (IDL) deklariert sind, einem Client zum Aufruf bereitgestellt werden. IDL ist eine objektorientierte Schnittstellenbeschreibungssprache. Die IDL-Syntax ist eine Untermenge der C++-Syntax mit zusätzlichen Schlüsselwörten. Außerdem werden alle C++-Präprozessor-Direktiven unterstützt. IDL-Compiler generieren aus einer IDL-Schnittstelle Stubs und Skeletons zu einer Implementierungssprache, z. B. Java, C++, Cobol, Ada etc. Stubs und Skeletons übernehmen das Marshalling[*] von Aufrufen und dienen als Proxy-Objekte für den Client bzw. Server.

Durch die abstrakte IDL wird die Unabhängigkeit von der Implementierungssprache erreicht. Clients und CORBA-Objekte können dadurch in verschiedenen Programmiersprachen implementiert werden.

Die IDL-Schnittstellen können in einer Interface Repository, einer Datenbank für IDL-Schnittstellen, gespeichert werden. Sie ermöglicht vor allem Dynamic Method Invocation, welches der Aufruf einer Operation einer IDL-Schnittstelle ist, der erst zur Laufzeit des Clients erzeugt wird. Ein Client sucht dabei in der Interface Repository nach einem, für seine Zwecke geeigneten Interface bzw. Operation, generiert die Parameter und ruft die Operation auf.

  
Abbildung 3.2: Common Object Request Broker Architecture (CORBA 2.2)
\begin{figure}
 \begin{center}
 
\epsfig {file=Bilder/corba.eps,width=\textwidth}
 \end{center}\end{figure}

Jedem CORBA-Objekt ist eine eindeutige Objektreferenz zugeordnet. Ein Client, muß die Objektreferenz des CORBA-Objekts besitzen um mit diesem kommunizieren zu können. Die Kommunikationsinfrastruktur stellt der Object Request Broker (ORB) bereit (siehe Abbildung 3.2). Der ORB kann als Objekt-Bus angesehen werden, der die Ortstransparenz der CORBA-Objekte gegenüber den Clients herstellt. Ein CORBA-Objekt wird über einen Object Adapter an den ORB gebunden. Der Object Adapter stellt die Laufzeitumgebung eines CORBA-Objekts dar. Es leitet die Anfragen an das CORBA-Objekt weiter. Ein Standardadapter, der Basic Object Adapter (BOA) muß von jedem Hersteller unterstützt werden.

Um ORBs verschiedener Hersteller miteinander verbinden zu können, wurde das General Inter-ORB Protocol (GIOP) spezifiziert. GIOP ist für verbindungsorientierte Transportprotokolle konzipiert worden. Das Internet Inter-ORB Protocol (IIOP) spezifiziert, wie GIOP-Nachrichten über ein TCP/IP Netz übermittelt werden. Jeder CORBA 2.2 kompatible ORB muß IIOP unterstützen.

Um die Interoperabilität zwischen ORBs verschiedenen Herstellern zu gewährleisten, ist eine Interoperable Object Reference (IOR) spezifiziert worden.

CORBA Services sind CORBA-Objekte, welche fundamentale Dienste, wie Naming, Event, Security Service, etc. bereitstellen. Diese Services werden von Applikationsprogrammierern genutzt.

Drei CORBA Services, die in Hinblick auf Agentenarchitekturen interessant sind, werden nun vorgestellt.


next up previous contents
Next: 3.3.2 Naming Service Up: 3.3 CORBA Previous: 3.3 CORBA
Copyright Munich Network Management Team