110 likes | 198 Vues
Kap. 4 Der Corba-Standard zur verteilten Objektverwaltung. Common Object Request Broker Architecture (aus OMG Homepage). 4.1 CORBA Middleware im Ueberblick.
E N D
Kap. 4 Der Corba-Standard zur verteilten Objektverwaltung Common Object Request Broker Architecture (aus OMG Homepage)
4.1 CORBA Middleware im Ueberblick • CORBA = Common Object Request Broker Architecture. Standard der OMG, grosses Konsortium, bestehend aus ca. 800 Software-Herstellern (z.B. Netscape, Oracle, IBM, Sun, HP, Dec), Link: www.omg.org • Object Request Broker (ORB) vermittelt zwischen Common Object Services= CORBAServices. Link:www.omg.org/corba/beginners.html ) • Ein Vergleich zwischen CORBA und DCOM findet sich unter http://www.bell-labs.com/~emerald/dcom_corba/Paper.html Client Objects Horizontal Facilities Vertical Facilities Server Objects Common Object Services Object Request Broker Operating System and Network Software
Bestandteile von CORBA • Auf Basis der Object Management Architecture (=OMA) • CORBA besteht aus • seiner Schnittstellen-Beschreibungssprache IDL und zugehörigen Sprachanbindungen • einer gemeinsamen Kommunikationsinfrastruktur,dem Object Request Broker (ORB), • einer Sammlung allgemeiner Dienste, der sog. Common Object Services (COS), sowie • der Spezifikation grösserer Komponenten, der sogenannten Horizontal and Vertical Common Facilities.
Object Management Architecture (OMA) Benutzerspezifische Objekte “Vertical market” spezifische Objekte Anwendungsobjekte Vertical Facilities Finan-cial E-Comm anwendungs- spezifisch Health Care Trans-port Product-ion Object Request Broker (ORB) User Interface System Mgmt Event Life Cycle Properties anwendungs- unabhängig Naming Persistence Transactions Query Information Mgmt Task Mgmt Common Object Services Horizontal Facilities Schnittstellen zu allgemeinen Diensten Schnittstellen zu horizontalen Frameworks
Interface Definition Language (IDL) • Sprache zur Definition von Objektschnittstellen (keine Implementierung) • unabhängig von einer konkreten Programmiersprache und Betriebssystem • 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, Smalltalk • definiert sozusagen das „Schema“ einer verteilten Anwendung • Objektschnittstellen • Attribute, Operationen, Exceptions (Ausnahmebehandlung) • Beispiel siehe Workshop
Object Request Broker (ORB) • 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 • 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 • Server • enthält die Objektimplementierung (Daten und Methodencode)
Funktionsprinzip des ORBs Client CIS->get_customer (“Ebner”) Request Object Request Broker Answer • Lokalisieren der Objektimplementierung • bereitet Server für Methodenausführung vor (startet Prozess, wenn nötig) • überträgt Methode und Argumente zum Server, überträgt Resultate zum Client • führt Datenkonversion zwischen verschiedenen Rechnerarchitekturen durch • bietet Exceptions Server get_customer (char* n) {...} CIS Proxy-Objekt Objekt-Skelett
Common Object Services ... • Erweitern und vervollständigen die ORB-Funktionalität • definieren grundlegende Systemdienste zur Objektverwaltung • sind anwendungsunabhängig • Naming Service • ermöglicht Objekte mit „sprechenden“ Namen zu binden/zu finden • Event Service • asynchrone Kommunikation zwischen Objekten mittels Ereignissen • Security Service • Authentifizierung, Zugriffskontrolle, sichere Kommunikation etc. • Transaction Service • Transaktionskoordinator für Transaktionen über verteilten Objekten • Persistent Object Service • um Objekte persistent in verschiedenen Servern zu speichern
… Common Object Services … • Query Service • deklarativer Zugriff auf Objekte über z.B. SQL-92 oder OQL • Trader Service • die „Yellow Pages“ eines CORBA Systems • Externalization Service • ermöglicht Objekte in einem Datenstrom zu speichern • Licensing Service • Mechanismen zur Kontrolle von Lizenzen durch Softwarehersteller • Time Service • Zeitsynchronisation in einem verteilten System • Concurrency Control Service • implementiert einen Lock Manager zum Sperren von Objekten • Relationship Service • erlaubt die Definition von Beziehungen zwischen Objekten • …
Common Facilities • oberste Abstraktionsebene • Horizontal common facilities(anwendungsunabhängig ) • User Interface • Information Management • System Management • Task Management • Beispiel: Distributed Document Component Facility (DDCF) • Vertical market facilities(anwendungsabhängige „Business“- Objekte) • CORBAfinance • CORBAmanufacturing • CORBAecommerce • CORBAtelecom • CORBAmed • CORBAtransport
Internet Inter-ORB Protocol (IIOP) • Das Internet Inter-ORB Protocol, kurz IIOP, definiert die Kommunikation zwischen verschiedenen ORBs • Transfer- und Nachrichtenformat: GIOP (General Inter-ORB Protocol) • Transportprotokoll: TCP/IP • Interoperable Object References (IOR) • Jeder CORBA (>= 2.0)-compliant ORB muss IIOP unterstützen “By 2001, most non-CORBA middleware productswill support CORBA IIOP access (0.8 probability)”[GartnerGroup, April ‘99]