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.
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.