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