Datenbankanbindung in Web-Applikationen Herzlichen Dank an Mag. Michael Derntl für die Bearbeitung dieses Skriptenteils und die Gestaltung der Folien!
Datenpersistenz (1) Clientseitig Serverseitig HTML Statische Inhalte (Datenmanipulation unmöglich) Serverseitig Serverseitige, dynamische Generierung von HTML Z.B. in Datenzugriffsseiten (ASP, PHP, ...) Datenmanagement Filesystem: flache Struktur (low level) DBMS: Datenbankmanagementsystem (high level)
Datenpersistenz (2) DBMS als einzige Schicht Business Objects Layer Schicht zwischen Anwendung und Daten Business Objects kapseln Anwendungslogik Transaction Processing Monitors (TPM) Verwaltung einkommender Client-Anfragen Transaktionsmanagement: die Transaktion wird zu einem Kontrakt zwischen einem Client und mehreren Servern; durchgängiges Tracking; wichtig für verteilte, stark vernetzte Architekturen
PHP (1) PHP: Hypertext Processor Datenanbindung Scriptsprache Open Source Serverseitige Verarbeitung Eingebettet in HTML Datenanbindung Mit allen gängigen Datenbank-/Betriebssystem–/ Server-Konfigurationen möglich PHP/MySQL beliebteste Kombination Schnell, billig, unkompliziert
PHP (2) HTML-Einbettung <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> HTML-Einbettung Spezielle Tags zur Markierung von PHP-Abschnitten, u.a. <?php ... ?> ...jump in and out of „PHP mode“ Schnittstellen zu vielen Technologien (Datenbanken, COM, ...) Begrüssung ausgeben Hi, I‘m a PHP script!
ASP (1) Active Server Pages Datenanbindung Serverseitige Technologie von Microsoft Konzept ähnlich PHP Eingebettet in HTML Unterstützt verschiedene Scriptsprachen Plattform: WinNT, IIS Datenanbindung ASP funktioniert mit ODBC-fähigen DBs
Exkurs ODBC, JDBC Open DataBase Connectivity Standardisiertes API für Datenbankzugriff DB-spezifische Implementierungen durch ODBC-Treiber SQL als Datenbankzugriffssprache Java DataBase Connectivity Java Klassenbibliothek von Sun Microsystems
Ausgabe von Datum und Zeit ASP (2) <%@ Language="VBScript" %> <html> <body> <% ' Zeit und Datum ausgeben Response.Write “Es ist jetzt“ & Now() %> </body> </html> HTML-Einbettung Ähnlich wie PHP VBScript, JScript Business Objects z.B. durch COM-Komponenten Ausgabe von Datum und Zeit 19.04.02 12:08
JSP (1) JavaServer Pages Datenanbindung Ähnliches Konzept wie PHP/ASP Java-Code eingebettet in HTML Server erzeugt bei erstem Zugriff ausführbares Servlet: „Reiner“ Java-Bytecode HTML-Ausgabe über Response-Objekt Datenanbindung Zugriff auf Datenbank über JDBC-Klassen Benötigt JDBC-Treiber für Datenbank
JSP (2) Sprache HTML-Einbettung Theorie: andere Sprachen auch möglich (offene Spezifikation) Praxis: Java HTML-Einbettung Bekanntes Konzept (s. ASP, PHP) Business Objects z.B. durch Java-Klassenbibliotheken am Server <html> <body> <H1>My First JSP Page</H1> <H2>Hello, JSP world!</H2> <% for (int i=0; i<11; i++) { %> <br> <%= i %> <% } %> </body> </html> Zahlenreihe ausgeben 1 2 ... 10
Andere Common Gateway Interface (CGI) ColdFusion Weit verbreiteter serverseitiger Mechanismus Parameterübergabe an Programme (z.B. Formulareingaben) Dynamische Erzeugung von HTML-Seiten, ... Sprachen: PERL, C/C++, ... Datenbankanbindung möglich ColdFusion Kommerzielle Technologie (teuer) In HTML eingebettete Tags
Ausgabe von Datensätzen ColdFusion HTML-Einbettung: CF-Tags innerhalb der Seite <HTML> <CFQUERY NAME= "pocket" DATASOURCE=„MyPocket"> SELECT * FROM contents </CFQUERY> <HEAD> <TITLE>Contents of My Pocket</TITLE> </HEAD> <BODY> <H1>Contents of My Pocket</H1> <CFOUTPUT QUERY= "pocket"> <B>#Item#</B> <BR> #Acquired# <BR> #value# <P> </CFOUTPUT> </BODY> </HTML> Ausgabe von Datensätzen Item: Sports Shoes Acquired: 12 Dec1998 Value: 25$ Item: ......
Vergleich PHP ASP JSP CGI Sprachen VBScript, JScript Java PERL, C/C++, ... DBS Alle (native) ODBC, OLE2 JDBC Alle Plattform WinNT, IIS Windows, Unix/Linux Kosten Freeware, Open Source Freeware X