Serverseitige Web

Transcrição

Serverseitige Web
Internet und WWW
7 Serverseitige Web-Technologien [WEB7]
Rolf Dornberger
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
1 © 06-11-12
7 Serverseitige Web-Technologien
„
7.1 Client/Server-Systeme
Š 7.1.1 Grundlagen Client/Server-Systeme
Š 7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
7.2 Web-Technologien
Š 7.2.1 Web-Architekturen
Š 7.2.2 Webserver
Š 7.2.3 Client- und serverseitige Web-Technologien
„
7.3 Serverseitige Web-Technologien
Š 7.3.1 CGI und Perl
Š 7.3.2 PHP
Š 7.3.3 ASP und ASP.NET
Š 7.3.4 ColdFusion
Š 7.3.5 JSP und Servlets
Š 7.3.6 XML
Š 7.3.7 Web Services
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
2 © 06-11-12
7.1 Client/Server-Systeme
„
7.1 Client/Server-Systeme
Š 7.1.1 Grundlagen Client/Server-Systeme
Š 7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
7.2 Web-Technologien
„
7.3 Serverseitige Web-Technologien
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
3 © 06-11-12
7.1.1 Grundlagen Client/Server-Systeme
„
Client/Server-Systeme (c/s-Systeme):
Š Client/Server-Systeme ermöglichen das Rollenspiel zum Austausch
von Daten, Informationen und Programmen zwischen Computern,
die in einem Netzwerk miteinander verbunden sind. Die möglichen
Rollen sind „Client“ (Kunde) und „Server“ (Diener).
Š Ein Client-Server-System besteht aus mindestens einem Client,
der eine Verbindung mit einem Server (oder mehreren Servern)
aufbaut.
Š Der Client bietet die Benutzeroberfläche oder die
Benutzerschnittstelle der Anwendung an.
Š Der Server stellt die (oder zumindest eine gewisse) Funktionalität
zur Verfügung.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
4 © 06-11-12
7.1.1 Grundlagen Client/Server-Systeme
„
Eigenschaften:
Š Im Vergleich zu einem Einzelplatzrechner arbeiten Client/ServerSysteme zusammen, d.h. sie nehmen eine Arbeitsaufteilung vor
und kommunizieren entsprechend.
Š Im Vergleich zu einem Host arbeiten Client/Server-Systeme
föderalistisch zusammen, nicht zentralistisch.
Š Wenn der Server in einem Client/Server-System nur Daten anbietet
(z.B. ein zentraler Datenbankserver) und die Verarbeitung der
Daten auf dem Client erfolgt, wird das entsprechende ClientProgramm als Fat-Client bezeichnet.
Š Ist die Funktion des Clients auf eine reine Benutzerschnittstelle
reduziert, insbesondere im Intranet mittels eines Browsers, spricht
man von einem Thin-Client. Die eigentliche Programmlogik liegt
dann auf einem Application Server.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
5 © 06-11-12
7.1.1 Grundlagen Client/Server-Systeme
„
Beispiele von Client/Server-Systemen:
Š File-Server:
y Imitiert Laufwerke (unechtes Client/Server-System), bietet Dateien an
und lässt geteilte Dateizugriffe zu.
y ähnliches Prinzip bei FTP- oder Webserver
y weit verbreitet
Š Database-Server:
y Regelt den Zugriff auf Datenbanken.
y unterschiedliche Systeme
Š Calculation-Server:
y Rechenintensive Aufgaben werden auf mehrere Computer verteilt
(Parallelisierung, "Number Cruncher").
y oftmals im technisch-wissenschaftlichen Rechnen
Š Groupware-Server:
y Verwaltet wenig strukturierte Daten (z.B. Texte, Mails, NewsgroupEinträge, Workflows...), um die Zusammenarbeit von Menschen zu
begünstigen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
6 © 06-11-12
7.1.1 Grundlagen Client/Server-Systeme
Š Security-Server:
y Überprüft die Zugriffsberechtigungen auf Daten und Systeme mittels:
y Authentifizierung: Überprüfung der vorgegebenen Identität
y Security Database: Verwaltung der Benutzer, Passwörter,
Schlüssel
y Privilege Server: Verwaltung der Zugriffsrechte
Š Webserver:
y Geht über das Prinzip eines File-Servers hinaus und bietet dynamisch
erzeugte Web-Seiten.
Š FTP-Server:
y Übertragung von Files gemäss dem File Transfer Protocol.
Š Directory-Server:
y Hilft dem Webserver, Ressourcen und Dienstleistungen aufzufinden.
y Beispiel ist der Internet-DNS (Domain Name Server).
y Anfrage URL
<protocol>://<server>:<port>/<ressource>
y liefert IP-Adresse
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
7 © 06-11-12
7.1.1 Grundlagen Client/Server-Systeme
Š Transaction-Server:
y Gruppiert mehrere Anfragen eines Clients in eine Arbeitseinheit
(Transaktion). Diese Arbeitseinheit schlägt entweder vollständig fehl
(Rollback), oder wird vollständig ausgeführt (Commit).
Š DSM-Server (Distributed System Management):
y Verwaltet verteilte Systeme und deren Kommunikation.
Š Mail-Server:
y Verwaltet die ein- und ausgehende Emails.
Š Print-Server:
y Verwaltet die Druckaufträge in einem verteilten System.
Š ...
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
8 © 06-11-12
7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
Architektur von Client/Server-Systemen:
Š Ein oder mehrere Server bieten eine
Dienstleistung für einen bis mehrere Clients
aufgrund deren Anfragen an (geteilte
Ressourcen).
Š Der Server entscheidet als abgeschlossene
Einheit mit wohl definiertem Zugriff über die
Erfüllung der Dienstleistung.
Š c/s-Systeme bieten eine gute Skalierbarkeit:
y horizontale Skalierbarkeit Î mehr/weniger Clients
y vertikale Skalierbarkeit Î mehr/weniger Server
Š c/s-Systeme sollten unabhängig von Hardware
und Betriebssystemen kombiniert werden
können.
Š c/s-Architekturen bestehen aus mehreren
Schichten (engl.: tier).
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
9 © 06-11-12
7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
Schichtenarchitektur:
Š Die meisten c/s-Architekturen sind 2- oder 3-SchichtenArchitekturen (two bzw. three tier architecture). Sind mehrere
Schichten beteiligt, spricht man von einer MehrschichtenArchitektur (multi tier architecture).
Š Bei Mehrschichten-Architektur wird die Applikation in mehrere
diskrete Komponenten aufgeteilt. Meist wird eine
Dreischichtenarchitektur angewendet, in der Datenbank,
Anwendungslogik und Präsentation (Web-Oberfläche oder Client)
eingeteilt wird. Jede dieser Komponenten kann auf einem eigenen
Computer laufen. Muss aber nicht.
Š Die 2-Schichten Architektur ist die kleinste Client-ServerMehrschichten-Architektur, die softwareseitig als zweischichtiges
System aufgebaut ist. Die Rechenkapazität wird dabei
weitestgehend auf die Client-Rechner ausgelagert, um den Server
zu entlasten.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
10 © 06-11-12
7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
Vergleich Schichtenarchitektur:
Š 1 Schicht (lokaler Arbeitsplatzrechner):
y 100% Präsentation
100% Anwendungslogik
100% Datenhaltung
Š 2 Schichten:
y Client:
y Server:
100% Präsentation,
0-100% Anwendungslogik
100% Datenhaltung
100-0% Anwendungslogik
Š 3 Schichten:
y Client:
100% Präsentation
y Applikations-Server: 100% Anwendungslogik
y Datenbank-Server: 100% Datenhaltung
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
11 © 06-11-12
7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
Vor- und Nachteile einer 2Schichten-Architektur:
„
Vor- und Nachteile einer 3Schichten-Architektur:
+ weniger komplex als 3 Schichten
-
komplexer als 2 Schichten
-
keine eindeutige Trennung der
Geschäftsprozesse und Logik
+ klare Trennung vor allem der
Geschäftsprozesse und Logik
-
Skalierbarkeit schwieriger, da
Grenzen der Geschäftsprozesse
und Logik unscharf
+ Skalierbarkeit einfacher, da Teil
des Konzeptes
-
keine separate
Installation/Wartung
schwieriger zu administrieren
© Prof. Dr. Rolf Dornberger
+ separate Installation, Wartung
und Weiterentwicklung möglich
+ einfacher zu administrieren, vor
allem mit Thin-Clients
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
12 © 06-11-12
7.1.2 Schichtenarchitektur und c/s-Kommunikation
„
Client/Server-Kommunikation:
Š Unter Interprozesskommunikation (inter-process communication, IPC)
versteht man Methoden zum Informationsaustausch von nebenläufigen
Prozessen oder Threads. Im engeren Sinne versteht man unter IPC die
Kommunikation zwischen Prozessen auf demselben Computer, deren
Speicherbereiche aber strikt voneinander getrennt sind (Speicherschutz).
Im weiteren Sinne bezeichnet IPC aber jeden Datenaustausch in
Verteilten Systemen, von Threads die sich ein Laufzeitsystem teilen bis
hin zu Programmen die auf unterschiedlichen Rechnern laufen und über
ein Netzwerk kommunizieren.
Š Für die Kommunikation ist dabei eine geeignete Prozesssynchronisation
notwendig, insbesondere wenn verschiedene Prozesse potentiell
gleichzeitig auf dieselben Ressourcen zugreifen können. Dabei sind neben
Dateien, Peripheriegeräten, etc auch andere Prozesse, mit denen
kommuniziert werden soll, als Ressourcen zu verstehen. [...]
[Quelle: www.wikipedia.de; Stand: 21.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
13 © 06-11-12
7.2 Web-Technologien
„
7.1 Client/Server-Systeme
„
7.2 Web-Technologien
Š 7.2.1 Web-Architekturen
Š 7.2.2 Webserver
Š 7.2.3 Web-Applikationsserver
Š 7.2.4 Client- und serverseitige Web-Technologien
„
7.3 Serverseitige Web-Technologien
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
14 © 06-11-12
7.2.1 Web-Architekturen
„
Web-Architekturen:
Š Web-Architekturen sind eine Alternative zu den klassischen
Client/Server-Systemen mit ihrer c/s-Schichtenarchitektur und c/sKommunikation.
Š Web-Architekturen sind webfähige Client/Server-Systeme. Sie
bestehen mindestens aus einem Browser auf Client und einem
Webserver auf dem eigentlichen Server. Die Kommunikation
findet allerdings im Gegensatz zu den klassischen c/s-Systemen
nicht über IPC statt, sondern über HTTP über das Inter- bzw.
Intranet.
Š Web-Architekturen bieten Vorteile gegenüber den klassischen
Client/Server-Systemen, indem
y die Anwendungen automatisch im Internet verwendet werden
können.
y die Clients an sich installations- und wartungsfrei sind, da sie
lediglich einen Browser benötigen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
15 © 06-11-12
7.2.1 Web-Architekturen
„
Webclients:
Š HTML, HTML-Formulare,
Skriptsprachen, Komponenten
„
Webserver:
Š Programmierbar, Verarbeitung von
eingegangenen Formularen,
dynamisch erzeugte HTML-Seiten,
Beispiele: CGI, ASP, JSP/Servlets...
„
Weitere Server:
Š Webserver spricht gegebenenfalls
weitere Server (Web-Applikationsserver)
an, z.B. Datenbank-Server ...
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
16 © 06-11-12
7.2.2 Webserver
„
Webserver:
Š Ein Webserver ist eine Software, die es ermöglicht, Webseiten
und Dienste den Usern des Internets zur Verfügung zu stellen.
Der User muss nur einen Webbrowser installiert haben.
[Brockhaus]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
17 © 06-11-12
7.2.2 Webserver
„
Webserver:
Š Ein Webserver ist im engeren Sinne ein Server-Dienst, der Informationen
nach dem HTTP-Protokoll zur Verfügung stellt. Die Daten werden über
HTTP-URLs adressiert. Im weiteren Sinne wird der Begriff Webserver auch
für den Host verwendet (dann Web-Host genannt), auf dem der ServerDienst betrieben wird.
Š Ein Nutzer stellt eine Anforderung, z.B. durch Anklicken eines Links in
seinem Browser (Client). Der Browser leitet einen HTTP-Request an den
im Link adressierten Webserver. Der Webserver liefert die adressierte
Seite mitsamt eines Mime-Types zurück. Der Browser zeigt die
übertragenen Daten entsprechend ihres MIME-Types an.
Š Die Standard-Ports für Webserver sind Port 80 für HTTP und Port 443 für
HTTPS (per SSL verschlüsselte HTTP-Verbindung).
[Quelle: www.wikipedia.de; Stand: 21.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
18 © 06-11-12
7.2.2 Webserver
„
Webserver:
Š Im typischen Umfeld einer Website liefert ein Webserver vorwiegend
statische Daten wie HTML-Seiten, Stylesheets oder Bilder und Grafiken
(JPG, GIF, PNG) zurück. Neben statischen Daten werden zunehmend
dynamische, d.h. beim Abruf erzeugte Daten, ausgeliefert. Dies
geschieht durch den Einsatz von Skripten (PHP, JSP, ASP), ServerContainern (Servlets, ASP.NET) und Webservices (Soap). [...]
Š Auf dem Webserver werden üblicherweise alle Anfragen in einem Logfile
protokolliert, aus dem mittels Logfile-Analyse Statistiken über
Besucherzahlen bzw. Anzahl der Zugriffe pro Seite generiert werden
können. Da HTTP ein verbindungs- und zustandsloses Protokoll ist, ist
eine eindeutige Zuordnung einer Anforderung zu einem Nutzer nicht
möglich. Die Angabe von Visits, Hits, Benutzer o.ä ist daher nur
eingeschänkt aussagekräftig. [...] Um genauere Daten zu erhalten, werden
Cookies und dynamische Seiten eingesetzt.
[Quelle: www.wikipedia.de; Stand: 21.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
19 © 06-11-12
7.2.2 Webserver
„
Der Client schickt eine Anfrage an den Webserver (mit der Adresse
http://www.solodemothurn.ch) im HTTP-Übertragungsprotokoll. Auf
diese Anfrage erfolgt die Antwort des Webservers (hier ein HTML-File).
Danach wird die Verbindung wieder gelöst.
Internet
Client
Webserver
http://www.solodemothurn.ch
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
20 © 06-11-12
7.2.2 Webserver
„
HTTP-Anfrage:
Š HTTP ermöglicht, dass der Client eine Anfrage (request) schickt,
die vom Webserver beantwortet (response) wird.
Š HTTP ist ein zustandsloses Protokoll, d.h. nach der Antwort wird
die Verbindung zwischen Client und Server wieder gelöst.
Š Eine HTTP-Anfrage unterscheidet die zwei verschiedenen
Zugriffsoperationen get und post, um Daten beim Server
anzufragen. get zeigt offen die Parameter mit der URL und ist in
der Länge beschränkt, post zeigt nicht die Parameter und kann
mehr Parameter-Werte-Paare aufnehmen.
Š Der Webserver erhält eine URL gesendet und antwortet mit dem
entsprechenden HTML-Dokument. Bezeichnet die URL ein
Programm oder ein serverseitiges Skript, wird dieses zu erst
ausgeführt und die Antwort dann an den Client zurückgeschickt
(nicht das Programm oder serverseitiges Skript).
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
21 © 06-11-12
7.2.2 Webserver
„
HTTP-Anfrage:
Š Eine HTTP-Anfrage erlaubt auch das Senden von Parametern und
Werten an den Server, z.B.:
„
http://www.google.ch/search?hl=de&q=Web-Technologien&meta=
„
http://www.google.ch/search steht für die URL
? steht für die Trennung zwischen URL und Parametern und Werten
hl=de ist das erste Parameter-Werte-Paar (Suchsprache Deutsch)
& steht für die Trennung zwischen mehreren Parameter-Werte-Paaren
q=Web-Technologien ist das zweite Parameter-Werte-Paar (Suchbegriff
"Web-Wechnologien")
meta= ist das dritte Parameter-Werte-Paar (leerer Parameter, ohne Wert)
„
„
„
„
„
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
22 © 06-11-12
7.2.2 Webserver
„
Beispiele von Webservern:
Š Am weitesten verbreitet sind die beiden Webserver
y Internet Information Services IIS von Microsoft
y Apache eines open-source Projekts
Š Apache:
y
y
y
y
y
y
y
Als „Open Source“ frei erhältlich
Versionen für Unix-basierende- und Microsoft-Systeme
Schnell und robust
Modulare Implementation, viele Zusatzmodule
Viele Möglichkeiten zur Konfiguration über Konfigurationsdateien
Grosse Entwickler-Community
Kein GUI – Konfiguration über Konfigurationsdatei
Š Microsoft Internet Information Server (IIS):
y
y
y
y
© Prof. Dr. Rolf Dornberger
Kostenlos in verschiedenen MS-Produkten enthalten
Konfiguration und Administration über ein GUI
Starke Unterstützung von ASP und gute Integration in MS-Produkte
Probleme mit der Stabilität und Sicherheit
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
23 © 06-11-12
7.2.2 Webserver
Die Hauptakteure im Webserver-Geschäft
[Quelle:
http://news.netcraft.com/archives/
web_server_survey.html;
Stand 8/2005]
„
Fazit:
Š Apache und Microsoft sind mit nahezu 90% Marktanteil die KeyPlayers
Š Microsoft verliert Marktanteile zugunsten von Apache
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
24 © 06-11-12
7.2.2 Webserver
„
Weitere Informationen zu Webserver im eLearning-Tutorial zu
Webserver.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
25 © 06-11-12
7.2.3 Web-Applikationsserver
„
Web-Applikationsserver:
Š Tendenz von Informationslieferung zur Anbindung von
Anwendungen geht in Richtung
y starke Interaktion zwischen verteilten Clients und Datenspeichern
im Back-End-Bereich (e-Business), beispielsweise unter Einbezug von
Datenbanken und Dateisystemen.
y Integration von heterogenen Systemen bzw. Legacy Systemen,
beispielsweise mit CORBA, COM, COM+ und EJB.
y schnelle Realisierung von Projekten mit Hilfe von vorgefertigten
Elementen.
Š Um dies zu ermöglichen braucht es Web-Applikationsserver, wie
z.B. Tomcat (Apache Software Foundation), ColdFusion
(Macromedia), WebSphere (IBM), Enhydra (Lutris)...
Š Web-Applikationsserver besitzen die logischen Schichten:
y Web-Applikationsschicht (Runtime-Umgebung für die dynamische
Erzeugung von Webseiten)
y Business-Logik-Schicht (Einsatz von verteilten
Softwarekomponenten, Integration von Legacy-Systemen)
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
26 © 06-11-12
7.2.3 Web-Applikationsserver
„
Web-Applikationsserver:
Š Ein Application Server (bzw. Web-Applikationsserver) ist ein Server in
einem Computernetzwerk, auf dem eine spezielle Software-Applikation
läuft.
Š Häufig meint man dabei Software-Applikationen mit einer drei- oder
mehrschichtigen Architektur, wie sie z.B. vom J2EE- oder .NETFramework vorgeschlagen werden. Ziel ist es, namensgebend für
dreischichtige Architektur, die drei Aufgaben Präsentation,
Geschäftslogik und Datenhaltung voneinander zu trennen. Die
Präsentation wird von einem Client, gerne einem Thin Client,
beispielsweise von einem Web-Browser übernommen, welcher eine
Oberflächendefinition z.B. in HTML oder Swing darstellt. Dafür werden
oft ASP, JSP/Servlets, oder ColdFusion verwendet. Die Geschäftslogik
wird nicht selten in Geschäftsprozesse (Session Bean bei J2EE) und
Geschäftsobjekte aufgeteilt (Entity Beans bei J2EE) und in einer
Programmiersprache wie Java, VB.NET, C#, Perl, PHP realisiert. Für die
Datenhaltung wird meist eine relationale Datenbank wie z.B. MySQL, DB2
oder MS SQL Server eingesetzt.
[Quelle: www.wikipedia.de; Stand: 22.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
27 © 06-11-12
7.2.4 Client- und serverseitige Web-Technologien
„
HTML-Code generiert statische Seiten. Ein Webserver stellt diese Seiten
ins Internet.
Internet
Client
Webserver
http://www.solodemothurn.ch
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
28 © 06-11-12
7.2.4 Client- und serverseitige Web-Technologien
„
Seiten können auch dynamische Elemente enthalten, die mittels
bestimmter Scriptsprachen oder Erweiterungen (z.B. JavaScript, Java
Applets, Plugins, Flash, JScript, VB, ActiveX...) auf dem Client im
Browser ablaufen.
Î clientseitige Interaktivität
Î clientseitige Web-Technologien
Internet
Client
© Prof. Dr. Rolf Dornberger
Webserver
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
29 © 06-11-12
7.2.4 Client- und serverseitige Web-Technologien
„
Seiten können auch dynamisch auf dem Webserver erzeugt werden.
Dazu wird im Allgemeinen ein Webserver (z.B. IIS, Apache...) und/oder
ein Web-Application-Server (Tomcat, JBoss, Web-Sphere...) mit
entsprechenden Software-Paketen ausgestattet, so dass nun
dynamische Web-Sprachen bzw. Erweiterungen (z.B. ASP.NET, PHP,
CGI/Perl, JSP/Servlets, Coldfusion...) laufen.
Î serverseitige Interaktivität
Î serverseitige Web-Technologien
Internet
Client
© Prof. Dr. Rolf Dornberger
Webserver
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
30 © 06-11-12
7.2.4 Client- und serverseitige Web-Technologien
„
Clientseitige Web-Technologien
Š Der Browser dient als Interpreter des Programmcodes / der Skripte
Š Vorteil: Entlastung des Servers
Š Nachteil: Kompatibilität zu den Browsern ist nicht immer gewährleistet
Š Die häufigsten Methoden: JavaScript, VBScript, JScript, Java Applets,
Plug-Ins, Flash, ActiveX...
„
Serverseitige Web-Technologien
Š Programmcode / Skripte werden auf dem Webserver ausgeführt
Š Der Web-Browser erhält den generierten HTML-Code (und eventuell
weitere Skripte wie z.B. CSS und JavaScript)
Š Vorteil: „Plattformunabhängigkeit“ aus der Sicht des Clients
Š Vorteil: Schutz des Source-Codes, da nur HTML sichtbar ist
Š Nachteil: Hohe Belastung des Servers bei vielen Zugriffen
Š Die häufigsten Methoden: CGI/Perl, PHP, ASP/ASP.NET, JSP/Servlet,
ColdFusion...
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
31 © 06-11-12
7.2.4 Client- und serverseitige Web-Technologien
„
„Hello World!“ clientseitig
<H1>
<SCRIPT Language="JavaScript">
document.write("Hello World")
</SCRIPT>
</H1>
„
„Hello World!“ serverseitig (JSP)
<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>
<%
out.println("<h1>Hello World!</h1>");
%>
„
Abhängig vom verwendeten
Browser
„
Abhängig vom verwendeten
Server
„
Code kann eingesehen
werden
„
Code kann nicht eingesehen
werden
Ausgabe in HTML
<h1>Hello World!</h1>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
32 © 06-11-12
7.3 Serverseitige Web-Technologien
„
7.1 Client/Server-Systeme
„
7.2 Web-Technologien
„
7.3 Serverseitige Web-Technologien
Š 7.3.1 CGI und Perl
Š 7.3.2 PHP
Š 7.3.3 ASP und ASP.NET
Š 7.3.4 ColdFusion
Š 7.3.5 JSP und Servlets
Š 7.3.6 XML
Š 7.3.7 Web Services
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
33 © 06-11-12
7.3 Serverseitige Web-Technologien
„
Serverseitige Programmierung und serverseitige Programme:
Š Serverseitige Programmierung bedeutet, dass serverseitige
Programme erstellt und ausgeführt werden, um
y
y
y
y
Daten aus Datenbanken zu lesen,
Daten in Datenbanken zu schreiben und
Webseiten dynamisch aufzubauen,
bevor die Webseite zum Benutzer geschickt wird.
Š Serverseitige Programme werden auch Server Side Includes
(SSI) genannt.
WebClient
URL+Parameter
WebServer
Programm
Datenbank
HTML
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
34 © 06-11-12
7.3 Serverseitige Web-Technologien
„
Serverseitige Programmierung und serverseitige Programme:
Š Zur serverseitigen Programmierung stehen mehrere sich
konkurrenzierende Technologien zur Verfügung.
Š Sie unterscheiden sich in ihrer Leistungsfähigkeit, sind aber meist
doch irgendwie vergleichbar.
Š Zu den serverseitigen Web-Technologien zählen:
y
y
y
y
y
y
y
y
© Prof. Dr. Rolf Dornberger
CGI und Perl
PHP
Java-Servlets und JSP
ASP und ASP.NET
Coldfusion
XML
Web Services
...
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
35 © 06-11-12
7.3.1 CGI und Perl
„
Common Gateway Interface (CGI):
Š CGI definiert eine Schnittstelle, zwischen Browser und Webserver,
die es ermöglicht, mit Programmen auf dem Webserver Anfragen
vom Browser zu bearbeiten und Webseiten dynamisch zu
generieren.
Š CGI kann dazu die Eingaben von HTML-Formularen verarbeiten.
Š Verschiedene Programmiersprachen können genutzt werden, z.B.
Perl, C/C++, Fortran, VBA, …
Š CGI startet für jede Anfrage einen eigenen Prozess auf dem Server,
weshalb die Performance des Webservers bei vielen Anfragen
sinkt.
Š Die Kombination CGI / Perl eignet sich für kleine Webseiten mit
geringem Zugriffsvolumen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
36 © 06-11-12
7.3.1 CGI und Perl
„
Practical Extraction Report Language (Perl):
Š Perl ist eine Skriptsprache, die zur Laufzeit interpretiert wird und
daher als Interpretersprache keinen Compiler benötigt. Perl setzt
nur einen auf dem Server installierten Perl-Interpreter voraus.
Š Perl hat Ähnlichkeiten zur C-Syntax und wurde ursprünglich für
UNIX-Plattformen entwickelt, um schnell kleine Programme für die
Netzwerkentwicklung schreiben zu können.
Š Perl besteht aus einfachen ASCII-Zeichen.
Š Perl ist frei erhältlich; es gibt eine kleinere, aber recht rege PerlFan-Gemeinde.
Š Perl wird oft im Zusammenhang mit CGI verwendet, obwohl Perl
ursprünglich nicht speziell für CGI entwickelt wurde.
Š Die Kombination CGI / Perl eignet sich für kleine Webseiten mit
geringem Zugriffsvolumen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
37 © 06-11-12
7.3.1 CGI und Perl
„
Funktionsweise von Perl in Verbindung mit CGI:
STDOUT
WebServer
Client
cgi
Request *.pl
PerlInterpreter
Response *.pl (HTML)
Server-Betriebssystem
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
38 © 06-11-12
7.3.1 CGI und Perl
„
Ablauf:
1. In einem Formular werden beliebige Strings in Textfelder
eingegeben
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
39 © 06-11-12
7.3.1 CGI und Perl
„
Ablauf:
2. Durch Drücken des Buttons werden die Daten mit einem Perl-Skript
an eine neue HTML-Seite übergeben
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
40 © 06-11-12
7.3.1 CGI und Perl
Pfad zum Perl-Skript
Art der Parameterübergabe
<html>
<head>
<title>Kommentarseite</title>
</head>
<body>
<h1>Ihr Kommentar</h1>
<form action="\cgi-bin\comments.pl" method="post">
<p>Name:<br><input size="40" maxlength="40" name="AnwenderName"></p>
<p>Text:<br><textarea rows="5" cols="50" name="Kommentartext"></textarea></p>
<p><input type="submit" value="Absenden"></p>
</form>
</body>
</html>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
41 © 06-11-12
7.3.1 CGI und Perl
„
Code des Perl-Skripts (comments.pl):
#!C:\Programme\Perl\bin\Perl.exe
Pfad zum Perl-Interpreter
use strict;
use CGI::Carp qw(fatalsToBrowser);
HTML-Ausgabe
Parameterübergabe
Standardeingabe einlesen
read(STDIN, my $Daten, $ENV{'CONTENT_LENGTH'});
my @Formularfelder = split(/&/, $Daten);
Daten in einzelne
my ($Feld, $Name, $Wert);
Elemente trennen
my %Formular;
foreach $Feld (@Formularfelder) {
Schleife (für jedes Feld)
(my $Name, my $Wert) = split(/=/, $Feld);
$Wert =~ tr/+/ /;
$Wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$Wert =~ s/</&lt;/g;
$Wert =~ s/>/&gt;/g;
Kodierte Daten in lesbaren
$Formular{$Name} = $Wert;
Text umwandeln
}
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">', "\n";
print "<html><head><title>CGI-Feedback</title></head>\n";
print "<body><h1>CGI-Feedback vom Programm
Erzeugen der HTML-Datei
<i>comments.pl</i></h1>\n";
print "<p><b>Name:</b> $Formular{AnwenderName}</p>\n";
print "<p><b>Kommentartext:</b> $Formular{Kommentartext}</p>\n";
print "</body></html>\n";
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
42 © 06-11-12
7.3.1 CGI und Perl
„
Plattformlauffähigkeit:
Š Perl ist sowohl auf Windows wie auch auf Unix basierenden
Systemen lauffähig.
Š Der Interpreter ist sowohl bei IIS, wie auch bei Apache problemlos
integrierbar.
„
Die häufigsten Kombinationen sind:
System
Webserver
Schnittstelle
Windows
IIS
ISAPI
Windows
Apache
CGI
Linux/UNIX
Apache
Apache-Modul
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
43 © 06-11-12
7.3.1 CGI und Perl
„
Vorteile von Perl:
Š Kostenlos für verschiedene Plattformen erhältlich.
Š Objektorientierte Programmierung möglich.
Š Erweiterbarkeit mit C-Code. C-Code in Perl-Code übersetzen.
Š Geschwindigkeit: Obwohl Perl eine interpretierte Sprache ist, leidet
die Leistungsfähigkeit nicht, da der Perl Interpreter effizient arbeitet
und da viele Module auf kompiliertem C-Code basieren.
Š Es sind viele fertige Skripts frei erhältlich, die nur noch an die
eigenen Bedürfnisse angepasst werden müssen.
„
Nachteile von Perl:
Š Perl wurde nicht explizit für Webanwendungen entwickelt und führt
darum oftmals zu umständlichen und unübersichtlichen Skripten.
Š Der HTML-Code muss im Perl-Skript generiert werden. Perl bietet
keine Möglichkeit, HTML Schablonen zu benutzen, welche auch
von Laien geändert werden können.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
44 © 06-11-12
7.3.1 CGI und Perl
„
Weitere Informationen zu CGI und Perl im eLearning-Tutorial zu Perl /
CGI.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
45 © 06-11-12
7.3.2 PHP
„
Personal Homepage (PHP):
Š PHP steht für Personal Homepage oder auch PHP Hypertext
Preprocessor.
Š PHP ist eine serverseitig interpretierte, in HTML eingebettete
Skriptsprache. PHP ist eine prozedurale Sprache mit
objektorientierten Erweiterungen. Seit Version 5 unterstützt sie
auch eine vollständige Objektorientierung.
Š PHP ist als Open Source frei erhältlich. Zusätzlich gibt es für PHP
sehr umfangreiche Bibliotheken vordefinierter Funktionen.
Š PHP ist als Modul einfach auf Webservern integrierbar und bietet
oftmals zusätzlich eine umfassende Datenbankunterstützung (z.B.
XAMPP).
Š PHP eignet sich sehr gut für mittelgrosse Web-Lösungen, ist recht
einfach zu erlernen und kann stellt eigentlich die bessere
Alternative zu CGI / Perl dar.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
46 © 06-11-12
7.3.2 PHP
„
Funktionsweise von PHP:
STDIN
STDOUT
Request *.php
WebServer
Client
PHP-Modul mit
PHP-Schnittstelle
Response *.php (html)
Server-Betriebssystem
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
47 © 06-11-12
7.3.2 PHP
„
Ablauf:
1. Eingabe von Daten in ein Formular
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
48 © 06-11-12
7.3.2 PHP
„ Ablauf:
2. Anzeigen der Daten auf einer neuen HTML-Seite
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
49 © 06-11-12
7.3.2 PHP
„
Code HTML-Dokument (formular.htm):
Pfad zum PHP-Skript
Art der Parameterübergabe
<html>
<body>
Bitte tragen Sie Ihre Adresse ein, und senden Sie das Formular ab:
<form action = "programm.php" method = "post">
<input name = "nachname"> Nachname <p>
<input name = "vorname"> Vorname <p>
<input name = "strasse"> Straße <p>
<input name = "plz"> PLZ <p>
<input name = "ort"> Ort <p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
50 © 06-11-12
7.3.2 PHP
„
Code PHP-Skript (programm.php):
<html>
<body>
<?php
echo
echo
echo
echo
echo
?>
</body>
</html
© Prof. Dr. Rolf Dornberger
PHP Start-Tag
"Vielen Dank, $vorname $nachname <br>";
"Wir haben Ihre Adresse<br>";
Ausgabe der
"$strasse <br>";
Parameter
"$plz $ort <br>";
"gespeichert";
PHP Ende-Tag
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
51 © 06-11-12
7.3.2 PHP
„
Plattformlauffähigkeit:
Š PHP ist sowohl auf Windows wie auch auf Unix basierenden
Systemen lauffähig.
Š Das PHP-Modul ist sowohl für IIS wie auch für Apache erhältlich.
„
Die häufigsten Kombinationen sind:
System
Webserver
Schnittstelle
Windows
Apache
CGI
Linux
Apache
Apache-Modul
Windows
IIS
CGI
Windows
IIS
ISAPI
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
52 © 06-11-12
7.3.2 PHP
„
Vorteile:
Š Im Gegensatz zu Perl, wurde PHP eigens für die Webentwicklung
entwickelt und ist somit einfacher in der Anwendung.
Š PHP ist auf Unix und auf Windows-Systemen lauffähig; Server sind
mit Modulen erweiterbar.
Š Der Code bleibt für den Client verborgen; das Ergebnis wird in
HTML geliefert.
Š Ist aufgrund der Strukturiertheit einfach zu erlernen.
Š PHP verfügt über umfangreiche Funktionsbibliotheken
Š XAMPP, LAMP, WAMP:
y Allianz aus Linux (OS), Apache (Server), MySQL (DB), PHP und Perl
y Ausschliesslich Open-Source-Produkte
y Unter Window, Linux oder beiden (X) lauffähig
„
Nachteile:
Š Performance als Skriptsprache geringer als beim Einsatz von WebContainer-Technologie, da PHP für jeden Programmdurchlauf neu
interpretiert werden muss.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
53 © 06-11-12
7.3.2 PHP
„
Weitere Informationen zu PHP und PHP mit MySQL im eLearningTutorial zu PHP / SQL.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
54 © 06-11-12
7.3.3 ASP und ASP.NET
„
Active Server Pages (ASP):
Š ASP wurde von Microsoft entwickelt und ist optimiert für den
Einsatz auf Microsoft Servern.
Š ASP ist im Gegensatz zu PHP und Perl keine Skriptsprache
sondern eine Laufzeitumgebung, in der Skriptsprachen verwendet
werden können.
Š Meist verwendet ASP VB-Skript (VBScript) als StandardSkriptsprache (aber auch JavaScript oder Perl kann verwendet
werden), das direkt in den HTML-Code eingebettet wird.
Š ASP hat ähnliche Anwendungsgebiete wie PHP, ist aber für den
Einsatz auf dem Microsoft Webserver IIS (Internet Information
Server) optimiert.
Š ASP eignet sich für mittelgrosse bis sehr komplexe Anwendungen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
55 © 06-11-12
7.3.3 ASP und ASP.NET
Funktionsweise von ASP:
Request *.asp
WebServer
Client
ISAPI
„
ASPProzessor
Response *.asp (html)
Server-Betriebssystem
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
56 © 06-11-12
7.3.3 ASP und ASP.NET
„
Internet Server Applications Programming (ISAPI):
Š ISAPI stellt die Schnittstelle zwischen Webserver und
Skripsprachen-Interpreter dar (analog zu CGI).
Š ISAPI wurde von Microsoft entwickelt und verwendet eine
dynamische Objekt-Bibliothek (asp.dll).
Š ISAPI unterscheidet sich zu CGI in zwei wesentlichen Punkten:
y Die asp.dll muss bei mehreren gleichzeitigen Anfragen nur einmal
geladen werden. CGI hingegen startet für jede Anfrage einen eigenen
Prozess, daher kann der Speicherbedarf rasch ansteigen
(Performance).
y ISAPI verwendet den gleichen Speicherbereich wie der Webseerver
selbst. Dadurch kann die ISAPI-Schnittstelle den Server zum Absturz
bringen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
57 © 06-11-12
7.3.3 ASP und ASP.NET
„
Ablauf:
1. Ausgabe von Daten aus einer Datenbank
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
58 © 06-11-12
7.3.3 ASP und ASP.NET
„
Code ASP-Dokument (db.asp):
Verwendete Skriptsprache
<%@Language=VBScript %>
<%
Verbindungsobjekt erstellen
SET con = Server.CreateObject("ADODB.Connection")
con.Open "DSN=TESTDB"
Verbindung öffnen
SET rs = con.Execute("SELECT * FROM TNamen")
SQL ausführen
%><TABLE BORDER=1>
<TR>
<TD>ID</TD>
<TD>Vorname</TD>
1. Zeile
<TD>Name</TD>
</TR>
<%
DO UNTIL rs.EOF
%><TR>
<TD><%=rs("Id")%>&nbsp;</TD>
Schleife:
<TD><%=rs("Vorname")%>&nbsp;</TD>
<TD><%=rs("Name")%>&nbsp;</TD>
Werte in Tabelle abfüllen
</TR><%
rs.MoveNext
LOOP
%></TABLE><html>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
59 © 06-11-12
7.3.3 ASP und ASP.NET
„
Plattformlauffähigkeit:
Š ASP ist sowohl auf Windows wie auch auf Unix-basierenden
Systemen lauffähig, ist aber stark auf die Verwendung von
Microsoft-Produkten optimiert.
Š Erweiterungen, beispielsweise für Apache, sind nicht kostenlos
erhältlich.
„
Die häufigsten Kombinationen sind:
System
Webserver
Schnittstelle
Windows
IIS
ISAPI
Linux
Apache
ISAPI
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
60 © 06-11-12
7.3.3 ASP und ASP.NET
„
Vorteile:
Š Sehr gute Integration der Microsoft-Produkte.
Š Einfache Webentwicklung durch ASP-Zusatzmodule.
Š HTML Code kann in ASP-Skripten eingebunden werden.
Š ASP unterstützt VBScript und JavaScript.
Š VBScript und JavaScript kann schnell erlernt werden, da kein
Wissen über den internen Aufbau des Betriebsystems benötigt wird
und die Syntax leicht verständlich ist.
„
Nachteile:
Š ASP ist eine Technologie von Microsoft, die vorzugsweise auf
Microsoft Windows Plattformen verwendet wird. Zwar gibt es
Drittanbieter, welche ASP für andere Plattformen anbieten, jedoch
können diese Anbieter keine vollständige Kompatibilität
garantieren.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
61 © 06-11-12
7.3.3 ASP und ASP.NET
„
ASP.NET:
Š ASP.NET gehört zum .NET-Framework von Microsoft. Dabei
handelt es sich und eine Container-Technologie, in der die
Anwendungen vor der Ausführung kompiliert werden, um die
Performance mehrmaliger Webseiten-Aufrufe zu erhöhen.
Š Anwendungen werden in der .NET- Entwicklungsumgebung
geschrieben und verwenden meist die neue Programmiersprache
C# sowie neue Ansätze zur Sprach- und Plattformunabhängigkeit.
Š ASP.NET ist allerdings nicht 100% abwärtskompatibel zu ASP.
Beide Technologien können aber auch parallel eingesetzt werden.
Š ASP.NET nutzt Programmiersprachen (VB, C++, C#) und bietet
daher mehr Möglichkeiten als bisher die Skript-Sprachen. ASP.NET
wird dadurch aber auch schwieriger in der Anwendung.
Š ASP.NET eignet sich für grosse bis sehr komplexe Anwendungen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
62 © 06-11-12
7.3.3 ASP und ASP.NET
„
ASP vs. ASP.NET:
Š Trend geht weg von den in Funktionalitäten beschränkten
Skriptsprachen hin zu Frameworks wie .NET (oder J2EE).
Š ASP.NET findet insbesondere Verwendung für mittlere bis grössere
bis ganz grosse Webanwendungen.
Š ASP.NET als kommerzielle Technologie hat aber grosse
Konkurrenz mit dem Framework J2EE (Java 2 Enterprise Edition),
was aus dem Java-Umfeld kommt und open-source ist.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
63 © 06-11-12
7.3.3 ASP und ASP.NET
„
Weitere Informationen zu IIS, ASP und ASP.NET in den eLearningTutorials zu IIS / ASP.NET und ASP / ASP.NET.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
64 © 06-11-12
7.3.3 ASP und ASP.NET
„
Weitere Informationen zu .NET Framework im eLearning-Tutorial zu
.NET Framework .
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
65 © 06-11-12
7.3.4 ColdFusion
„
ColdFusion:
Š ColdFusion verwendet die ColdFusion Markup Language (cfml) und
wird direkt in den HTML-Code eingebettet.
Š ColdFusion stellt einen eigenen Applikations-Server zur Verfügung,
der einfache Möglichkeiten zur Realisierung von Webanwendungen
und Integration von heterogenen Systemen ermöglicht.
Š ColdFusion ist ein kommerzielles Produkt, das im Jahr 2000 durch
Macromedia übernommen wurde.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
66 © 06-11-12
7.3.4 ColdFusion
Funktionsweise ColdFusion (zusätzlich als Web-Applikationsserver):
Request
*.cfm
DB
WebServer
Client
Response
*.cfm (html)
ISAPI
„
CF-Application
Server
Server-Betriebssystem
COM/CORBA
Dateisystem
…
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
67 © 06-11-12
7.3.4 ColdFusion
„
Ablauf:
1. Eingabe von Daten in Formularfelder
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
68 © 06-11-12
7.3.4 ColdFusion
„
Ablauf:
2. Speichern der eingegebenen Daten in der Datenbank
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
69 © 06-11-12
7.3.4 ColdFusion
„
Code Eingabeformular (eingabeform.cfm):
<html><head>
<title>Beispiel_cfm</title></head>
<body>
<form action="eingabeaction.cfm" method="POST" >
<table border="0" cellpadding="5" cellspacing="0"
width="725">
<tr>
<td>ID</td>
<td> <input type="text" name="Id" size="20"> </td>
</tr>
<tr>
<td>Vorname</td>
<td> <input type="text" name="Vorname" size="20">
</td>
</tr>
<tr>
<td>Name</td>
<td> <input type="text" name="Name" size="20"> </td>
</tr>
</table>
<p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</p></form>
</body></html>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
Übergabemethode,
Aufruf des Skripts
Text- und Eingabefelder
in der Tabelle
70 © 06-11-12
7.3.4 ColdFusion
„
Code Verarbeitungsdatei (eingabeaction.cfm):
<CFQUERY NAME="testquery" DATASOURCE="TESTDB">
INSERT INTO TNamen (
Id, Vorname, Name
) values (
'#form.id#',
'#form.vorname#',
'#form.name#'
)
</CFQUERY>
„Datenbankmanagement“
Wird vom ApplikationsServer übernommen
SQL-Abfrage
Vielen Dank, Ihre Angaben wurden erfasst!
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
71 © 06-11-12
7.3.4 ColdFusion
„
Plattformlauffähigkeit:
Š Der ColdFusion-Server ist sowohl auf Windows wie auch auf Unixbasierenden Systemen lauffähig
„
Die häufigsten Kombinationen sind:
System
Webserver
Schnittstelle
Windows
IIS
ISAPI
Linux
Apache
CGI
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
72 © 06-11-12
7.3.4 ColdFusion
„
Vorteile:
Š Einfach erlern- und anwendbar
Š Viel Funktionalität wird in den Applikations-Server ausgelagert
Š Gute Integration von heterogenen Umgebungen
Š Webbasierte Administration
Š Gute Integration in die Produkte von Macromedia (Daher gute
Entwicklungsumgebung)
„
Nachteile:
Š ColdFusion ist im Gegensatz zu Perl, PHP und JSP nicht frei
erhältlich.
Š Teures Webhosting, daher nicht geeignet für kleine WebApplikationen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
73 © 06-11-12
7.3.5 JSP und Servlets
„
Servlets:
Š Servlets bzw. Java-Servlets sind serverseitige Java-Komponenten,
die in der Java-Virtual-Machine auf dem Server ausgeführt werden.
Š Servlets erlauben die Nutzung von serverseitigem Code (im
Allgemeinen Java) und stellen dazu spezielle standardisierte
Schnittstellen (APIs) für den Zugriff auf den serverseitigen Code zur
Verfügung.
Š Es stehen die vollen Java-Funktionalitäten zur Verfügung, die damit
den Zugriff des Webservers auf bestimmte Anwendungsserver
(Web-Applikationsserver) ermöglichen.
Š Servlets sind sehr effizient und eignen sich für grosse bis sehr
grosse und komplexe Webanwendungen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
74 © 06-11-12
7.3.5 JSP und Servlets
„
Java Server Pages (JSP):
Š JSP funktioniert ähnlich wie PHP. Der JSP-Code wird in HTMLSeiten eingebunden und vor der Übermittlung an den Client
ausgeführt.
Š JSP-Tags werden beim ersten Zugriff auf eine JSP-Seite in ein
Servlet umgewandelt. JSP erlaubt ausserdem die direkte
Verwendung von Java-Code (so genannten Scriptlets) im HTMLSkript.
Š Java-Servlets und JSP ermöglichen die Trennung von Präsentation
und Applikationssteuerung:
y JSP übernehmen die Präsentation in der HTML-Seite.
y Java-Servlets bilden die eigentliche Applikation auf dem Server.
Š JSP sind eine sinnvolle Erweiterung von Servlets, vermeiden aber
nicht immer das Programmieren der komplexeren und mächtigeren
Servlets.
Š Java-Servlets und JSP eignet sich für grosse und komplexe
Webanwendungen.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
75 © 06-11-12
7.3.5 JSP und Servlets
Funktionsweise von JSP / Servlets (zusätzlich als WebApplikationsserver):
Request
*.jsp
WebServer
Client
Response
*.html
JSP
DB
Servlet
„
ApplicationServer mit Java
Anwendungen
Server-Betriebssystem
COM/CORBA
Dateisystem
…
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
76 © 06-11-12
7.3.5 JSP und Servlets
„
Vorteile:
Š Sehr mächtiger Ansatz für den Zugriff auf Web-Applikationsserver.
Š Für die Anbindung bestehender (Java-)Software und der Zugriff auf
Datenbanken und sonstiger Anwendungen stehen diverse JavaKlassen zur Verfügung.
Š JSP erleichtern (für einfachere Anwendungen) die Erstellung von
Servlets.
Š Frei verfügbar, da open-source (im Gegensatz zu ASP.NET).
„
Nachteile:
Š Da JSP und Servlets sehr mächtig sind, erscheinen diese anfangs
auch komplex.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
77 © 06-11-12
7.3.5 JSP und Servlets
„
Weitere Informationen zu JSP und Servlets im eLearning-Tutorial zu
JSP / Servlets.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
78 © 06-11-12
7.3.6 XML
„
Extensible Markup Language (XML):
Š Im Umfeld von Web-Anwendungen spielt XML eine zunehmend
wichtigere Rolle.
Š XML ist ein Standard zur Generierung von maschinenlesbaren
Dokumenten in Form einer Baumstruktur. Ähnlich HTML arbeitet
XML mit Tags, die Daten einschliessen, wobei die XML-Tags aber
frei definiert werden können. Die gültigen Tags werden in einer
Dokumententypdefinition (DTD) festgeschrieben.
Š Extensible Stylesheet Language (XSL) definiert die
Darstellungsform der Daten in XML. (Die ist vergleichbar mit CSS in
HTML).
Š Die strukturierte Speicherung von Daten ermöglicht ein breites
Spektrum von Anwendungen für XML:
y Standardisierter Datenaustausch zwischen Software-Anwendungen
(für e-Commerce, e-Government, B2B usw.)
y Allgemeines Speicherformat für Dokumente (auch Office)
y Datenspeicherung (XML-Datenbanken)
y ...
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
79 © 06-11-12
7.3.6 XML
„
Extensible Markup Language (XML):
Ausschnitt aus XML-Dokument
Entsprechende Baumstruktur
<book>
<title>
genre
DTD zum XML-Dokument
autobiography
<price>
Autobiography of
Benjamin Franklin
7.99
<CHF/>
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
80 © 06-11-12
7.3.7 Web Services
„
Web Services:
Š Ein Web Service ist eine Software-Anwendung, die mit einem Uniform
Resource Identifier (URI) eindeutig identifizierbar ist und deren
Schnittstellen als XML-Artefakte definiert, beschrieben und gefunden
werden können. Ein Web Service unterstützt die direkte Interaktion mit
anderen Software-Agenten unter Verwendung XML-basierter
Nachrichten durch den Austausch über internetbasierte Protokolle. Web
Services spielen als Middleware im Bereich E-Business eine zunehmend
bedeutendere Rolle.
Š Client-Programme senden im Allgemeinen Anfragen an einen Web
Service und dieser antwortet mit der gewünschten Information. Von
vielen Seiten wird daher behauptet, dass Web Services für Rechner das
sind, was Webseiten für den Menschen sind. Auch wenn das nur ein Teil
der Möglichkeiten der Web Services beschreibt, ist diese Aussage
durchaus treffend. Web Services sind nicht für menschliche Benutzer
gedacht, sondern für Softwaresysteme, die automatisiert Daten
austauschen und/oder Funktionen auf entfernten Rechnern aufrufen.
[Quelle: www.wikipedia.de; Stand: 24.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
81 © 06-11-12
7.3.7 Web Services
Personenorientiertes versus applikationsorientiertes Web:
Browser
HTML
Applikation
XML
Webserver
Personenzentriert
Applikationszentriert
Präsentation
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
Interface
„
Geschäftslogik
82 © 06-11-12
7.3.7 Web Services
„
Funktionsweise Web Services:
Š Web Services orientieren sich an der Service Oriented Architecture
(SOA) und vereinen daher verteilte und objektorientierte
Programmierstandards und richten sich auf betriebswirtschaftliche
Lösungen im Internet.
Š Es lassen sich die Instanzen Konsument, Anbieter und Verzeichnis
identifizieren.
Š Der Anbieter veröffentlicht in einem Verzeichnis die Beschreibung seiner
Dienste. Der Konsument durchsucht das Verzeichnis und wählt den
gewünschten Dienst aus. Nachdem eventuell weitere Protokolldetails
ausgetauscht wurden, findet die dynamische Anbindung des
Konsumenten an den Anbieter statt. Der Konsument greift nun auf
Methoden zurück.
Š Erreichbar sind Web Services über eine eindeutige URI. Die verwendeten
plattformunabhängigen Standards sind in der Lage, entfernte
Methodenaufrufe beliebiger Plattformen zu dekodieren und einer
Anwendung weiterzuleiten. Auf diese Weise entsteht eine verteilte
Architektur. Die Kommunikation mit Web Services erfolgt über
Nachrichten, die über mehrere Protokolle transportiert werden können.
[Quelle: www.wikipedia.de; Stand: 24.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
83 © 06-11-12
7.3.7 Web Services
„
Funktionsweise Web Services:
Š Web Services bilden die drei wichtigsten Teile der Zusammenarbeit
zwischen Client und Server ab: Das Zusammenfinden, Binden und den
Datenaustausch.
Š Die Grundlage hierbei bilden vier Standards, die jeweils auf XML basieren
und in den zugehörigen Artikeln näher beschrieben werden:
y UDDI (Universal Description, Discovery
and Integration) als Verzeichnisdienst
zur Registrierung von Web Services. Es
ermöglicht das dynamische Finden des
Web Services durch den Konsumenten.
y WSDL (Web Services Description
Language) zur Beschreibung der
unterstützen Methoden und deren
Parametern für den Programmierer.
y SOAP (Simple Object Access Protocol
oder XML-RPC) zur Kommunikation. Hier
wird der eigentliche Aufruf gestartet.
[Quelle: www.wikipedia.de; Stand: 24.8.05]
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
84 © 06-11-12
7.3.7 Web Services
„
Konsequenzen Web Services:
Š Web Services stellen logische Einheiten dar, die von aussen
betrachtet quasi als Black Box erscheinen.
Š Über Web Services muss nicht nur bekannt sein, wo sie zu finden
sind (URI), sondern auch, wie ihre Schnittstelle für die Übergabe
von Parametern und Daten beim Aufruf aussieht.
Š Beim Aufruf von Web Services muss die Übergabe von Parametern
und Daten vorher in XML konvertiert und anschliessend die
Ergebnisse aus XML extrahiert werden.
Š Web Services können prinzipiell in jeder beliebigen
Programmiersprache implementiert sein, solange sie die
Schnittstellendefinitionen erfüllen.
Š Der Aufruf und die Übertragung der Parameter erfolgt über ein
standardisiertes Internet-Protokoll.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
85 © 06-11-12
7.3.7 Web Services
„
Anwendungsbeispiel Web Services:
Š Anbieter von Reisedienstleistungen bieten Informationen nicht nur
auf der Webseite, sondern auch als Web Service an.
Š Buchungen können ebenfalls über einen Web Service gemacht
werden.
Š Online-Reisebüro bündelt die Dienste und funktioniert als
allgemeiner Zugangspunkt für den Kunden.
OnlineReisebüro
Brokerdienste
Swiss
Fluggesellschaften
Helvetic.com
Autovermieter
...
Hotelanbieter
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
86 © 06-11-12
7.3.7 Web Services
„
Weitere Informationen zu Webservices im eLearning-Tutorial zu
Webservices.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
87 © 06-11-12
Lernziele
„
Funktionsweise von Client/Server-Systemen erklären und die wichtigsten
Server und deren Aufgaben aufzählen können.
„
Schichtenarchitektur und Kommunikation von c/s-Systemen beschreiben
können.
„
Web-Architekturen beschreiben können.
„
Die Funktionsweise von Webservern und deren Zusammenhang mit
client- und serverseitigen Web-Technologien erklären können.
„
Serverseitige Web-Technologien (beispielsweise CGI und Perl, PHP,
ASP und ASP.NET, ColdFusion, JSP und Servlets, Web Services)
beschreiben und deren Vor- und Nachteile untereinander abwägen
können.
© Prof. Dr. Rolf Dornberger
Internet und WWW: 7 Serverseitige Web-Technologien [WEB7]
88 © 06-11-12

Documentos relacionados