3.2 Der CORBA-Standard Common Object Request Broker Architecture (Bildquelle: OMG) Kapitel 3.2: Vorlesung CORBA 1
CORBA Middleware im Ueberblick G CORBA = Common Object Request Broker Architecture. Standard der OMG, grosses Konsortium, bestehend aus ca. 800 Software- Herstellern (z.b. Sun, IBM, HP, Oracle, Microsoft), Link: www.omg.org G Object Request Broker (ORB) vermittelt zwischen Common Object Services= CORBAServices. Link: http://www.omg.org/gettingstarted/corbafaq.htm Client Objects Horizontal Facilities Vertical Facilities Common Object Services Server Objects Object Request Broker Betriebssystem und Netzwerk-Hardware Kapitel 3.2: Vorlesung CORBA 2
Bestandteile von CORBA G CORBA besteht aus seiner Schnittstellen-Beschreibungssprache IDL und zugehörigen Sprachanbindungen (z.b. C / C++, Java, SmallTalk, Ada, Lisp, Cobol) einer gemeinsamen Kommunikationsinfrastruktur, dem Object Request Broker (ORB), einem Interoperabilitätsprotokoll für verschiedene ORBs, das Internet Inter-ORB Protocol (IIOP), der Spezifikation allgemeiner Dienste, der sogenannten Common Object Services (COS), und der Common Facilities and Domains. Kapitel 3.2: Vorlesung CORBA 3
Interface Definition Language (IDL) G Sprache zur Definition von Objektschnittstellen (keine Implementierung) unabhängig von einer konkreten Programmiersprache / System angelehnt an die Syntax von C++ zusätzliche Konstrukte: Exceptions, Strings, Sequence, ohne: Pointer, Templates, alle Kontrollstrukturen, Abbildung durch einen Pre-Compiler in eine Programmiersprache, welche für die Implementierung verwendet wird Ada, C, C++, COBOL, Java, Lisp oder Smalltalk definiert sozusagen das Schema einer verteilten Anwendung G Objektschnittstellen Attribute, Operationen, Exceptions (Ausnahmebehandlung) Kapitel 3.2: Vorlesung CORBA 4
IDL Beispiel // naming service constants const string OHOContextName = "OhO_ss2001"; module Bank { typedef long AccountID; typedef float Money; Interfaces - Attribute - Operationen - Exceptions TypeDefs, Konstanten... interface Account { readonly attribute AccountID number; // account id readonly attribute Money balance; // amount of money in account // thrown if not enough money on account to withdraw exception InsufficientBalance {}; }; // public methods to modify an account void Credit ( in Money amount ); void Debit ( in Money amount ) raises (InsufficientBalance); }; Kapitel 3.2: Vorlesung CORBA 5
Object Request Broker (ORB) G Rückgrat von CORBA: der Kommunikationskern erlaubt es Objekten, über Prozess- und Netzwerkgrenzen hinweg miteinander zu kommunizieren (Objektbus) bietet den Basismechanismus, um Methoden auf entfernten Objekten auszuführen Broker, der Methodenaufrufe eines Clients an den Server mit der richtigen Implementierung weiterleitet und eventuell erst aufstartet Marshalling / Demarshalling G Client enthält nur Proxy- (Stellvertreter-) Objekte und kennt deren Schnittstelle (wg. IDL) kennt weder Ort noch Sprache der Implementierung sendet Auftrag (Zielobjekt, Operation, Parameter, ) an den Broker G Server enthält die Objektimplementierung (Daten und Methodencode) Kapitel 3.2: Vorlesung CORBA 6
Funktionsprinzip des ORBs G Lokalisieren der Objektimplementierung G bereitet Server für Methodenausführung vor (startet Prozess, wenn nötig) G überträgt Methode und Argumente zum Server / Resultate zum Client G führt Datenkonversion zwischen verschiedenen Rechnerarchitekturen durch G bietet Exceptions als Fehlermeldungsmechanismus Client Finance->Transfer (11,42, 0.05) Server Transfer (Account a1) {...} Finance Proxy-Objekt Object Request Broker Request Answer Objekt-Skelett Kapitel 3.2: Vorlesung CORBA 7
Internet Inter-ORB Protocol (IIOP) G Internet Inter-ORB Protocol definiert die Kommunikation zwischen verschiedenen ORBs Transfer- und Nachrichtenformat: GIOP Interoperable Object References (IOR) Transportprotokoll: TCP/IP Client Objekt 1 Client Objekt 2 ORB 1 IIOP ORB 2 Jeder CORBA (>= 2.0)-compliant ORB muss IIOP unterstützen Kapitel 3.2: Vorlesung CORBA 8
Common Object Services... G Erweitern und vervollständigen die ORB-Funktionalität definieren grundlegende Dienste zur Objektverwaltung sind anwendungsunabhängig G Naming Service ermöglicht Objekte mit sprechenden Namen zu binden/zu finden G Event Service asynchrone Kommunikation zwischen Objekten mittels Ereignissen G Security Service Authentifizierung, Zugriffskontrolle, sichere Kommunikation etc. G Transaction Service Transaktionskoordinator für Transaktionen über verteilten Objekten G Persistent Object Service um Objekte persistent in verschiedenen Servern zu speichern Kapitel 3.2: Vorlesung CORBA 9
Common Object Services G Query Service deklarativer Zugriff auf Objekte über z.b. SQL-92 oder OQL G Trader Service die Yellow Pages eines CORBA Systems G Externalization Service ermöglicht Objekte in einem Datenstrom zu speichern G Licensing Service Mechanismen zur Kontrolle von Lizenzen durch Softwarehersteller G Time Service Zeitsynchronisation in einem verteilten System G Concurrency Control Service implementiert einen Lock Manager zum Sperren von Objekten G Kapitel 3.2: Vorlesung CORBA 10
Common Facilities G oberste Abstraktionsebene Horizontal common facilities (anwendungsunabhängig ) Internationalization & Time Mobile Agent Facility... (User Interface, System Management, etc.) Vertical market facilities CORBA Domain Technologies (anwendungsabhängige Business - Objekte) CORBAfinance CORBAmanufacturing CORBAecommerce CORBAtelecom CORBAmed CORBAtransport Kapitel 3.2: Vorlesung CORBA 11