CORBA Systemprogrammierung WS 2006-2007
Teilnehmer: Bahareh Akherattalab Babak Akherattalab
Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA Worum geht es bei CORBA? CORBA Architecture
ORB (Object Request Broker) IIOP (Internet Inter ORB Protocol) IDL (Interface Definition Language) Interface-Spezifikation CORBA - Services
Softwareentwicklung mit CORBA Unterschied zwischen CORBA und RMI Vorteile & Nachteile von CORBA- Anwendungen Entwicklung einer CORBA-Anwendung Fazit
Verteilte Systeme Definition: Es ist ein Rechensystem von einer Anzahl von Prozessoren. Sie verfügen über keinen gemeinsamen Speicher. Daher kommunizieren über Nachrichten miteinander.
Vergleich zwischen lokale und verteilte Systeme Lokal Verteilt Kommunikation Fehler Gleich z. Objektzugriff Sicherheit
Verteilte Anwendungen Programm ist verteilt auf mehrere Rechner und/oder Prozesse. Kommunikation auf Quellcode-Ebene anstatt auf Datei-Ebene.
Verteilte Anwendungen Verteilte Anwendungen bedeutet: Daten verteilt Berechnungen verteilt Vorteil: Programmierung der Kommunikation entfällt!
CORBA CORBA (Common Object Request Broker Architecture) Eine objektorientiete Middleware CORBA ist Industriestandard für verteilte objektorientierte Anwendungen in heterogenen Umgebungen.
CORBA Die Spezifikation CORBA wird durch das Object Management Group (OMG) festgelegt. Das entstand im Jahr 1989. Erste Version 1991: CORBA 1.1 1996: CORBA 2.0 2002: CORBA 3.0 Unabhängigkeit von Betriebssystem und Programmiersprache.
Worum geht es bei CORBA Verteilte Anwendungen: Eine Anwendung, deren Bestandteile sich über mehrere Prozesse verteilen. Objektorientierte Anwendung: Bei der Anwendung- Entwicklung werden Objekte eingesetzt.
Heterogene Anwendung: Eine Anwendung,deren Bestandteile sich auf Computern befinden, deren Hardware oder Betriebsystem oder Programmier- Sprachen sich unterscheiden kann.
CORBA - Architektur ORB (Object Request Broker) IIOP (Internet Inter ORB Protocol) IDL (Interface Definition Language)
CORBA - Architektur
ORB (Object Request Broker) ORB managt die Kommuniktion zwischen Objekten. Aufgaben sind: Objektreferenzen auflösen. Mit einem entfernten ORB in Kontakt treten.
Formatübertragung (Marshaling) Methodenaufrufe verschicken (vom Client zum Server). Rückgabewerte verschicken (vom Server zum Client). Der OA (Object Adapter) bildet die Schicht zwischen Anwendung und ORB.
Die Inter ORB Kommunikation
IIOP (Internet Inter ORB Protocol) Standardprotokoll zur ORB-Kommunikation Speziell auf TCP/IP ausgerichtete Implementierung des GIOP(General Inter ORB Protocol). ORB-Kommunikation ist für Programmierer transparent
IDL (Interface Definition Language) Nur zur Definition von Schnittstellen Der IDL - Compiler erstellt aus einer Schnittstellendefinition immer ein Server - Skeleton und einen Client - Stub. Keine Konstrukte für Funktionalität
IDL wird auf funktionale Sprachen gemappt. z.b. C/C++,Java,Cobol,Ada,Smalltalk,Lisp...) IDL definiert Basistypen wie Integer, Long, Boolean, String,...
Case Sensitive Kommentare wie in Java und C++ C-präpozessor für Makro-Definition und bedingte Kompilierung Der Modifizierer const Der Aufzählungstyp enum Der Strukturtyp struct und union typedef für benutzerdefinierten Typnamen Container-Typen array, sequence
Interface-Spezifikation Interface Name { //Schnittstelle-Definition } ;
Interface-Spezifikation Interface mit Vererbung interface Name_abgeleitet : Name_VererbtesInterface Name_VererbtesInterface { // Schnittstellen Definition };
Der IDL - Typ Interface Vergleichbar mit einem Java-Interface Enthält Attribute und Methoden (ohne -Implementation). Unterstützt Exceptions.
Allgemeine Attributdeklaration: attribute Type membername; // Read/Write readonly attribute string member2;//read
Operations-Deklaration short methode1 (in float var1); void methode2 (out short var2, inout double var3); void methode3 (in var1);
Jedes Modul sollte mit möglichst wenigen andern Modulen kommunizieren(loose coupling). Beschränkte Gesamtzahl der Kommunikations-Kanäle bzw. Modulen: Anzahl der Operationen (in interfaces) in Grenzen halten.
Die Schnittstelle wird einmal definiert und ändert während des ganzen Lebenszyklus des Systems nie mehr. Client und Server müssen beide mit den neuen IDL-Definitionen neu erstellt werden.
CORBA-Services Standarddienste zur Vereinfachung der Standarddienste zur Vereinfachung der Entwicklung komplexer Anwendungen
Softwareentwicklung mit CORBA OOAD (wie auch bei nicht-verteilten Anw.) Def. der Client- und Server-Schnittst. in IDL Wahl eines Impl.ansatzes (Vererbung oder Delegation)
Generieren von Client - Stubs und Server- Skeletons mit IDL- Compiler Implementieren dieser Schnittstellen Kompilieren und Ausführen
Unterschied zwischen CORBA und RMI Im Gegensatz zu CORBA, ist RMI nur für JAVA gedacht =>bessere Integration in die Programmierspr. Ziel: : möglichst geringer Unterschied zwischen lokalen und verteilten Anwendungen
Annäherung zwischen RMI & CORBA z.b. CORBA: Integration von JAVA Enterprise Beans in CORBA z.b. RMI: Verwendung des IIOP-Protokolls aus CORBA
Vorteile von CORBA-Anwendungen Eine CORBA-Spezifikation: ist sprach- und plattformunabhängig. Sie bietet bereits Standardfunktionen zur Kommunikation an. Es ist sehr flexibel und erweiterbar. Einmal erstellte Schnittstellen lassen sich auch in anderen Anwendungen modular wieder verwenden.
CORBA hat sich seit der ersten Spezifikation zu einer weit verwendeten Verteilungsplattform entwickelt. zahlreiche Unternehmen, setzen diese Technologie für ihre Anwendungen ein.
Nachteile von CORBA-Anwendungen CORBA Konzept ist sehr komplex =>,wodurch die Implementierungen aufwendig und damit teuer werden können. Inkompatibilität bei ORB-Kern unterschiedlicher Hersteller
Es gibt keine feste Implementierung von CORBA in das Betriebssystem. =>Überhaupt ist festzustellen, dass CORBA Implementierungen vorrangig von kleineren Softwareunternehmen entwickelt werden.
Fazit: CORBA wird seit dem Jahr 2004 wieder vermehrt eingesetzt. was vor allem daran liegt, dass mittlerweile für die netzwerk- und prozessorintensive CORBA-Struktur genug Rechenleistung zur Verfügung steht.
ENDE!