Texte: Webbasierte Systeme

Was ist so faszinierend an der webbasierten Programmierung? Nun, meiner Meinung nach sprechen viele Gründe dafür, sich mit der Web-Programmierung zu beschäftigen bzw. webbasierte Systeme einzusetzen.


Kostenlose bzw. kostengünstige Werkzeuge
Um eine Internet- bzw. Intranet-Plattform einzusetzen, sind software-seitig lediglich eine Skript- und Beschreibungssprache (PHP / HTML) und hardwareseitig ein Server, der als Webserver (Apache) konfiguriert ist, notwendig.
Aus der Sicht des Programmierers benötigt man lediglich einen vernünftigen Text-Editor und einen Rechner, auf dem man programmieren kann.

Im Gegensatz zu höheren Programmiersprachen (C, C++, Delphi usw.) sind für den Einsatz von PHP und dem Apache Webserver keine Lizenzgebühren o.ä. fällig, da beide Projekte frei zugänglich angeboten werden.

Was bei großen Systemen auf keinen Fall fehlen darf, ist ein Datenbank-Management-System (bspw. MySQL), aber auch das gibt es (sofern man nicht auf Support/Seminare angewiesen ist) kostenlos im Internet.

Um einen Webserver im Internet kommt man nicht herum. Für einfache Web-Systeme reicht bereits ein "kleiner" dedizierter Server aus, der mittlerweile für 30-40 Euro pro Monat erhältlich ist.
Bei einer größeren Internet-Plattform muss man etwas tiefer in die Tasche greifen, aber dafür werden ja auch die Einnahmen durch dieses System entsprechend höher sein.

Fehlt also nur noch ein Text-Editor (idealerweise mit Syntax-Highlighting), wie bspw. UltraEdit, dessen Preis-/Leistungsverhältnis mit ca. 35 Euro (Schüler-/ Studentenversion) noch in einem akzeptablen Rahmen liegt. Im Vergleich dazu bezahlt man bspw. für PHPEdit 75 Euro + Steuern.

Wer auch für den Editor kein Geld bezahlen möchte, wird sicher auf www.php-editors.com oder www.php4-forum.de fündig.



Einfache Programmierung
Die Skriptsprache PHP ist relativ einfach zu erlernen, da sie nicht ganz so restriktiv ist wie andere Sprachen. Dies hat auch Nachteile, denn dadurch kann sich schnell eine "schlampige" Programmierung einschleichen, da PHP viel erlaubt. Deshalb sollte man sich schon bei den ersten kleineren Projekten an gewisse Richtlinien der Programmierung halten, damit die eigenen Projekte nicht im Chaos enden.

Man kann also mit dem entsprechenden Know-How und der nötigen Disziplin guten und sauberen Code schreiben.



Datenbank-Unterstützung
Wie bereits geschrieben, darf eine Datenbank-Anbindung ab einer gewissen Projekt-Größe nicht fehlen. Auch hier ist die Web-Programmierung (wie ich finde) unschlagbar, denn es werden von PHP zahlreiche DBMS unterstützt. Durch eine geschickte Programmierung kann sogar schnell und unkompliziert auf ein anderes DBMS gewechselt werden.



Support in Foren
Im Vergleich zu anderen Sprachen (C, C#, Delphi,...) gibt es auch wesentlich mehr Foren, die sich mit der Programmierung von LAMP- bzw. WAMP-Systemen beschäftigen. (LAMP=Linux Apache MySQL PHP ; WAMP=Windows Apache MySQL PHP)

Auch die Bereitschaft, bei Problemen zu helfen, ist (das ist meine persönliche Erfahrung) wesentlich höher, denn hier herrscht ebenfalls der "Open Source"-Gedanke und viele Programmierer geben gerne Quellcodes (bzw. Auszüge davon) an andere Programmierer weiter, wenn man nett fragt.


Zugang vom Internet
Ein Vorteil, der aber auch gleichzeitig ein Nachteil sein kann, ist der Zugang zum System über das Internet. Auf der einen Seite lässt sich das System somit von jedem Ort der Welt (sofern ein Internet-Zugang vorliegt) aus administrieren bzw. Daten abrufen.
Auf der anderen Seite gilt dies auch für Angreifer, die ggf. einen Schaden anrichten und/oder Daten stehlen wollen.

Über entsprechende Sicherheitsmaßnahmen (Firewall, .htaccess, Login, SSL,...) lassen sich zwar solche Angriffe weitestgehend abwenden, aber die Vergangenheit zeigt leider, dass niemals ein 100%iger Schutz gewährleistet werden kann.



Systemumgebung
Wie oben bereits erwähnt, können webbasierte Plattformen sowohl unter Windows als auch unter Linux eingesetzt werden. Selbst die Portierung eines unter Windows programmierten Skriptes nach Linux (oder umgekehrt) ist unproblematisch, wenn man sich an einfache Programmierregeln hält und die "Eigenheiten" der Betriebssysteme kennt.



Einfache Wartung
Ein (wie ich finde) großer Vorteil gegenüber anderen Sprachen ist die serverseitige Ausführung der Programme. Das heißt: die Mitarbeiter-Rechner (Clients) sind "dumm" und benötigen lediglich den Browser, um ein Intranet-System zu nutzen. Alle daten-relevanten Vorgänge laufen nur auf dem Server ab.

Stellen wir uns bspw. eine Adressen-Verwaltung in einer Firma vor, auf die viele Mitarbeiter Zugriff haben (müssen). Von Zeit zu Zeit gibt es (wie bei fast jeder Software) Updates. Was passiert? Ein Administrator (bzw. eine authorisierte Person) muss an jeden Mitarbeiter-Rechner gehen und das Update installieren.

Zugegeben: durch ein geschicktes Update-System könnte man die Software so programmieren, dass sich die Clients die Updates selber laden und ausführen. (Siehe Windows-Update von Microsoft)
Aber erstens erfordert dies einen relativ hohen Programmieraufwand und zweitens besteht immer die Gefahr, dass solch ein automatisiertes System nicht so funktioniert, wie es sollte.

Folge: Das IT-System ist unbedienbar, Arbeitsprozesse bleiben unvollständig, Kunden können nicht beliefert werden, finanzielle Verluste,...
Ja, ich weiss, dass das der WORST CASE wäre, aber solche Szenarien sollte man sich immer vor Augen führen, denn in der Informatik-Welt herrscht nun einmal nicht immer "Friede, Freude, Eierkuchen".

Im Gegensatz dazu, wird bei einer serverseitigen Software (wie PHP) nur der Server mit einem Update versorgt. Die Clients bleiben völlig unberührt. Im schlimmsten Fall "stirbt" bei einem Update also nur 1 Rechner (der Server) und der sollte relativ schnell wieder online gebracht werden können bzw. stets ein Ersatz-Server zur Verfügung stehen.



Nur ein Browser
Wie im Abschnitt Einfache Wartung geschrieben, braucht man für die Ausführung eines Skripte als Client nur einen Browser.

Wie bei den Text-Editoren hat man auch hier die Qual der Wahl. Ob man nun den bereits in Windows integrierten Internet Explorer benutzt oder kostenlose / kostengünstige Alternativ-Browser wie Opera und Mozilla Firefox, ist prinzipiell egal.

Für den Programmierer ist hierbei wichtig, sich auf die genutzten Browser einzustellen. Zwar gibt es Standards, die die Programmierung von HTML/CSS eindeutig beschreiben, aber leider hält sich jeder Browser nur an seinen eigenen Standard.

Ich kenne keinen Browser, der sich exakt an alle Vorgaben des W3C hält. Aber zum Glück sind die Abweichungen (mittlerweile) relativ gering, so dass es immer einfacher wird, eine Seite im Browser X genauso im Browser Y anzeigen zu lassen.