Middleware im Vergleich

Werbung
1
Middleware im Vergleich
Prof. Dr. Alexander Schill
Technische Universität Dresden
Lehrstuhl Rechnernetze
http://www.rn.inf.tu-dresden.de
[email protected]
- Einführung und Beispiel
- Java-Technologien
- Web Application Server
- CORBA und Microsoft COM+
- Vergleich und Fazit
Anwendungsbeispiel
2
Client
(z.B. Kasse)
Client
(z.B. Geldautomat)
Server
(z.B. Kontenserver)
Server
(z.B. Journal/
Überwachung)
Anforderungen:
- Dezentrale Systemlösungen
Client
- Internet/Intranet-Integration
(z.B. Home- Sehr große Zahl von Clients/Terminals
zugang)
- Sicherheitskonzepte
- Transaktionsverarbeitung
- Heterogenität der Systeme
Mehrstufige Architekturen
3
Client
(z.B. Kasse)
Server
(z.B. Kontenserver)
Client
(z.B. Geldautomat)
Anwendungslogik
Benutzerschnittstelle, ggf.
Vorverarbeitung
(thin client vs.
fat client)
Client
(z.B. Homezugang)
Server
(z.B. Journal/
Überwachung)
Datenverwaltung
3-tier: dreistufige Struktur; bei komplexen
Anwendungen zu bevorzugen
2-tier: zweistufige Struktur (Benutzerschnittstelle
Host); einfacher, aber
weniger flexibel
4
Middleware und Client/Server: Einordnung
Client
(z.B. Kasse)
Middleware
(z.B. Java RMI, CORBA,
COM+)
Anwendungsinteraktion
Objektinteraktion
Server
(z.B. Kontenserver)
Middleware
Transportorientierte
Schichten
(z.B. TCP/IP, SNA)
Transportorientierte
Schichten
Phys. Netzwerk
(z.B. Fast Ethernet,
Token Ring, ATM)
Phys. Netzwerk
Def. von Middleware: “Software für verteilte Anwendungen zur Überbrückung der
Heterogenität unterschiedlicher Systeme und Netze.”
5
Middleware: Basistechnologien
Java (Sun u.a.):
- Programmiersprache, Applets
- Remote Method Invocation (RMI)
- Enterprise JavaBeans (EJB): Komponenten
CORBA (Common Object Request Broker Architecture):
- Objektorientiert, sprachunabhängig
- Standard der Object Management Group (OMG)
COM+ (Component Object Model):
- Objektorientiert, relativ proprietär
- Entwicklung von Microsoft
Weitere Ansätze:
- Message Queuing
- SOAP (Simple Object Access Protocol)
- Transaktionsmonitore, Web Application Server
6
Middleware: Gesamteinordnung
Web Application
Server /
Enterprise Application Integration
Integrität
Transaktionsmonitore
Message Queuing
(z.B. MQ Series)
Client/Server, Remote
Procedure Call (RPC)
(z.B. DCE - Distributed
Computing Environment)
KomponentenFrameworks
Object Transaction (CORBA, Enterprise
JavaBeans, COM+)
Monitor
CORBA-/ RMI-/
COM+-BasisKommunikation
Flexibilität
Nutzbarkeit
durch
Anwendungsentwickler
7
Java Enterprise Edition
•
•
•
•
•
•
EJB (Enterprise JavaBeans)
CORBA (Runtime)
JDBC (Java Database Connectivity)
JSP (Java Server Pages), Servlet API
JMS (Java Messaging Service)
Transaktionen (JTA, JTS - Java Transaction Architecture /
Service)
• XML (Deployment Desriptoren)
• JNDI (Java Naming and Directory Service)
• J2EE Connector (Schnittstellen für Legacy-Integration)
8
Java RMI: Grundprinzip
Client
(z.B. Kasse oder
Info - Terminal)
1. HTTP-Zugriff auf
WWW-Server
des
g
n
u
g
a
rtr
2. Übe Applet
Java
Server (auch WWW)
(z.B. Kontenserver)
<name>
4. Naming Lookup
3. Erzeugen eines
Remote Object
5. Entfernter
Objektaufruf
Remote
Object
Registry
(einfacher
Directory
Service)
Remote Object
(entfernt aufrufbar)
• Interaktion mit WWW-Server, dynamische Anfragen etc.
möglich (z.B.für Investment - Informationen)
• Auch Rückaufrufe des Servers bei Client-Objekten (z.B. für
Parametereingaben)
9
JDBC (Java Database Connectivity)
• Programmierschnittstelle zum Zugriff auf relationale
Datenbanken
• In Anlehnung an ODBC (Open Database Connectivity)
• Zahlreiche Treiber für verschiedene Datenbanken (z.B.
Oracle, Sybase, DB2, SQL Server etc.)
• Auch als JDBC/ODBC-Bridge realisiert
• Realisiert jedoch nur direkte Datenbankzugriffe;
weitergehende verteilte Transaktionslogik in heterogenen
Systemen erfordert Transaction Services /
Transaktionsmonitore, z.B. auf CORBA-Basis
10
Komponententechnologien unter Java
• Traditionelle objektorientierte Sprachen (Smalltalk, C++,
aber auch Java) ermöglichen Wiederverwendung nur in
begrenztem Maße (abhängig von Sprachkonzepten,
Spezifika der Oberklassen etc.)
• Daher: Verbesserte Kapselungstechniken auf Basis von
Komponenten:
– Schnittstelle(n)
– Eigenschaften
– Ereignisse
• Konkrete Ansätze unter Java:
– JavaBeans (Client)
– Enterprise JavaBeans (Server)
• Verschmelzen mit Konzepten der CORBA Components
• Alternative: COM+-Komponenten
Entwicklungsunterstützung: Beispiel
11
12
Enterprise JavaBeans
(Verteilte) Transaktionen
Java RMI
Client 1
EJB
EJB
Transaktionsmonitor/
DBMS
EJB Container
Client 2
EJB-Server
Ziel: Auslagerung von Verarbeitungslogik auf den Server;
implizite Transaktionen
13
Transaktionssteuerung und Sicherheitsaspekte
Sehr einfache Mechanismen auf Attribut-Basis:
TX_REQUIRED: Transaktion obligatorisch; ggf. implizites Starten einer
neuen Transaktion (falls noch keine Transaktion aktiv)
TX_REQUIRES_NEW: Transaktion obligatorisch, wird stets neu gestartet bei
Methodenaufruf der Bean (ggf. temporäre Suspendierung einer
vorhandenen Transaktion)
TX_MANDATORY: Transaktion obligatorisch, muß bereits zuvor existieren
(ansonsten Ausnahmemeldung)
Ähnliche Konzepte für Sicherheitsfragen (Zugriffskontrolle):
<security-role> <role-name>Administrator</role-name> </security-role>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>BankBean</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
14
Web-Application-Server
• Schnittstellen-Server zwischen Web/Java-Client und
Diensten der Unternehmens-DV („middle-tier“)
• Aufgaben:
– Daten- und Aufrufanpassung
– Legacy-Integration; Transaktionen
– Zugriffsschutz
– Lastverteilung
Architekturprinzip
15
Java RMI, Internet Inter-ORB Protocol, DCOM-Protokoll
proprietäre TransaktionsMonitore
Protokolle
HTMLClient
HTTP
HTMLHTMLHTMLHTMLDokumente
HTMLDokumente
Dokumente
Dokumente
Innere Firewall
JavaClient
Äußere Firewall
Web-Server
BetriebsApplication- proprietäre wirtschaftlicheProtokolle
Server
Software
proprietäre MainframeProtokolle Anwendungen
HTMLCGIHTMLCGIHTMLDokumente
Skripte
Dokumente
Skripte
Dokumente
(optional)
(optional)
Stateful-Verbindung
Stateless-Verbindung
Datenbanken
16
Entwicklungsprozess
Generierung
Anforderungen
UML (Unified
Modeling Language)
Anwender
Entwurf / Modellierung
Instanziierung
CORBA /
EJB / COM+
Komponentenentwicklung
Laufzeit / Komponentennutzung
CORBA,
EJB Container,
COM+
Installation /
Deployment
Web Application Server
17
Wesentliche Funktionalität:
• Entwicklung und Verteilung von Java Anwendungen (“Three-Tier”)
• Skalierbarkeit (>1000 Server, >10000 Clients): Multithreading,
Connection-Reuse etc.
• Komponentenmodell (Enterprise JavaBeans, COM+ etc.)
• Transaktionsunterstützung
• Sicherheit (Authentisierung, Zugriffskontrolle)
Wünschenswerte Eigenschaften:
• Integration von Entwicklungsumgebungen (z.B. IBM Visual Age,
Inprise JBuilder, BEA / Symantec Visual Cafe, MS Visual J++)
• Zugang zu verbreiteten Datenbanken (Oracle, MS SQL Server,
Sybase, Informix, DB2)
• Unterstützung von Web-Portal-Diensten
• Unterstützung aktueller Java APIs (JDBC, JNDI, JMS etc.)
• Replikation und Lastverteilung
Enterprise Application Integration (EAI)
Ziel:
• Integration unterschiedlicher Anwendungen (Backend)
• Beispiele:
- Enterprise Resource Planning (ERP)
- Customer Relationship Management (CRM)
- Supply Chain Management (SCM)
Technologische Basis:
• Middleware und Web Application Server
(z.B. von IBM, BEA, Forte etc.)
• Zusätzliche produktspezifische Adapter
Lösungsansätze:
• Datenintegration
• Schnittstellen-basierte Integration (API-Integration)
• Workflow- / Prozess-orientierte Integration (bei komplexen
Abläufen über mehr als ca. 5 Anwendungen)
18
19
Web-Application-Server: Produktbeispiele
•
•
•
•
•
•
•
•
•
BEA Weblogic
IBM Websphere
IONA Orbix 2000 / I-Portal-Suite
Inprise Application Server
Microsoft MTS
SAG Bolero
Oracle Application Server (iAS)
Sybase Enterprise Application Server
Sun: Forte Fusion Application Server
20
CORBA
Common Object Request Broker Architecture (CORBA)
- Standardisiert durch OMG (Object Management Group) als Teil
der OMA (Object Management Architecture)
- Objektorientierter Ansatz, Vererbung, Wiederverwendbarkeit
- Language Mapping unter anderem für C, C++, Java, Smalltalk,
ADA, Cobol
- Durch Java Möglichkeit der Anbindung von Intranet / Internet
- Komponentenmodell (CORBA Components);
EJB ist Teilmenge hiervon; Möglichkeiten zur Abbildung
21
Object Management Architecture (OMA)
Application Objects
CORBA Facilities
Object Request Broker (ORB)
CORBA Services
22
Anwendungsbeispiel
Anfrage
Naming
Service
Anmeldung
ORB-Aufruf
Client
(z.B. Kasse)
Server
(z.B. Kontenserver)
Server
(z.B. Journal/
Überwachung)
Transaction Service
Security
Service
23
Component Object Model COM+
• Middleware - Lösungen von Microsoft, entstanden aus
OLE/COM und DCOM (Distributed COM),
herstellerabhängig
• Integriert in Windows 2000 (Referenzimplementierung),
Portierungen älterer DCOM-Lösungen auf UnixPlattformen, OS/390, AS/400 etc.
• Schnittstellenbeschreibung: MIDL; Abbildung auf Java
(derzeit gemäss Visual J++), Visual C++, Visual Basic etc.
• Höhere Services mit COM+ integriert (Transactions,
Security, Queued Components, Event Service, In-Memory
Database, Load Balancing, Object Pooling/Caching )
• Schnittstellen zu CORBA vorhanden
24
COM+ - Architektur
Client
COM+
Runtime
Sicherheitsmechanismen
RPC
COM+
Runtime
Sicherheitsmechanismen
TCP/IP
Objekt
RPC
TCP/IP
COM+-Netzprotokoll
Sprachunterstützung u.a. für Visual J++, Visual C++, Visual Basic,
auf nicht-Microsoft-Plattformen jedoch mit Einschränkungen
25
Sicherheitsmechanismen
Client
1. Nutzername
COM+
runtime
ACL für
Objekt
Objekt
4. Aufruf
ACL-Prüfung
COM+
runtime
3.
Sicherheitsmanager
2. Authentisierung
Erweitertes Verzeichnis mit
Nutzer-Credentials
Basierend auf Kerberos
Weiterentwicklung: Distributed Security (zusätzlich X.509
Public Keys)
26
Transaktionen
• Basierend auf Microsoft Transaction Server
(Transaktionsmonitor)
• Datenbankanbindung innerhalb Microsoft-Umgebungen
(z.B. SQL Server, MS Message Queuing)
• Unterstützung außerdem für Oracle, IBM DB2 (OS/390,
AS/400, AIX, Windows 2000, OS/2), Informix, Sybase
• Automatische Aktivierung / Deaktivierung von ServerObjekten innerhalb von Transaktionen
-> Ressourcenoptimierung
27
Legacy-Integration
Windows 2000
Client
MTS
Proxy
COMTI (COM
Transaction Interface)
Component
Builder
SNA
Server
COMTI
Admin
Tool
OS/390
- CICS
- IMS
28
COM+: Bewertung
Vorteile:
• Sehr komfortable Anwendungsentwicklung unter
Microsoft-Plattformen; Dienste sehr gut integriert
• Umfangreiche Unterstützung grafischer Benutzeroberflächen
• Vergleichsweise preisgünstig
Nachteile:
• Begrenzte Verfügbarkeit für andere Plattformen;
Clients nur für Windows
• Teilweise Sprachabhängigkeit, Herstellerabhängigkeit
• Begrenzte Skalierbarkeit
Empfehlung: Nutzung für kleinere Microsoft-Umgebungen, für
größere, stark heterogene Umgebungen erscheint dagegen
CORBA und EJB besser geeignet
Vergleich: CORBA / Java RMI / COM+
CORBA
Sprachunterstützung
Beliebig (v.a. C++,
Java, COBOL)
Betriebssystemunterstützung
LegacyIntegration
Alle wesentlichen
Systeme
Oberflächenentwicklung
Angebotene
Services
Mit Java/WWW
möglich
Sehr zahlreich;
praktisch verfügbar: Kerndienste
Mittlerer Bereich
Preis
Geeignet für
komplexe
Anwendungen
Transaction und
COBOL-Binding
Ja
Java RMI/
EJB
29
COM+
Eingeschränkt (Java) Eingeschränkt
(Visual J++, Visual
C++, Visual Basic)
Alle wesentlichen
Primär Windows
Systeme
2000
Weitere Produkte
(z.B. Web Application
Server)
Mit Java/WWW
möglich
Nutzung von CORBA
wesentlich
Spezielle Produkte
(z.B. Entire X)
Frei verfügbar;
CORBA i.d.R.
zusätzlich nötig
In Verbindung mit
CORBA
Relativ gering
Visual Basic: sehr
einfach
Kerndienste
Bedingt; primär in
Microsoft-Umgebung
Herunterladen