Überblick über Middleware Heterogene verteilte Anwendungen

Werbung
Überblick über Middleware
?
Client
Middleware
Server
Middleware = womit Client und Server kommunizieren
Java-RMI :
CORBA :
SOAP :
...
Java
Java , C++ , ... (alle Sprachen)
XML & Java , XML & ...
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 1
Heterogene verteilte Anwendungen
Vorführung
Bezahlung
Verkauf
Auslieferung
Katalog 1
Katalog n
Versand
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 2
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
1
Common Object Request Broker
Architecture (CORBA)
CORBAAnwendung
Anwendungskommunikation
BOA/POA
Homogene Anwendungsebene
C / Java / ...
unter
Windows / ...
Implementierungsdetails
verborgen
CORBAAnwendung
BOA/POA
LapTop
Client / Server
C++ / Fortran /
Cobol / ... unter
Unix/...
Unix-Rechner,
Großrechner
Server / Client
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 3
Verteilte Anwendungen und
Dienste in Corba
Anwendung
Teil 1
(Server/Client)
Anwendung
Teil 2
(Client/Server)
Object Request Broker (ORB)
Namensdienst
(CosNaming)
Transaktionen
(OTS)
Security
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 4
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
2
Ziele und Konzepte von CORBA
Portabilität
- auf andere Plattformen
Interoperabilität
- Plattformübergreifende Programme
Objektorientierung
- wie OOP, jedoch verteilt
Verteilungstransparenz
- entfernte Objekte über ORB
Sprachtransparenz
- verschiedene Sprachen integrierbar
( C, C++, Cobol, Fortran, Java, ...)
Integration von Alt-Code
- trennt Interface und Implementierung
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 5
Begriffe aus CORBA
CORBA-Objekt
- besitzt eine Objektreferenz und ist dadurch
lokalisierbar vom ORB, besitzt Interface,
seine Methoden können aufgerufen werden
Request
- Aufruf einer Methode für ein Objektes incl.
(ggf.) Rückgabe des Ergebnisses
Client
- ruft Methode für ein Objekt auf
Server
- Programm, in dem das Objekt lebt,
das den Methodenaufruf erhält
Objektreferenz
- Nummer, die ein Objekt eindeutig identifiziert
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 6
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
3
Interface Definition Language (IDL)
module Bank {
interface Konto {
readonly attribute float kontostand;
float einzahlen(in float betrag);
...
}
}
• beschreibt Dienst / Interface ( Was wird geboten )
• aus IDL werden Skeletons und Stubs für verschiedene
Implementierungssprachen und Aufrufsprachen generiert
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 7
Grundidee: Aufrufe über Proxies
CORBA-Client
bzw. RMI-Client
CORBA-Server
Bzw. RMI- Server
Client-Aufruf:
... = Obj1.einzahlen(50);
Server-Anwendung:
Obj1
float einzahlen(...) {...}
Client-Stub:
... .einzahlen(50);
Server-Skeleton:
... .einzahlen(50);
Object Request Broker (ORB) bzw. RMI-Verbindung
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 8
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
4
Rückgabewerte über Proxies
CORBA-Client
CORBA-Server
Client-Aufruf:
... = Obj1.einzahlen(50);
Server-Anwendung:
Obj1
float einzahlen(...) {...}
Client-Stub:
... .einzahlen(50);
Server-Skeleton:
... .einzahlen(50);
Object Request Broker (ORB)
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 9
Objektreferenzen
• identifizieren Objekt eindeutig
• können null sein oder auf nicht-existente Objekte zeigen
• sind typisiert
• verbergen die Objekt-Lokation
• unterstützen spätes Binden
• können persistent sein
• sind interoperabel
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 10
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
5
Web-Anbindung von Altanwendungen
Web-Aufruf
Browser
Web-Server
(http)
HTML-Seite
Applet
Implementierungsdetails
verborgen
OA,Stub,...
Altanwendung
(Cobol, ...)
OA,Skeleton,...
Object Request Broker (ORB)
Client
CORBA-Server
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 11
Interoperabilität
• Jede CORBA-Implementierung unterstützt IIOP
( Internet Inter-ORB Protocol ) ,
d.h. sie kann IOR ( interoperable Objektreferenzen )
erzeugen
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 12
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
6
Interface Definition Language (IDL)
module Bank {
interface Konto {
readonly attribute long kontoNummer;
readonly attribute float kontostand;
float einzahlen(in float betrag);
...
}
...
}
• beschreibt Dienste / Interfaces ( Was wird geboten )
• aus IDL werden Skeletons und Stubs für verschiedene
Implementierungssprachen und Aufrufsprachen generiert
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 13
Java Binding (Abbildung IDL ⇒ Java)
package Bank;
// Java
public interface Konto {} extends KontoOperations
public interface KontoOperations
{
int kontoNummer ();
float kontostand ();
float abheben (float betrag); ...
}
module Bank {
IDL
interface Konto {
readonly attribute long kontoNummer;
readonly attribute float kontostand;
float einzahlen(in float betrag); ...
} ... }
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 14
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
7
idlj generiert Interfaces und Code
Bank.idl
interface
Konto {...}
benutzt
BankClient
einzahlen(50);
BankServer
... > idlj
interface Konto
class _KontoImplBase
interface Konto
class
_KontoStub
class KontoImpl
einzahlen(int b){...}
Object Request Broker (ORB)
CORBA-Client
CORBA-Server
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 15
Verteilte Dienste laufen lassen
3.
2.
BankClient
einzahlen(50);
BankServer
interface Konto
interface Konto
class
_KontoStub
class _KontoImplBase
class KontoImpl
einzahlen(int b){...}
Object Request Broker (ORB)
Namensdienst
( > tnameserv )
Suchen (resolve)
1.
Anmelden (bind)
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 16
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
8
Abbildung IDL ⇒ Java
IDL
Java
Bezeicher abc , new
Modul module M1 { ... } ;
Basistypen long , float, string
interface I { ... };
Bezeicher abc , _new
Paket
package M1;
int , float , java.lang.String
public interface IOperations{ }
public interface I extends
IOperations, ...
public int a() ;
public void a(int x) ; zusätzlich
public int f1(int x) throws Ex ;
public void f2(FloatHolder y) ;
readonly attribute long a ;
attribute long a ;
long f1(in long x) raises (Ex);
f2(inout float y) ;
Nutzung in Java:
FloatHolder h = new FloatHolder();
h . value = 77 ; f2( h ) ;
System.out.println( h . value ) ;
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 17
Namensauflösung
Serverobjekte haben Objektreferenzen (IOR)
Wie findet der Client ein Serverobjekt ?
• Client sucht Dienste über Namen
Namensauflösung (über initial service CosNaming)
heute Standard
• IOR über Fremdkanal zum Client schicken
(Webserver, Mail, ... )
erfordert mehrere Kommunikationswege
umständlich
• Bind Variante
Zugriff über CosNaming wird verborgen
( z.B. Visibroker )
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 18
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
9
Namensauflösung mit Namensdienst
Namensdienst :
initaler Service
Client erfährt IOR bei ORB-Initialisierung
Namensraum :
• hierarchisch (ähnlich Unix-Dateisystem)
• jeder Name wird gebunden und gesucht in einem Kontext (~Verzeichnis)
• Pfadaufbau zum Namen beginnt beim Root-Kontext
Server: Namen binden an (bind) und lösen von (resolve) Diensten
( Dienste (=Objekte) leben unabhängig von ihren Namen weiter )
Client: Über Namen mit Namensdienst Objektreferenz suchen
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 19
Dynamisches Einbinden von Code
• Interface Repository ( IR )
– speichert interfaces
– kann dynamisch neue Interfaces hnzufügen
• Dynamic Invocation Interface ( DII )
– erlaubt die Konstruktion von Requests für Interfaces,
die zur Compilezeit noch nicht bekannt sind
• Dynamic Skeleton Interface ( DSI )
– erlaubt die Behandlung von zur Compilezeit
unbekannten Operationen
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 20
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
10
Überblick: ORB-Schnittstellen
Server
Client
ORB
Interface
Dynamic
Statische
Invocation
Stubs
Interface
ORB
Interface
Dynamic
Statische
Skeleton
Skeletons
Interface
ORB Kern (Server)
ORB Kern (Client)
Netzwerk
(Internet-)Technologien für E-Business - Prof. Dr. Stefan Böttcher – Folie 21
Internet-Technologie für E-Business
Prof. Dr. Stefan Böttcher
11
Herunterladen