Datenanbindung in Webapplikationen
2
Überblick
In diesem Kapitel:
Datenpersistenz allgemeine Aspekte der Datenpersistenz in
Webapplikationen Datenanbindung in serverseitigen Applikationen
Webapplikationstechnologien: PHP, ASP, ASP.NET, JSP
3
Datenpersistenz
Möglichkeiten der Datenpersistenz– Statische Inhalte
z.B. in HTML, XML Dateien fixe Daten ohne (Vor-)verarbeitung
– Dynamische Inhalte Aufbereitung in serverseitigen Programmen (z.B. PHP,
ASP, CGI etc.)– Filesystem: low-level direct I/O– Datenbankmanagementsbstem (DBMS): high-level
managed I/O
4
Datenpersistenz
Abstraktionsebenen bei Datenzugriff– DBMS als einzige Schicht
– Business Objects Layer Schicht zwischen Applikation und DBMS Ziel: Kapseln der Anwendungslogik in Business Objects Realisierung meist über Klassen-/Objektbibliotheken oder
Services (z.B. Java Beans, COM-Objekte, ...)
– Transaction Processing Monitors (TPM) Verwaltung einkommender Client-Anfragen Bündelung gleichartiger Anfragen bei gleichzeitiger
Sicherstellung der Datenintegrität wichtig für verteilte, stark vernetzte Architekturen
5
Webapplikation mit Datenanbindung
Ablauf einer Webseitenabfrage mit Datenbankzugriff
3. Aufruf von DB-Funktionen über DB-API
ServerseitigeProgramme DBMS
Daten-bank
4. Ausführen der
Funktionen auf der DB
5. Ergebnis liefern
2. Request verarbeiten
Webserver
6. Response vorbereiten
Serverseite
1. HTTP-Request schicken
Webclient(z.B. Browser)
7. HTTP-Response schicken
8. Response anzeigen
6
Webapplikation mit Datenanbindung
Ablauf einer Webseitenabfrage mit XML-Datenverarbeitung
3. Aufruf von XML APIs
ServerseitigeProgramme XML Library
File-System
4. Ausführen der
Funktionen im Filesystem
5. Ergebnis liefern
2. Request verarbeiten
Webserver
6. Response vorbereiten
Serverseite
1. HTTP-Request schicken
Webclient(z.B. Browser)
7. HTTP-Response schicken
8. Response anzeigen
7
Webapplikation mit Datenanbindung
Beispielablauf einer Webseitenabfrage mit Web Service Invocations
ServerseitigeProgramme
5. Web Service
Response
2. Request verarbeiten
WebserverA
6. Response vorbereiten
Serverseite
1. HTTP-Request schicken
Webclient(z.B. Browser)
7. HTTP-Response schicken
8. Response anzeigen
Web Service
X
3. Web Service Request
WebserverB
4. Request verarbeiten
Web Service
Y
8
Technologien für Webapplikationen
Überblick– Datenbankschnittstellen
ODBC/JDBC Native
– einige serverseitige Scriptumgebungen: PHP ASP, ASP.NET JSP ColdFusion
– Vergleich
9
DB-Schnittstellen
Open Database Connectivity (ODBC)– Standardisiertes API für Datenbankzugriff– DB-spezifische Implementierungen durch ODBC-Treiber– SQL als Datenbankzugriffssprache
Java Database Connectivity (JDBC)– Java Klassenbibliothek von Sun Microsystems
Native APIs– Spezielle Application Programming Interfaces (API) für
bestimmte Datenbanksysteme und/oder SprachenzB. für OCI-Funktionen in PHP für Oracle8
10
PHP
PHP: Hypertext Preprocessor– 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
11
PHP
Eingebettet in HTML– Spezielle Tags zur Markierung von PHP-
Abschnitten, u.a. <?php ... ?>– ...jump in and out of "PHP mode"– Bsp.:
– am Client:
<html> <head><title>PHP Beispiel</title></head> <body> <?php echo "Guten Tag!"; ?> </body></html>
<html> <head><title>PHP Beispiel</title></head> <body> Guten Tag! </body></html>
12
ASP, ASP.NET
Active Server Pages– Serverseitige Technologie von Microsoft– Konzept ähnlich PHP
Eingebettet in HTML– Unterstützt verschiedene Scriptsprachen– Plattform: WinNT, IIS– Datenanbindung: funktioniert mit ODBC-fähigen DBs
ASP.NET– Trennung HTML und OO-Programmcode [möglich]– Ereignisorientiert, Objektorientiert, verwendet .NET
Klassenbibliothek– Definiert HTML-Elemente als Objekte– vorherrschende Sprachen: VB.NET, C# (früher: VBScript, JScript)– Datenanbindung: Funktioniert derzeit mit SQL-Server und OLEDB
13
ASP, ASP.NET
ASP: eingebettet in HTML, ablauforientiert
<html> <head><title>ASP Beispiel</title></head> <body> <% Response.Write("Hi, I'm an ASP script!") %> </body></html>
14
ASP, ASP.NET
ASP.NET: "hinter" HTML, ereignisorientierte Web Forms
<%@ Page Language="vb" Codebehind="test.aspx.vb" Inherits="TestPage" %><html> <body> <asp:Table id="Tbl" runat="server"></asp:Table> <% WriteCurrentDate() %> </body></html>
Public Class TestPage Inherits System.Web.UI.Page Private Sub Page_Load(…) Handles MyBase.Load Tbl.BorderColor = Color.Blue Tbl.Rows(1).Cells(3).Text = "Hello!" ... End Sub
Protected Sub WriteCurrentDate() Response.Write( DateTime.Now.ToString() ) End SubEnd Class
test.aspx
test.aspx.vb
15
JSP
JavaServer Pages– Ä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
<body> <% for (int i=0; i<11; i++) { %> <br> <%= i %> <% } %></body>
16
Weitere...
Common Gateway Interface (CGI)– 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– Datenbankanbindung möglich
17
Vergleich
PHP ASP.NET JSP CGI
Sprachen PHP VB.NET,
C#
Java PERL, C/C++, ...
DBS Alle native OLEDB, SQL-Server
JDBC Alle
Plattform Alle WinNT, IIS Windows,
Unix/Linux
Alle
Kosten Freeware,
Open Source
Freeware Freeware X