Common Object Request Broker Architecture

Die OMG (Object Management Group) hat das Ziel Spezifikationen und Standards für objektorientierte Technologien zu entwickeln. Dabei soll die Portabilität, die Wiederverwendbarkeit und die Interoperabilität maximiert werden.

CORBA (Common Object Request Broker Architecture) ist ein Ansatz der OMG um Interoperabilität zwischen Anwendungen auf verschiedenen Rechnern in heterogenen, verteilten Umgebungen auf transparente Weise zu ermöglichen. Der Ansatz beinhaltet zwei wesentliche Komponenten, das Objektmodell und eine Architektur.

Das CORBA-Modell konkretisiert das in der Object Management Architecture spezifizierte Objektmodell.


Objektmodell

Das Objektmodell legt fest, wie Objekte zu konzeptualisieren sind und welche Eigenschaften ihre Implementierung aufweisen muss. Ein Objekt ist dabei eine identifizierbare Entität, die ihre Eigenschaften verkapselt. Objekte können als Client und Server auftreten.

Ein Interface ist die Beschreibung der Signaturen aller Operationen, die ein Objekt anbietet (Aussensicht). Gleichartige Interfaces werden zu Interfacetypen zusammengefasst. Interfaces werden programmiersprachenunabhängig beschrieben durch die Interface Definition Language (IDL).

Es können Untertypen gebildet werden (Subtyping), bei denen die Implementierung nicht geändert wird, es ist aber auch Vererbung möglich (Inheritance). Mehrfachvererbung ist möglich, es ist aber kein Mechanismus zur Auflösung von Namenskonflikten vorhanden.
 

Architektur

Die Architektur (OMA - Object Management Architecture) legt das Zusammenwirken diverser Komponenten eines verteilten Systems fest. Komponenten der Architektur sind der Object Request Broker, Application Object, Common Facilities und Object Services.

Object Request Broker. Der ORB stellt den Basismechanismus für die Kommunikation zwischen Objekten in einer verteilten, heterogenen Architektur dar. Er realisiert als Nachrichtenverteiler die Transparenz der Verteilung und Migration, so dass Objekte Aufrufe an andere eventuell verteilte Objekte absenden und Antworten empfangen können. Der ORB hat die Aufgabe, die Zielobjekte der an ihn übergebenen Aufrufe zu lokalisieren und die Aufrufe an diese weiterzuleiten. Objekte können z.B. über Objektreferenzen lokalisiert werden. Der ORB kann als Routine im Client, als Netzwerk-ORB, als Betriebssystemfunktion oder als Bibliothek implementiert werden.

Methodenaufrufe können statisch oder dynamisch erfolgen. Ein statischen Aufruf erfolgt über einen so-genannten Stub, der ein Stellverteterobjekt des entfernten Objekts ist. Der Stub nimmt die Nachrichten entgegen und reicht sie an den ORB weiter. Bei dynamischen Aufrufen ermittelt der ORB erst zur Laufzeit ein zu dem ausgewählten Interface passendes Objekt und leitet den Aufruf an dieses weiter. Der Client erhält ein Interface durch den Name Service des ORB. Der Name Service operiert auf dem Interface Repository, das die in der IDL spezifizierten Schnittstellen der Objekte verwaltet.

Das Implementierung Repository enthält Informationen über die Implementierungen der Objekte, die als Server-Objekte beim ORB registriert sind. Die Schnittstelle zwischen ORB und den Server-Objekten wird durch Object Adapter gebildet.

Object Services. Die Object Services bieten Basisdienste, die vom ORB benötigt werden, also zum Beispiel eindeutige Namenszuweisung, Sicherheitsdienste, Objekterzeugung und -destruktion.

Common Facilities. Common Facilities sind allgemeine Dienste, die von vielen Anwendungen benötigt werden (drucken, Hilfe-System, GUI).

Application Objects. Application Object bilden die Schnittstelle, die die anwendungsspezifischen Funktionen zur Verfügung stellen.


Bewertung

CORBA ermöglicht die Kommunikation zwischen Objekten über Sprach- und Rechnergrenzen hinweg. Es ermöglicht so unternehmensübergreifende Informationsverbunde und Electronic Commerce.

CORBA unterstützt die Vererbung von Schnittstellen, nicht jedoch die Vererbung der Implementierungen.


Links

http://www.corba.org/