Rainer Schamel
Rainer Schamel



Powered by CMSimple & Fileadmin
Letzte Änderung:
14.01.2013

Rainer Schamel > Projekte > Softwareentwicklung > Web-Development

Web-Development

->Vier Praxisaufgaben eines Webprogrammierers
HTML
Internetseiten zu erstellen ist nicht schwer. Wirklich?
Naja, das kommt drauf an!

Die einfache Seite ist schnell erstellt und dann mit Javascript und Flash verfeinert.

Beispiel

LAMP
Doch mit steigenden Ansprüchen an die Funktionalität kann das Ganze schon ganz schön verzwickt und aufwendig werden. Der Kenner programmiert dann unter Linux, Apache, MySQL und mit PHP - oder per CGI. Also Server-Side!

Ich mache dies mit dem Aufruf von C-Programmen, die ich unter Linux compiliere und auf Linuxservern ablege. Die HTML-Seite kommuniziert dann mit dem C-Programm auf dem Server per CGI. Oder aber per PHP und Hilfsdateien bzw. Datenbanken.

Beispiel

Javascript
Javascript wird in den HTML-Code eingebettet und vom Browser interpretiert. So kann z.B. die Konfiguration des Browsers abgefragt werden. In dem Beispiel überprüft Javascript, ob ein Flashplugin installiert ist. Ist mindestens die Flashversion 4 vorhanden, so wird mit PHP per Zufall eine Flashdatei ausgesucht, vom Server übertragen und im Hintergrund abgespielt (hier ist es Musik).

Beispiel

Java
Mit Java habe ich Servlets geschrieben, die, wie JSP, auf dem Server von der Java Virtual Machine ausgeführt werden. Ansonsten sind im Zusammenhang mit der Java-Programmierung im Web Java-Applets gemeint, die mit der HTML-Seite übertragen und beim Betrachter ausgeführt werden.
Wollen Sie sich in Java testen?

Beispiel

Fortran und C
Für mich ist C die Königssprache, da ich sie am besten kann. In Fortran und C geschriebene Programme bestechen durch ihre Geschwindigkeit - unter Linux kann man mit den XForms, unter Windows mit der MFC und im Web per CGI graphische Oberflächen basteln. Zur Manipulation grosser Datenmengen, wie z.B. grosser Matritzen bei der Berechnung kontinuumsmechanischer Systeme im Bauwesen oder logistischer Aufgaben, eignen sich diese Sprachen besonders, da jeder einzelne Speicherplatz angesprochen, verschoben und freigegeben werden kann. In C-Programme kann man inzwischen problemlos Fortranbibliotheken und -subroutines - und damit die gut ausgetesteten Lineare-Algebra-Pakete - einbinden.
Web-Services
Web Services sind Anwendungen, die auf Webservern laufen und über Schnittstellen verfügbar sind. Das Protokoll dieser Kommunikation zwischen Client und Server ist HTTP. Übertragen werden spezielle XML-Daten, die nach SOAP, dem Simple Object Access Protocol, kodiert sind und der Server-Server-Kommunikation dient. Hierbei wird der anfragende Server als Client gestartet. Google stellt beispielsweise eine SOPA-API zur verfügung. Die Anfrage an Google kann z.B. ein PHP SOAP-Client bewerkstelligen. Somit kann man in das eigene Webprojekt Suchresultate von Google integrieren. Neben PHP können auch dotNet oder Java als SOAP-Client dienen.


Programmiersprachen und Datenbanken:
SPRACHEN
PHP
PHP ist eine Abkürzung, die sich auf sich selbst bezieht und bedeutet "PHP: Hypertext Preprocessor". PHP ist in HTML eingebettet und wird vom PHP-Modul des HTTP-Servers interpretiert, so daß die Ausgabe der PHP-Skripte direkt an der entsprechenden Stelle in der HTML-Seite geschieht. PHP kann vom Browser nicht deaktiviert werden. HTML-Eingabeformulare können auf der Serverseite verarbeitet und gespeichert werden. Für kleinere Projekte (z.B. Gästebuch, E-Mailversand, Aufruf serverseitiger Binärcodes, Netzwerkanwendungen, Datenbankanbindung) ist PHP ideal, bei grossen Projekten und Berechnungen hängt es davon ab, in welcher Sprache die benutztenb PHP-Funktionen selber programmiert sind.

PHP besitzt eine sehr grosse Funktionsvielfalt und unterstützt eine grosse Anzahl an Datenbanken. Dabei stehen alle benötigten Funktionen für die Datenbankoperationen direkt zur Verfügung und müssen nicht erst implementiert werden. Eine weitere wichtige Eigenschaft von PHP ist die Kommunikationsmöglichkeit über eine Vielzahl von Protokollen, u.a. IMAP, POP3 oder auch HTTP. Somit ist es z.B. möglich, direkt in PHP eine Mail zu erstellen und zu versenden. Falls ein benötigtes Protokoll nicht unterstützt werden sollte, so bleibt noch die Möglichkeit, direkt über Netzwerk-Sockets zu kommunizieren.

Die Skriptsprache PHP unterstützt eine objektorientierte Programmierung, zwingt aber nicht zu deren Verwendung. Es sind also Klassen und Objekte in PHP realisierbar, aber im Gegensatz zu z.B. Java kann man auf deren Verwendung auch komplett verzichten.

PHP ist selber erweiterbar, d.h. es lassen sich relatv leicht eigene Funktionen in C schreiben und als eigene PHP-Funktionen aufrufen. Und auch umgekehrt: Mithilfe des Pear-PHP-XML-Transformers lassen sich eigene Namespacehandler für XML Dokumente (z.B. XHTML) in PHP schreiben. Dazu muß benötigt man eine PHP-Klasse mit Standardmethoden und dem gleichen Namen wie der XML-Tag.

Die "Fangemeinde" und Anzahl der Aktiven ist sehr groß. Da PHP gekonnt mit Flash's ActionScript zusammenarbeitet, wird die Gemeinde der PHP-Supporter sicherlich noch um die "stylish people" wachsen.
Javascript
Javascript wird clientseitig vom Browser ausgeführt und besitzt umfangreiche Möglichkeiten zur Manipulation des Browsers (Zugriff auf das dargestellte Dokument, etc.). Es ist einfach zu programmieren, wird in die HTML-Seite integriert und vom Browser ausgeführt. Alle Daten müssen zunächst übertragen werden. Der User kann Javascript allerdings ausschalten. Geeignet für dynamische Seiten (optische Effekte).
Java
Java ist client- und serverseitig programmierbar, entweder als Applet (vom Client ausgeführtes Javaprogramm), Servlet/JSP (Erzeugung von HTML-Seiten auf der Serverseite) oder als eigenständige Applikation einsetzbar. Unabhängig von der Plattform ist es daher von allen Sprachen am flexibelsten einsetzbar. Es ist geeignet für Client-Server-Systeme und universell einsetzbar wegen einer umfangreichen Funktionsbibliothek (z.B. zur Programmierung komplexer graphischer Benutzeroberflächen, Netzwerkanwendungen, Datenbankanbindung). Für kleine Lösungen ist Java allerdings ungeeignet, da ein hoher Speicher- und Rechenaufwand (langsam vor allem beim Client) besteht. Es besitzt einen hohen Overhead bei der Entwicklung (objektorientiert) und Verteilung (in Dateien mit speziellem Format, getrennt von der eigentlichen HTML-Seite). Java wird im Browser in einem fest vorgegebenen Bereich der Seite ausgeführt, der Zugriff auf andere Bereiche der Seite ist nur mit Signaturen zu erreichen.
Vergleich von JSP mit PHP
JSP wird in Bytecode übersetzt, der auf der Java Virtual Machine ausgeführt wird und ist im Vergleich zum interpretierten Code (PHP) schneller. Die Trennung von HTML und Programmcode ist bei JSP besser gelöst als bei PHP, und damit bei umfangreichen Seiten übersichtlicher. In PHP lassen sich kleinere Lösungen einfach und schnell implementieren.
Vergleich von Applets mit Javascript
Javascript erlaubt umfangreichere Manipulationen des Browsers (z.B. Abfangen von Mausklicks auf der gesamten Seite; Applets dagegen ist nur der Zugriff auf einen genau definierten Bereich der Seite erlaubt). Javascript wird ohne Verzögerung ausgeführt, weil es in die Seite integriert ist. Bei der Verwendung von Applets müssen die Code-Dateien gesondert geladen werden. In beiden Sprachen kann der Benutzer des Browsers die Ausführung von Programmen unterbinden.


DATENBANKEN
Datenbanken werden eingesetzt, wenn Benutzeranwendungen über einen längeren Zeitraum strukturiert gespeichert werden sollen (in Form von Tabellen und Verweisen auf einzelne Tabellenzeilen). Auch einfachste Anwendungen wie Gästebücher, Adressbücher, etc. basieren oft auf einer Datenbank.
Oracle 8
- schnell
- grosser Funktionsumfang
- kostspielige Anschaffung
Postgres
- grosser Funktionsumfang
- langsamer als Oracle oder MySQL (je nach Anwendungsfall)
- kostenlos im Internet erhältlich
MySQL
- geringer Leistungsumfang, daher bei komplexeren Datenbeständen aufwendiger als Postgres oder Oracle
- kostenlos im Internet erhältlich
- einfache Handhabung durch kostenlose Administrationstools
- beherrscht inzwischen Transaktionen
SQLite
- ideal für VC++, da die Datenbank direkt in ein Projekt eingebunden werden kann
- kostenlos erhältlich
- SQLite ist eine C-Bibliothek, die bereits selber der Datenbankserver ist, d.h. es muß kein eigener Server gestartet werden
Access
- von Microsoft (Vor- oder Nachteil)
- Anbindung an PHP oder Java aufwendiger als bei den anderen Datenbanken
- Gestaltung der Dateneingabeformen mit Visual Basic sehr schnell zu bewerkstelligen

Datenbanken & Sprachen
Kleinere Datenbanken, die schon in Access vorliegen, können in Verbindung mit Visual Basic weiterentwickelt und ausgebaut werden. Access ermöglicht eine schnelle Eingabe der Daten, aber nicht per HTML-Formular.

Größere Projekte mit der Möglichkeit der Eingabe von Daten in HTML-Formulare, oder Projekte, die verlässlich und ohne Unterbrechungen über einen längeren Zeitraum laufen sollen, werden mit der Kombination PHP/MySQL oder PHP/Postgres entwickelt. Eine Folge von Abfragen, die alle zusammen durchgeführt werden müssen, können inzwischen auch bei MySQL in sog. Transaktionen zusammengefaßt werden.

Riesige Datenbestände lassen sich mit Oracle in Verbindung mit einer der Programmiersprachen PHP oder Java am besten bewältigen.

© Rainer Schamel Letzte Änderung: 14.01.2013