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