2 Folien/Seite

Werbung
Software gestern - heute - morgen (1)
1. Prozedurale Entwicklung ( z.B. C, Fortran, Cobol, … )
warum? Programmieren der Logik war schwer/teuer
wie?
Entscheidungstabellen , Flussdiagramme ,
Zerlegung in Teilaufgaben , …
Orientierung an der Aufrufreihenfolge im Programm
2. Objektorientierte Entwicklung ( z.B. C++, Java, C#, … )
warum? Programme waren zu schlecht
wartbar, wieder verwendbar, anpassbar, …)
wie?
Klassen, Attribute, Methoden, Vererbung, …
Orientierung an den Objekten einer Anwendung
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 1
Software gestern - heute - morgen (2)
3. Schichtenarchitektur (z.B. ISO-OSI, TCP/IP, WAP/WAE, …)
warum? Zu viele Klassen und Prozeduren
wie?
Verteilte Architekturen aus
Schichten von standardisierten Protokollen
Orientierung an verifizierbaren Software-Schichten
4. Service-basierte Entwicklung
warum? überall dem Kunden Dienste anbieten
wie?
Web-basierte Software und Middleware,
Dienst-basierte Software, Dienst-Server, …
Orientierung an den benötigten Diensten
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 2
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
1
Tomcat - Webserver
C:\programme
\tomcat
\webapps
Client
\ROOT
GET
willkommen.html
/willkommen.html
\Abteilung1
HTTP/1.0
WebseitenVonAbteilung1
\Abteilung2
WebseitenVonAbteilung2
\web-Inf
action = “servlet/pgm1“
\classes
Servlets (=Programme)
Server
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 3
Apache - Webserver
C:\programme
\Apache Group
\Apache
Client
\htdocs
GET
willkommen.html
/willkommen.html
\Abteilung1
HTTP/1.0
WebseitenVonAbteilung1
\Abteilung2
WebseitenVonAbteilung2
\cgi-bin
action = “cgi-bin/pgm1“
cgi-Programme
\conf
httpd.conf
Server
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 4
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
2
Common Gateway Interface (CGI)
bietet dieselbe Interaktion mit HTML-Forms
Protokoll
,
IP-Nummer , Port , Web-Seite
Textfeld
Passwortfeld
Submit-Knopf
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 5
Common Gateway Interface (CGI)
dient als Schale um Webserver-Programme
CGI
HTTP
Eingabe via HTTP
vom Client
Client
HTTP
Ausgabe via HTTP
zum Client
CGI-Programm
Server
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 6
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
3
Servlets im Vergleich zu CGI
CGI ist Vorläufer von Servlets
Vorteil von CGI:
• beliebige Sprache auf dem Server einsetzbar
Vorteile von Servlets (Nachteile von CGI):
• Servlets sind objektorientiert (Java)
• Servlets sind portabel
(CGI-Programme nur, falls in Java geschrieben)
• Servlets sind sicher
(Sicherheitsrisiken von CGI: „inkorrekte“ Benutzereingaben)
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 7
Java Server Pages (JSP)
Vorläufer-Technologien:
HTML - statische Seiteninhalte
php, ... - dynamische Seiteninhalte, nicht typsicher
Servlets - dynamische Seiteninhalte, typsicher und portabel ,
aber keine Trennung von Layout, Logik und Daten
Neu:
JSP
- dynamische Seiteninhalte, typsicher und portabel ,
etwas bessere Trennung von Layout, Logik und Daten
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 8
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
4
Java Server Pages (Beispielausgabe)
JSP-Verzeichnis
JSP-Seite
Layout (+konstanter Inhalt)
dynamischer Inhalt
Layout
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 9
JSP trennt Design und Logik
http://localhost:8080
/beispiel1/clock.jsp
JSP-Web-Server
Web-Browser
.class-Files
Willkommen in ...
Preisliste von
Do. 11.Dez 9:50 ...
Client
WebDesigner
clock.jsp
Servlet (.java)
Web-Seite (html)
Programmierer
Clock.Java
Server
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 10
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
5
Java Server Pages (Beispiel)
JSP-Direktive
<-- clock.jsp -->
<%@ page language="java" %>
<jsp:useBean id="clock" class="Clock" />
JSP-Aktion
<HTML>
<H1>Willkommen in unserem Internetshop</H1>
<p> Preisliste von <%= clock.getDay() %> ist ...
</HTML>
JSP Ausdruck
import java.util.*;
public class Clock
{ public String getDay()
{
return " " + new Date() ; }
}
// Clock.Java
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 11
Active Server Pages (ASP)
MicroSoft‘s Alternative zu JSP
• serverseitige Skriptsprache zur Generierung von HTML
• Mischung von HTML und Kontroll-Code (Schleifen, ...)
<% Code-Einbindung wie JSP-Skriptlet %>
• benutzt ASP-Komponenten (z.B. in Visual Basic) ,
generiert Objekte zu diesen Komponenten und
ruft für diese generierten Objekte Funktionen der Komponente auf
• Response für ASP–Ausgabe ( wie response –Variable bei JSP )
• spezielle Kommandos für Datenbankzugriff
• Einbettung verschiedener MS-Sprachen möglich, z.B. VB
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 12
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
6
ASP - Beispiel
<HTML>
<BODY>
<%
Dim obj
Set obj = Server.CreateObject("asp1.hallo")
Dim str
str = obj.halloWelt
Response.Write str
%>
</BODY>
</HTML>
Active Server Page
asp1.asp
' tests new Development Web
Function halloWelt() As String
halloWelt = "Hello, World!"
End Function
Visual Basic
ASP Komponente
hallo.cls
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 13
PHP Hypertext Processor (PHP)
Alternative zu JSP
• serverseitige Skriptsprache zur Generierung von HTML
• Mischung von HTML und Kontroll-Code (Schleifen, ...)
• spezielle Kommandos für Datenbankzugriff
• im Gegensatz zu JSP und ASP keine Komponenten
eher für kleinere Web-Applikationen
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 14
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
7
PHP-Beispiel
<html> <body> Eine Tabelle mit PHP ausgegeben
php-Einbettung
<?php
$db = mysql_connect("localhost", "root");
DB-Verbindung
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM Auftrag",$db); Query
echo "<table border=1>\n";
HTML-Tabelle
echo "<tr><td>Name</td><td>Position</tr>\n";
while ($myrow = mysql_fetch_row($result))
ein Result lesen
{
printf( "<tr><td>%s</td><td>%s</td></tr>\n",
und ausgeben
$myrow[1], $myrow[2] );
}
echo "</table>\n";
eingebetteter HTML-Code
?>
</body> </html>
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 15
Arten von Webserver-Technologien
Server-Technologien für Web-Server
statische Webseiten
dynamisch generierte Seiten
Layout-orientiert
nur
HTML
PHP JSP
ASP
XSP
Logik-orientiert
CGI
Servlet
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 16
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
8
Überblick über Server-Technologien
Server-Technologien für Webserver
XSP
Active Server Pages (ASP)
Mischt Java und XML
mischt Programm und HTML
Java Server Pages (JSP)
mischt Java und HTML
Servlet generiert HTML
Java
PHP
CGI generiert HTML
nur HTML
portabel & typsicher
mischt Programm und HTML
beliebige Programmiersprache
statische Webseiten
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 17
Zusammenfassung: Internet-Technologien
Webserver-Technologien
XSP
Active Server Pages
Java Server Pages (JSP)
Servlet generiert HTML
PHP
CGI generiert HTML
nur HTML
Datenbankkopplung
Client-PGM ruft DB-Server
Web-Server ruft Datenbankserver
nur HTML
HTML+Javascript
nur HTML
HTML+Applets
XML+XSL
Dokumentsprachen
Client-Technologien
Webbasierte Informationssysteme - Prof. Dr. Stefan Böttcher - SS 2004 / 18
Webbasierte Informationssysteme
Prof. Dr. Stefan Böttcher
9
Herunterladen