Common Object Request Broker Architecture
Die Common Object Request Broker Architecture kurz CORBA ist eine objektorientierte Middleware, die plattformübergreifende Protokolle und Dienste definiert und von der Object Management Group (OMG) entwickelt wird. CORBA ermöglicht das Erstellen verteilter Anwendungen in heterogenen Umgebungen.CORBA ist nicht an eine bestimmte Programmiersprache gebunden. Mittels einer Interface Definition Language (IDL) erstellt man eine formale Spezifikation der Klassen und Objekte sowie sämtlicher Parameter und Datentypen. Diese Schnittstellenbeschreibung wird dann in ein Objektmodell der verwendeten Programmiersprache umgesetzt. Die breiteste Unterstützung existiert für Java und C++, es existieren jedoch auch Implementierungen für viele weitere Sprachen.
Meist erzeugt ein so genannter IDL-Compiler Stubs und Skeletons, die mit der eigentlichen Programmlogik ergänzt werden. Der lokale Client ruft nun den Stub-Code auf, der die Daten an einen Object Request Broker (ORB) weitergibt. Dieser ORB reicht die Daten dann an den ORB des entfernten Objekts weiter. Der Aufruf des entfernten Objekts erfolgt mittels der Skeletons.
Die zweite Möglichkeit verwendet clientseitig das Dynamic Invocation Interface (DII), um ohne IDL auch unbekannte Objekte ansprechen zu können. Hierbei können die Methoden dynamisch abgefragt und aufgerufen werden. Serverseitig kann das Objekt mittels Dynamic Skeleton Interface (DSI) dynamisch auf Methodenaufrufe reagieren.
Die Kommunikation zweier ORBs untereinander erfolgte in CORBA 1.0 mittels eines herstellerspezifischen Protokolls. Damit auch ORBs unterschiedlicher Hersteller aufgerufen werden können, wurde mit CORBA 2.0 das General Inter-ORB Protocol (GIOP) festgelegt, das die Kommunikation für verschiedene Transportprotokolle definiert. Am weitesten verbreitet ist der Einsatz des GIOP über TCP/IP, das Internet Inter-ORB Protocol (IIOP).
Jedes CORBA-Objekt, auch Servant genannt, ist mittels einer eindeutigen Adresse ansprechbar, der Interoperable Object Reference (IOR).
Zusätzlich zum Protokoll definiert CORBA noch einige Dienste bzw. Services, die eine definierte IDL-Schnittstelle besitzen. Der wichtigste CORBA-Dienst ist der COS Naming Service, der Serverobjekten ermöglicht, mittels eines festgelegten Namens angesprochen zu werden. Der Namensdienst liefert dann die IOR zu einem registrierten Objektnamen.
Bekannte CORBA-Implementierungen: Orbix, Mico, ORBit, VisiBroker, OmniORB, TAO
Siehe auch
RMI, DCOM, SOAP, XML-RPC, Web Service, Grid-Computing
Weblinks