CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard Object Request Broker Datenaustausch Interface Definition Language Dienste CORBA-Konzept Historie 1989 Dez 1990 Anfang 1991 Dez 1994 1994 - 1996 1995 Sept 1997 1999 gegründet mit 8 Mitgliedern, jetzt ca. 600 CORBA 1.0: Architektur, Kommunikation CORBA 1.1: Interface Definition Language (IDL) CORBA 2.0: Internet Inter-ORB Protocol (IIOP) CORBA Services: Grunddienste CORBA Facilities: anwendungsspezifische Dienste CORBA 2.1: Portable Object Adapter (POA) CORBA 3.0: weitere Dienste CORBA-Konzept Architektur Objekt Objekt Objekt ORB ORB IDL Schnittstellen der Objekte ORB Kommunikation zw. Objekten DB Objekt ORB Objekte erreichbar über IORs (Interoperable Object References) Stubs für die Kommunikation TCP/IP TCP/IP Netzwerk Netzwerk Kommunikation IIOP basierend auf TCP/IP Services Naming Service Event Service Query Service Externalization Service Persistent Obj. Service Time Service Security Service ... CORBA-Konzept Alternativen DCOM Java RMI CORBA-entsprechende Funktionalität, ab Windows 98 integriert, hauptsächlich WindowsPlattformen, CORBA-DCOM-Bridges RPC RPC CORBA-ähnliche Architektur, Kommunikation nur zw. Java-Anwendungen funktionsorientierte Schnittstelle Sockets hardwarenah, sehr schnell, zu wenig abstrakt für komplexe Daten RPC RPC Realisierung mit Visibroker Java 4.1 Komponenten Smart Agent realisiert transparenten, entfernten Objektaufruf im LAN verteilter Directory-Service Å Lastverteilung kann verschiedene LANs verbinden - entweder kennt er IP-Adresse des anderen Smart-Agents - oder läuft auf Multihomed-Host (mehrere IP-Adressen) Gatekeeper Gateway zwischen Clients/Applets und Servern im WAN Kommunikation trotz Sicherheitsbeschränkungen (Web-Browser, Firewall) Realisierung mit Visibroker Java 4.1 Architektur Intranet Client Java Applet Webserver Gatekeeper Smart Agent Firewall Internet Intranet Internet Client Java Applet Auf allen Rechnern läuft die Visibroker Laufzeitumgebung Java Objekt Smart Agent Naming Service Realisierung mit Visibroker Java 4.1 Komponenten (2) Location Service Suche nach Objekten mit speziellen Attributen nicht CORBA-konform Naming Service logische Namen für Objekte vergeben mit Hierarchisierung auch mehrere Namen für ein Objekt möglich Clustering: ein Name bezeichnet eine Gruppe von Objekten (nicht CORBA-konform) Event Service Entkopplung der Kommunikation mittels Ereignissen Realisierung mit Visibroker Java 4.1 Komponenten (3) Object Activation Daemon startet Server-Objekte bei Bedarf muß auf gleichem Rechner wie Server-Objekt laufen arbeitet mit Smart Agents zusammen benutzt eigenes Implementation-Repository Interface Repository globales Verzeichnis aller Objekttypen Inhalt der IDL-Dateien für Laufzeitzugriff organisiert IDL kann „hineinkompiliert“ werden Realisierung mit Visibroker Java 4.1 Komponenten (4) Dynamic Invocation Interface dynamischer Methodenaufruf in Objekt-Schnittstelle sehr flexibel, aber langsamer und hoher Programmieraufwand Interceptors, Object Wrappers Objekte, die benachrichtigt werden können, wenn: - Methoden aufgerufen werden - Parameter kodiert / dekodiert werden Implementieren von Sicherheit, Monitoring, Optimierung von Ergebnisberechnungen, ... Realisierung mit Visibroker Java 4.1 Allgemeines Vorgehen Objekte ObjekteininIDL IDLdefinieren definieren IDL IDLkompilieren kompilieren Client Clientschreiben schreiben Server Serverschreiben schreiben JAVA-Compiler JAVA-Compiler JAVA-Compiler JAVA-Compiler Client Clientstarten starten Server Serverstarten starten Details zur Chat-Anwendung Use-Cases Details zur Chat-Anwendung Klassendiagramm Details zur Chat-Anwendung Klassendiagramm Details zur Chat-Anwendung IDL(1) Details zur Chat-Anwendung IDL(2) Details zur Chat-Anwendung IDL(3) Details zur Chat-Anwendung Erzeugte Klassen Für jeden Objekttyp: 2 Interfaces, die die Operationen beinhalten Stub: Stellvertreter für einen Objekttyp POA-Klasse: - Aufrufhandler für Aufrufe vom Stub - Basis für Objektimplementation Hilfsklassen zum Kodieren / Dekodieren von Typen Details zur Chat-Anwendung Serverimplementation Details zur Chat-Anwendung Verteilung der Komponenten Quellen www.inprise.com Visibroker for Java 4.1 Programmer‘s Guide www.omg.org CORBA 2.4 Specification IDL To Java Language Mapping Specification Jeremy Rosenberger: CORBA in 14 Tagen