Vortrag

Werbung
Einsatz von
Applikationsservern
Untersucht am Beispiel des
Sybase „Enterprise Application
Server“
Architektur von Datenbanksystemen
l Client / Server Modell (2 Schichten Modell)
Benutzerschnittstelle
Präsentationslogik
Anwendungslogik /
Transaktionslogik
Client
Datenbank
DBMS
Protokoll
DBMS
Client / Server Modell
l Nachteile:
¡Geringe Leistung / hoher Datenverkehr
¡Schwierige Erstellung / Erweiterung von Anwendungen
Benutzerschnittstelle
Präsentationslogik
Anwendungslogik /
Transaktionslogik
Client
Datenbank
DBMS
Protokoll
DBMS
Architektur von Datenbanksystemen
l Das 3-Schichten-Modell
BenutzerSchnittstelle
Anwendungslogik
(Geschäftslogik)
DBMSProtokoll
BenutzerSchnittstelle
Clients
Datenbank
Applikationsserver
DBMS
Transaktionslogik
Das 3-Schichten-Modell
l Vorteile:
¡Einfache Erstellung / Erweiterung der Anwendungslogik
¡Leistung des Client ist nicht entscheidend (Thin-Clients)
¡Client benötigt keinen direkten Datenzugriff (Sicherheit)
¡Verschiedene Arten von Clients (Java, C++)
¡Steigerung der Performance und Sicherheit
BenutzerSchnittstelle
Anwendungslogik
(Geschäftslogik)
DBMSProtokoll
BenutzerSchnittstelle
Clients
Datenbank
Applikationsserver
DBMS
Transaktionslogik
Das 3-Schichten-Modell
l Nachteile:
¡Hoher Kommunikationsaufwand
¡Hoher Entwicklungsaufwand
BenutzerSchnittstelle
Anwendungslogik
(Geschäftslogik)
DBMSProtokoll
BenutzerSchnittstelle
Clients
Datenbank
Applikationsserver
DBMS
Transaktionslogik
Implementierungstechniken
lClient / Server
¡JDBC / ODBC
lKommunikation mit dem DBMS
¡SQL
lKommunikationssprache
lBefehle zum Erstellen, Auslesen und Manipulieren
¡Stored Procedures
lSQL mit Kontrollstrukturen und Variablen
lÜber Transaktionslogik auf den DB-Server
Implementierungstechniken
lApplikationsserver
¡Java
lObjektorientiert
lWird compiliert und interpretiert (Virtual Maschine)
lPlattformunabhängig
Implementierungstechniken
l Applikationsserver
¡Java 2 Enterprise Edition Version 1.3
l Standard-Architektur zur Definition und Unterstützung von
mehrschichtigen Programmmodellen
l Grundlage aller auf Java basierenden Applikationsserver
l Großer Funktionsumfang
• Kommunikation mit Komponenten, Datenbanken
und Back-End Systemen
• Authentifizierungs- und Sicherheitsservice
• Transaction Management
• Mail und XML Service
• Etc…
Implementierungstechniken
lApplikationsserver
¡Enterprise Java Beans (EJB)
lSoftwarekomponentenmodell
lKomponenten werden auf den Server ausgeführt
lKommunikation ist kompatibel zum CORBA Standard
Implementierungstechniken
lApplikationsserver
¡CORBA
lCommon Object Request Broker Architecture
lStellt einzelne Objekte über ein Netzwerk zur
Verfügung
lErmöglicht die Kommunikation von Applikationen,
egal wo sie im Netz liegen oder womit sie entwickelt
worden sind
Implementierungstechniken
l Applikationsserver
¡CORBA Architektur
Server
Objekt
Client
Client
Client
IIOP
ORB
Stub
Stub
Skeleton
Skeleton
IIOP
Server
Objekt
Server
Objekt
Applikationsserver Systeme
lNicht auf Java basierend
¡Serverseitige Scriptsprachen wie PHP und ASP
¡CGI Sprachen (Common Gateway Interface)
¡COM / DCOM bzw. Microsoft .NET
Applikationsserver Systeme
lAuf Java basierend
¡Java 2 Enterprise Edition als Grundlage
¡Teilweise oder vollständige Kompatibilität zu
verschiedenen Versionen der J2EE
¡Eigene Zusatzprodukte und Funktionen
Applikationsserver Systeme
lOracle 9iAs
¡Volle J2EE V1.3 Unterstützung
¡Unterstützt viele Sprachen (z.B. Java, Perl, C,
Cobol und PL/SQL)
¡Unterstützt eine Vielzahl von Standards
(z.B. J2EE1.3, Web Services, WebDAV, LDAP
v3, SSL v3 und einige XML-Standards)
Applikationsserver Systeme
lBEA Weblogic
¡Gute Java Unterstützung (J2EE 1.3)
¡Mit „Tuxedo“ gutes Transaktionsmanagement
¡Unterstützt CORBA, COM und Web-Services
(COM nur über Java-Wrapper)
¡Schnelle EJB-Unterstützung (mit Load
Balancing und Failover)
¡Keine eigenen Entwicklungstools
(Orientiert sich an Symantecs „Visual Cafe
Enterprise“)
Applikationsserver Systeme
lIBM WebSphere Version 4.0
¡J2EE V1.2.1 mit einigen Features der Version
1.3 (z.B. JCA, JMS)
¡Basiert auf der Servlet-Engine
¡Volle Unterstützung von Web-Services
¡Native Unterstützung vieler Datenbanken
Applikationsserver Systeme
lSybase Enterprise Application Server 4.1
¡Kompatibel zum J2EE V1.3 Standard
¡Unterstützt Komponenten in vielen Sprachen
(Java und DCOM)
¡Eigene, serverseitige Scriptsprache
PowerDynamo
¡Unterstützung von Web-Services
¡RAD Integration (PowerBuilder)
Fazit: Wer braucht welchen Server?
l Kleine, abgeschlossene Web-Anwendungen
lassen sich mit einer serverseitigen
Scriptsprache bzw. mit dem CGI gut umsetzten
Web Server
HTML / XML
Client
Web-Browser
DB
Server Site Script
Multimedia (z.B. Flash)
CGI
Programm
File System
XML, etc.
Fazit: Wer braucht welchen Server?
l J2EE bzw. MS.NET lohnt sich nur, wenn man
komponentenorientiert programmiert und diese
Komponenten in vielen, verschiedenen Clients
DB
nutzen will
DB
DB
DB
Applikationsserver
Clients
Web-Browser
HTML / Server Side Script
CORBA Client
Objekt
Komponentenserver
Transaktionsserver
Java Client
COM Client / ActiveX
Objekt
Objekt
Objekt
Objekt
J2EE
COM / DCOM
Web Service
Security
Performance
Externe Res.
SAP
Wireless
CICS
Beispielaufgabe
l Für einen Anbieter von Aufbau- und Lernkursen
existiert eine Datenbank zur Speicherung der
Kurse, Lehrer, Teilnehmer und Material.
l Die Teilnahme an einem Kurs soll über ein JavaApplet möglich sein, welches über das Internet
aufgerufen wird.
l Lösung als:
¡Client / Server Anwendung mit Hilfe der JDBC
¡CORBA Anwendung mit Zugriff auf den
Komponentenserver „Jaguar“
Client / Server Lösung
l Verbindung zum Datenbankserver über die
JDBC-Schnittstelle
l Transaktionslogik in der Applikation
l Transaktionslogik in Stored Procedures
DB
(KursDB)
Java – Applet
(Teilnahme)
JDBC
Stored
Stored
Procedure
Procedure
Client / Server Lösung
l Transaktionslogik in der Applikation
TCP/IP Netz
Java – Applet
(Teilnahme)
A
B
C
Java – Applet
(Teilnahme)
D
E
F
Java – Applet
(Teilnahme)
G
H
JDBC
I/J
DB
(KursDB)
Client / Server Lösung
l Transaktionslogik in Stored Procedures
Java – Applet
(Teilnahme)
TCP/IP - Netz
Java – Applet
(Teilnahme)
A
B
JDBC
Java – Applet
(Teilnahme)
DB
(KursDB)
Stored
Stored
Procedure
Procedure
Komponentenbasierte Lösung
l keine JDBCSchnittstelle
l Methoden werden
über das CORBA
Interface aufgerufen:
¡ Die Ausgabe der
Angebote
(Angebot_holen)
¡ Die Teilnahme
(Teilnahme)
CORBA
Client
CORBA
Client
Entfernter Prozeduraufruf
über das CORBA Interface
mit Authentifizierung
Jaguar Server
Jagdemo
Komponente
JDBC Verbindung
zur Datenbank
Datenbank
Stored
Stored Proc.
Proc.
Komponentenbasierte Lösung
l Erhöhter Kommunikationsaufwand
CORBA
Client
TCP/IP
TCP/IP
Jaguar
Server
DB
(KursDB)
CORBA
Client
RMI-IIOP
CORBA
Client
JDBC
Stored
Stored
Procedure
Procedure
Praktische Erfahrungen
l Die vielfältige Infrastruktur und Kommunikation ist
gewöhnungsbedürftig
l Bietet gute Wiederverwendbarkeit, Performance und Sicherheit
neu
wiederverwendbar
Funktionalität
Komponente
Eigene
Kommunikation
Die Infrastruktur
Sicherheits- und
Kommunikationsfunktion
wird in allen Projekten
verwendet
Client Server /
serverseitige Scripte
komponentenbasiert
Aussichten
l In großen Firmen ist die Nutzung von
Applikationsservern schon Standard
l Immer mehr Applikationsserver-Anwendungen
auch für Privatnutzer
l Bei immer schnelleren Netzanbindungen sind
auch komplette Desktopanwendungen über das
Internet denkbar
l J2EE großer Standard
l Microsoft .Net ist eher eine Softwarelösung
Herunterladen