Keine größere Website funktioniert ohne dynamische Erzeugung von Webseiten mit Anbindung an eine Datenbank.
Nicht nur das globale Internet, auch das lokale Intranet (innerhalb von Firmen) profitiert von dieser Technik.
Damit beim Anwender ein üblicher Web-Browser reicht, werden dynamische Webseiten mit Programmmodulen auf der Webserver-Seite erzeugt.
Der HTTP-Server wird zum Web Application Server erweitert.
Wie werden serverseitige Programmmodule erstellt und im Webserver eingebunden? Verschiedene Technologien stehen zur Verfügung, jede hat ihre Vor- und Nachteile. |
|
CGI Perl |
Eine der frühesten und immer noch benutzten Techniken stellen per CGI-Schnittstelle (Common Gateway Interface) aufgerufene Perl-Skripte (Practical Extraction and Report Language) dar. Für kleine Anwendung ist dies der einfachste Weg und wird von jedem Webserver unterstützt. Bei größeren Anwendung kann es Performance-Probleme durch zu hohen Ressourcen-Verbrauch geben, da für jede Anfrage ein eigener Prozess gestartet wird. Dies lässt sich weitgehend mit FastCGI vermeiden, aber dann wird Multithreading komplizierter. |
PHP LAMP |
Mehr Geschwindigkeit, komfortablere Bibliotheken und wesentlich bessere Möglichkeiten zur Datenbankanbindung bietet PHP (PHP Hypertext Preprocessor). Besonders in der Open-Source-Bewegung findet die LAMP-Kombination große Verbreitung (Linux-Apache-MySQL-PHP). PHP ist eher leicht zu erlernen. Für bestimmte Projekte können einige Merkmale in dieser professionellen, aber sehr spezialisierten Sprache fehlen, wie zum Beispiel einfachere Kommunikation mit anderen Applikationen, bessere Debugging-Möglichkeiten und nicht-requestgetriebe Hintergrundprozesse für Application-Server-Dienste. Zu bedenken ist, dass die Programmiersprache nicht für andere Anwendungen eingesetzt werden kann. |
CFML ColdFusion |
Anders als CGI, Perl und PHP, die sehr preiswert oder kostenlos zu haben sind, ist CFML (ColdFusion Markup Language) eine kommerzielle Skriptsprache für den ColdFusion Application Server von Macromedia. Während Perl und PHP an C erinnern, zeigt CFML Verwandschaft zu HTML und ist deshalb eher bei Nicht-Programmierern und Gestaltern beliebt, die ihre Webseiten mit Tools bearbeiten wollen. |
MS-ASP VBScript ActiveX |
Eine bekannte Technik zur Einbettung von serverseitig ausgeführten Skripten in HTML-Seiten ist das von Microsoft propagierte ASP (Active Server Pages, nicht zu verwechseln mit Application Service Providing).
Das frühere ASP konnte im Prinzip mit verschiedenen Skriptsprachen kombiniert werden, wurde aber fast nur mit VBScript verwendet.
Fast alle Beispiele und Dokumentationen setzten VBScript voraus.
Da VBScript alleine nicht mächtig genug ist, wurde komplexerer Code in COM- oder ActiveX-Komponenten verlagert.
Die Microsoft-ActiveX-Library ist allerdings nur unter Windows mit dem Microsoft Internet Information Server (IIS) verfügbar. Im Nachfolger, dem neuen ASP.NET, kommt nicht mehr VBScript zur Anwendung. Es können theoretisch alle .NET-Programmiersprachen eingesetzt werden. In den üblichen Dokumentationen und Beispielen wird VB.NET (Visual Basic .NET) und C# verwendet. ASP.NET ist bislang auf Windows 2000/XP beschränkt. |
Java JSP Java EE |
JSP (JavaServer Pages) hat Ähnlichkeiten zu MS-ASP und ASP.NET und bietet vergleichbare Features.
Auch bei JSP besteht der Code aus normalem HTML-Code mit eingebetteten durch "<% ... %>" abgetrennten Code-Snippets (Schnipseln).
Aber bei JSP enthalten diese Snippets Java-Code.
Der gesamte Java-Sprachumfang samt Bibliotheken, JavaBeans- und EJB-/Java-EE-Komponenten steht zur Verfügung.
Java zählt zu den modernsten, gut strukturierten und auf heutige Belange zugeschnittenen Programmiersprachen mit guter Netzwerkfähigkeit sowie komfortabler und schneller Datenbankanbindung.
Einfache Anwendungen profitieren von der umfangreichen standardisierten Laufzeitumgebung und können z.B. mit dem kostenlosen Tomcat-Server realisiert werden.
Große Anwendungen können skaliert und um verteilte Komponenten, Enterprise-Funktionen, Transaktionsmanagement, Sicherheitsmechanismen, Load Balancing und Failover-Schutz erweitert werden.
JSP-Anwendungen laufen unverändert z.B. sowohl unter Linux + Apache als auch Windows + IIS sowie auf beliebigen Web Application Servern.
Alle größeren Application Server bieten mittlerweile Java/JSP/Java-EE-Unterstützung. Java ist besonders bei den großen Software-Herstellern (wie IBM, Sun, Oracle, SAP®) zur bevorzugten Programmiersprache geworden. |
Schnittstelle, Skriptsprache oder Application Server |
typische Betriebssysteme, Webserver, Datenbanken |
Programmierung | Vorteile / Nachteile |
CGI, Perl hoohoo.ncsa.uiuc.edu/cgi, www.perl.org, www.perl.com, www.cpan.org, scriptsearch.internet.com, www.perlscripts.de, www.perl-archiv.de, www.cgi-resources.com, www.worldwidemart.com/scripts |
Windows, Linux, Solaris. Apache, IIS, Netscape. |
CGI geht mit nahezu jeder Programmiersprache und auf fast allen Webservern. Meistens wird Perl oder auch C/C++ verwendet. Keine eingebaute Session-Unterstützung. |
CGI: Langsam und hoher Ressourcen-Verbrauch, da für jede Anfrage Neustart eines eigenen Prozesses. FastCGI: Schneller als CGI, aber Multithreading komplizierter. Apache-ePerl und -embPerl: Perl-Skripte eingebettet in HTML. Perl: Gute Textmanipulationsfunktionen, aber sonst gewöhnungsbedürftig, langsam und unzureichend. |
PHP (PHP Hypertext Preprocessor) www.php.net www.php-center.de www.phpbuilder.com www.php-homepage.de www.dynamic-webpages.de www.zend.com www.koehntopp.de/php Theis: PHP4 Krause: PHP |
Windows, Linux, Solaris. Apache, IIS. Oracle, IBM DB2, MS SQL, Sybase, MySQL, ODBC. |
PHP-Skript im HTML-Code. Erinnert an Perl, C und ASP. Präprozessor mit integrierter Skriptsprache. Session-Unterstützung. Erweiterbar mit Java und PHP-Modulen. |
Professionell, obwohl kostenlos (LAMP/WAMP) (unter Windows erst ab PHP v.4 schnell). Konsequent auf Webserver ausgerichtet und schneller als CGI+Perl. Gute Datenbankunterstützung. Geringe Einarbeitungszeit. Aber spezielle nirgendwo anders verwendbare Sprache. Kommunikation mit anderen Applikationen umständlich. Kein echter Application Server (requestgetrieben und ohne Hintergrundprozess). Weniger komfortables Debugging. |
ISAPI (Microsoft) | IIS. | C/C++-APIs. | Festlegung auf proprietäre Webserver-Schnittstelle. Unsicherer, da in C programmierte Applikation im Webserver-Prozess. |
ASP (Active Server Pages) ms-asp.htm www.asp.net msdn.microsoft.com/workshop/server msdn.microsoft.com/scripting www.activeserverpages.com www.aspdeveloper.net www.aspfaq.de www.aspgerman.com www.wdvl.com/Authoring/ASP wdvl.internet.com/Authoring/DB/ADO Krause: Microsoft Act. Serv. Pages |
Windows. IIS. OLE DB, ADO, ODBC. |
Das frühere ASP verwendete normalerweise VBScript (selten auch JScript), das neue ASP.NET meistens VB.NET und C#. Entwicklung mit MS Visual Studio (inkl. Debugger). Unterstützung auch in Macromedia Drumbeat und Dreamweaver Ultradev. |
Das im früheren ASP verwendete VBScript/JScript ist zu wenig leistungsfähig, deshalb komplexerer Code per COM- oder ActiveX-Komponenten (z.B. in C/C++). Proprietär, da Nutzung der MS-ActiveX-Library nur mit Windows + IIS. Wesentlich besser ist das neue ASP.NET mit Visual Basic .NET oder C#. |
JSP (Java Server Pages), Java Servlets jsp-einfuehrung.htm technetwork/java/javaee/jsp technetwork/java/javaee/servlet jakarta.apache.org/tomcat java.apache.org www.serverpages.com www.javaskyline.com javaboutique.internet.com www.javaworld.com |
Windows, Linux, Solaris. Tomcat, Apache, IIS, Netscape. JDBC, Oracle, IBM DB2, MS SQL, Sybase, MySQL, ODBC, XML. |
Java. Sessions mit Cookies oder URL-Rewriting. Erweiterbar mit JavaBeans, EJB, RMI und CORBA. Entwicklung mit Eclipse, NetBeans, Borland JBuilder, IBM WebSphere Studio. Unterstützung auch in Macromedia Drumbeat und Dreamweaver Ultradev. |
Einheitliche, zukunftssichere, leistungsfähige, moderne und gut strukturierte Programmiersprache Java. Leistungsfähige standardisierte Bibliotheken, einfache und schnelle Datenbankanbindung, gute Netzwerkfähigkeit, Komponententechnik, verteilte Applikationen, Enterprise-Funktionen. Unterstützung in allen größeren kommerziellen Application Servern, da hierfür optimale Sprache. Aber (z.B. mit dem kostenlosen Tomcat) auch für kleine Anwendungen geeignet. Sprache auch im Client verwendbar (falls z.B. HTML-Forms nicht ausreichen, etwa für JTable oder grafische Darstellungen). Gute Entwicklungsumgebungen (inkl. Debugger). |
Apache Tomcat | Windows, Linux u.a. | Webserver und JSP-Engine | Open Source, frei verfügbar, siehe auch jsp-einfuehrung.htm |
Mort Bay Jetty | |||
JBoss | Windows, Linux u.a. | Java, JSP, EJB, Java EE, XML | Open Source, frei verfügbar |
Oracle WebLogic Application Server | Windows, Linux, Solaris. Apache, IIS, Netscape. JDBC, Oracle, MS SQL. |
Professionelle vollständige Systeme für große Anwendungen inklusive Transaktionsmanagement, Skalierung, Load Balancing, Sicherheitsmechanismen, Failover etc. | |
IBM WebSphere Application Server | Windows, Linux, Solaris. IBM/Apache, IIS, Netscape. JDBC, IBM DB2, Oracle. |
||
Oracle
Application Server www.doag.de, www.orafaq.com |
Windows, Linux, Solaris. | ||
Sun ONE Application Server | Windows, Solaris, Linux. Apache, IIS. JDBC, Oracle. |
||
Apple WebObjects | Mac OS X Server, Windows. JDBC, Oracle, IBM DB2, MS SQL, Sybase. |
||
Macromedia ColdFusion Application Server | Windows, Linux, Solaris. Apache, IIS, Netscape. Oracle, IBM DB2, MS SQL, Sybase, OLE DB, ODBC, XML. |
CFML-Skript im HTML-Code (oder CFScript). CFML ähnelt HTML (aber ist sehr verschieden zu C). Erweiterbar mit Java, EJB, CORBA und COM. |