CORBA ermöglicht die Kooperation von Anwendungen, die in unterschiedlichen
Programmiersprachen erstellt sind und auf verschiedensten Hardware-
Betriebssystem- und und Netzwerkumgebungen laufen können. Das Kernstück der
in Abb skizzierten Object Management Architecture ist dabei der
sogenannte Object Request Broker (ORB).
Über den ORB kommunizieren Client-Objekte mit Server-Objekten, deren
physikalische Position und konkrete Implementierung für den Client völlig
transparent ist. Um dies zu ermöglichen müssen lediglich die Schnittstellen
solcher Server-Objekte in einer einheitlichen Sprache eindeutig definiert und
dem ORB bekannt sein. Zu diesem Zweck wurde die sogenannte Interface
Definition Language (IDL) etabliert. IDL ist objektorientiert und unabhängig
von einer bestimmten Programmiersprache.
Die CORBAservices stellen die grundlegenden Funktionen zur Verfügung, die
für eine verteilte Programmierung auf Basis der OMA erforderlich sind. Ein
Beispiel dafür wäre der Naming Service, der die eindeutige Benennung
der Objekte gestattet, d.h. über die Bezeichnung ein Zielobjekt
lokalisiert. Die Bereitstellung der genau festgelegten CORBAservices wird von
jedem OMG-konformen ORB erwartet.
Die CORBAfacilities dagegen kann man eher im Sinne einer Klassenbibliothek
betrachten. Sie stellen weiterführende Dienste zur Verfügung. Dabei muß
zwischen vertikalen Facilities, die spezielle Funktionen für einen Bereich
(z.B. Textverarbeitung) enthalten und horizontalen Facilities, die häufig
verwendete Funktionen für verschiedene Bereiche anbieten, unterschieden
werden. Die Bereitstellung von CORBAfacilities ist im Gegensatz zu den Services
allerdings nicht zwangsweise gewährleistet.
Application Objects stellen schließlich die eigentlichen Anwendungen dar. Sie
können ihrerseits weitergehende Dienste anbieten und andere benutzen.