Für jeden Zweck das passende Script

Bei den Web-Scriptsprachen buhlen vier Technologien um die Gunst der Webprogrammierer.

Artikel erschienen in Swiss IT Magazine 2002/25

     

In seinen Anfangszeiten war das World Wide Web ein statisches Gebilde, bestehend aus fixen HTML-Seiten, die durch Hyperlinks miteinander verbunden waren. Doch je mehr das Web nicht nur bloss als Informationsplattform, sondern für interaktive Dienste eingesetzt wurde, desto weniger reichte diese statische Form aus. Für diese ersten Webanwendungen musste die Möglichkeit geschaffen werden, Inhalt situationsbezogen auszugeben und auch Eingaben - über Formulare - zu verarbeiten.




In der ursprünglichen Form wurden solche dynamischen Aufgaben mit Hilfe von CGIs gelöst, Programmen, die auf dem Server ausgeführt werden und abhängig von einer Eingabe eine bestimmte Ausgabe generieren. CGIs - die Abkürzung steht etwas irreführend für "Common Gateway Interface" - werden vom Webserver aufgerufen, der auch die generierten Informationen wieder an den anfragenden Browser weiterleitet. Der Aufruf eines CGI wird entweder durch das Abschicken eines Webformulars ausgelöst oder aber durch einen Link, der auf das Programm verweist. Programmcode und Webseite sind also strikte getrennt. Das hat zur Folge, dass das Resultat, meist wieder eine Webseite, vom GCI generiert werden muss. Wird nun aber der HTML-Code direkt vom Programm erzeugt, erschwert dies die Arbeit für die Webdesigner, da der Code meist direkt im Programm eingebettet ist und nicht separat mit einem HTML-Editor bearbeitet werden kann. Oft sind bei CGIs Seitengestaltung, Inhalt und Programmlogik also nicht klar getrennt, was den Aufwand für Anpassungen und Änderungen erhöht.


Scriptsprachen nicht mehr wegzudenken

Aufgrund der eingeschränkten Flexibilität haben klassische CGIs für dynamische Webseiten mittlerweile an Bedeutung eingebüsst. An ihre Stelle sind Scripts getreten, die ebenfalls auf dem Server ausgeführt werden, im Unterschied beispielsweise zu JavaScript, das im Browser des Benutzers abgearbeitet wird. Serverseitige Scripts sind üblicherweise direkt in eine Webseite eingebettet. Ruft ein Browser ein solches Dokument ab, wird dieses vom Webserver respektive der Scripting-Engine abgearbeitet. Daraus resultiert eine Webseite in reinem HTML- oder neuerdings auch XML-Format, die dann an den Browser zurückgeliefert wird.



Serverseitige Scriptsprachen sind auch eine Möglichkeit, Design, Inhalt und Programmlogik von dynamischen Webauftritten einigermassen klar zu trennen. Das Seitenlayout erfolgt wie gewohnt in einem herkömmlichen HTML-Editor. Auf diesem Weg kann der Webdesigner eine Vorlage gestalten, während der Programmierer die Scripts schreibt, mit denen der Inhalt in die Seite eingefügt wird. Dieser wiederum wird separat gespeichert, häufig in einer Datenbank. Dadurch entsteht eine saubere Trennung wenigstens zwischen Gestaltung und Inhalt, während das Seitenlayout und die Scripts, das eigentliche Programm, zwar separat erstellt werden können, danach aber zusammengefügt werden müssen.




Scriptsprachen sind heute im Web allgegenwärtig, und je stärker der Trend Richtung interaktive Webapplikationen zeigt, desto unverzichtbarer werden sie. Dies hat zu einem aktiven Wettbewerb unter verschiedenen Anbietern von Scripting-Lösungen geführt. Derzeit sind es vier Technologien, die den grössten Teil des Kuchens unter sich aufteilen: Active Server Pages (ASP) von Microsoft, ColdFusion von Macromedia, Java Server Pages (JSP) von Sun sowie die Open-Source-Scriptsprache PHP, wobei die Abkürzung für "PHP Hypertext Preprocessor" steht.




Vier Sprachen, vier Philosophien

Microsofts ASP steht genaugenommen nicht für eine einzelne Scriptsprache, sondern für die Redmondsche Implementation dynamischer Webseiten auf der Windows-Plattform. ASP ist eine Komponente des Internet Information Server (IIS) und wird mit diesem mitgeliefert. In der Grundausstattung werden zwei Sprachen unterstützt. Die weitaus am häufigsten eingesetzte ist VBScript, während es sich bei JScript um Microsofts Variante von JavaScript handelt. Aufgrund der Integration in den IIS beschränkt sich ASP auf die Windows-Plattform, während die anderen drei Vertreter auch für Linux und verschiedene Unix-Varianten verfügbar sind.



Dies gilt auch für ColdFusion, eine ursprünglich von Allaire entwickelte Middleware für dynamische Webseiten, die seit der Übernahme durch Macromedia unter dessen Namen weitergeführt wird. Das auf Java basierende Produkt bietet in der aktuellen MX-Version zum einen die Scriptsprache ColdFusion Markup Language (CFML), zum anderen direkte Interaktion mit Flash-basierten Front-Ends. Der ColdFusion MX for J2EE Application Server erlaubt zudem über einen entsprechenden Application Server den Zugriff auf Java-basierte Applikationen. Dies ist gleichzeitig auch zentraler Bestandteil von Suns JSP-Technologie, welche eine Art Schnittstelle zwischen Webseiten und Java-Applikationen darstellt. Während mit den anderen Scriptsprachen das eigentliche Programm direkt im Script geschrieben wird, dient der JSP-Code vor allem dazu, eine Funktion in einer Java-Applikation oder einer JavaBean aufzurufen und das Resultat auszugeben. Die zur Java 2 Enterprise Edition (J2EE) gehörende Technologie verfügt gegenüber den anderen Scriptsprachen also über eine weitere Trennung zwischen Design und Programmlogik.




Insbesondere bei Linux-basiertem Hosting geniesst die freie Scriptsprache PHP grosse Beliebtheit. Sie ist Bestandteil der als LAMP bezeichneten Architektur - Linux, Apache-Webserver, MySQL-Datenbank und eben PHP. Diese Sprache zeichnet sich zudem durch einen grossen Funktionsumfang aus, was wohl auch mit der Open-Source-Lizenz zusammenhängt: Ein Entwickler, der eine bestimmte Funktionalität benötigt, erweitert die Sprache einfach auf eigene Faust. Dadurch sind beispielsweise Funktionen entstanden für den Zugriff auf verschiedenste Datenbanken, für die Generierung von PDF-Dateien oder zur Erzeugung von Grafiken. PHP lässt sich am ehesten mit Microsofts ASP-Architektur vergleichen. Die Ausführung der PHP-Scripts übernimmt normalerweise direkt der Apache-Server mittels eingebautem Modul. Alternativ lässt sich die PHP-Engine auch unter Windows betreiben, beispielsweise zusammen mit dem IIS.



Über die Verbreitung der einzelnen Script-Technologien liegen keine genauen Zahlen vor. Auf der PHP-Website lässt sich immerhin einsehen, dass diese Sprache auf rund neun Millionen Domains eingesetzt wird. Das macht sie zum beliebtesten Modul für den Apache-Webserver, wie Security Space ermittelt hat. Von den untersuchten rund 500'000 Servern war im Mai dieses Jahres auf 43,7 Prozent das PHP-Modul installiert. Und eine online durchgeführte Umfrage von InfoWeek vom Januar letzten Jahres über den Einsatz einer Scriptsprache hat ergeben, dass unter den Antworten PHP mit rund 40 Prozent deutlich obenauf schwingt, gefolgt von ASP mit 27 Prozent. ColdFusion und JSP spielen dagegen mit neun respektive sechs Prozent nur eine untergeordnete Rolle. Dies mag auch daran liegen, dass sich kleinere Projekte mit ASP oder PHP mit geringerem zeitlichen oder finanziellen Aufwand realisieren lassen als mit dem kostenpflichtigen ColdFusion-Server oder den komplexen JSP.




Zugriff auf die Inhalte

Dynamische Webseiten beziehen ihre Inhalte üblicherweise aus Datenbanken. Der Zugriff darauf gehört demzufolge zu den wichtigsten Einsatzgebieten von Scriptsprachen. Die hierzu gewählten Wege sind bei den vier Anbietern unterschiedlich ausgefallen, von der Syntax her ausser bei JSP aber ähnlich zu programmieren. Der Zugriff auf eine Datenbank erfolgt bei ASP, ColdFusion und PHP über SQL-Befehle, während bei JSP die serverseitigen Java-Applikationen diese Aufgabe übernehmen.



ColdFusion setzt für den Datenbankzugriff neben ODBC auch auf JDBC (Java Database Connecitivity) und unterstützt dadurch alle Datenbanken, welche sich über die beiden Spezifikationen ansprechen lassen. Dazu gehören sowohl die grossen Flaggschiffe wie Oracle oder IBMs DB2 als auch das kostenlose MySQL, das sich für Webauftritte grosser Beliebtheit erfreut. ASP dagegen erlaubt den Zugriff auf alle Datenquellen, die ODBC (Open Database Connectivity) unterstützen. Darunter fallen Microsofts eigene Datenbanken Access und der SQL Server, aber auch Excel.




Eine äusserst breite Palette an Datenbanken lässt sich mit PHP nutzen. Die Scriptsprache bietet zum einen Befehle für den direkten Zugriff auf Datenbankserver von MySQL bis zu Oracle 8. Zum anderen unterstützt PHP den Zugriff via ODBC, so dass sich auch Datenbanken wie etwa Access einbinden lassen.




Handarbeit gefragt

Da der Programmcode von Scriptsprachen direkt in eine HTML-Seite geschrieben wird, eignet sich grundsätzlich jeder Texteditor für das Erstellen dynamischer Webauftritte. Heutige professionelle HTML-Editoren wie GoLive und DreamWeaver unterstützen die Programmierung von Scriptsprachen ebenfalls, indem sich entsprechende Seiten damit bearbeiten lassen. Macromedia hat die ColdFusion-Scriptsprache seit längerem in DreamWeaver integriert. Die früher hierzu benötigte UltraDev-Version wurde mit dem Erscheinen der MX-Ausgabe wieder zu einer einzigen Version von DreamWeaver zusammengefasst. Diese erlaubt es, CFML-Scripts etwa für Datenbankzugriffe ohne Programmierkenntnisse zu erstellen. Das beschleunigt die Entwicklung von Webanwendungen und reduziert gleichzeitig die Fehlerquellen und damit den Zeitaufwand für die Fehlerkorrektur.



Im Normalfall ist das Erstellen dynamischer Seiten aber mit viel Handarbeit verbunden. Entsprechende Editoren können dabei zwar helfen, doch die automatische Programmierung von Webanwendungen ist mit den hier vorgestellten Scriptsprachen immer noch Zukunftsmusik. Folglich werden Kenntnisse der entsprechenden Programmiersprache verlangt. Da ASP, CFSL und PHP aber ein ähnliches Konzept und eine ähnliche Syntax aufweisen, sollte immerhin der Wechsel von der einen zur anderen Technologie ohne den doch recht hohen Initialaufwand vonstatten gehen können. Programmierer, die sich in der einen Sprache auskennen, dürften den Umstieg auf eine andere ohne übermässigen Aufwand schaffen.





Der Zweck entscheidet

Obwohl sich diese vier Technologien konkurrenzieren und sich überschneidende Bereiche abdecken, kann man die Stärken und Schwächen für die geeigneten Einsatzgebiete schnell erkennen.



Für kompaktere Firmenauftritte im Internet werden häufig ASP oder PHP eingesetzt, dies, weil beide Technologien keine weiteren Lizenzgebühren verursachen und deshalb von Hosting-Anbietern ohne zusätzliche Kosten angeboten werden können. Die Wahl der Technologie wird dabei normalerweise durch die Plattform entschieden: Unter Linux wird PHP eingesetzt, unter Windows ASP. Letztere eignet sich vor allem in einem Windows-dominierten Umfeld und wenn die Daten sowieso im Access- oder Excel-Format vorliegen. Aufgrund der beschränkten Leistungsfähigkeit dieser Desktop-Applikationen ist bei grossen Datenmengen der Einsatz eines SQL-Servers angebracht. Und hier kann die Konkurrenztechnologie PHP in Kombination mit MySQL seine wohl grösste Stärke ausspielen. Da diese kostenlose Datenbank für viele Zugriffe optimiert ist, ist dieses Gespann gut geeignet für verkehrsreiche Sites, welche viele Lesezugriffe auf die Datenbank verzeichnen, aber die Kosten für Microsofts SQL-Server scheuen. Gegenüber ASP weist PHP zudem den Vorteil der Plattform-Unabhängigkeit auf. Der Webdesigner kann den Code unter Mac OS X lokal austesten, der Programmierer unter Windows die Scripts erstellen, und die Site wird auf einem Linux- oder Unix-Server gehostet.




ColdFusion dagegen zeichnet sich im Gespann mit DreamWeaver als komfortable Lösung auf, um ohne grossen manuellen Programmieraufwand dynamische Webseiten zu erstellen. Serverseitig läuft ColdFusion sowohl unter Windows als auch unter Linux und einigen Unix-Varianten. Dank der Möglichkeit der Version für Java-Application-Server, auf Java-Applikationen zuzugreifen, können ColdFusion-basierte Internetauftritte zudem in entsprechende Unternehmensanwendungen integriert werden. Und mit ClusterCATS bietet Macromedia darüber hinaus eine Clustering-Lösung an, mit welcher der ColdFusion-Server an gestiegene Anforderungen angepasst werden kann. Diesen Eigenschaften stehen allerdings die Lizenzgebühren der Software gegenüber, weshalb sich die Macromedia-Technologie auf dedizierten Servern und in komplexeren Webauftritten am wohlsten fühlt.



Am oberen Ende der Skala steht schliesslich JSP. Diese Technologie ermöglicht die klarste Trennung zwischen Design, Programmlogik und Inhalt. Da JSP eine eigentliche Schnittstelle zu Java-basierten Anwendungen bildet, liegt deren Einsatz dort auf der Hand, wo bereits Unternehmensapplikationen auf Java-Basis existieren. Da für die Entwicklung von JSP-basierten Webauftritten Java-Kenntnisse vonnöten sind, verlangt diese Technologie von den Programmierern auch den höchsten Lernaufwand. Für die meisten Unternehmen dürfte die Wahl der Scriptsprache folglich auf ASP oder PHP fallen, sofern nicht ohnehin eine Webdesign-Firma mit der Realisation beauftragt wird und diese ihre bevorzugte Technologie einsetzt.



Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Was für Schuhe trug der gestiefelte Kater?
GOLD SPONSOREN
SPONSOREN & PARTNER