CORBA-Konzept

Werbung
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
Herunterladen