HTML und das World Wide Web generell entwickeln sich in Riesenschritten weiter. In diesem Kapitel werden daher die wichtigsten Neuerscheinungen und Trends der jüngeren Vergangenheit und näheren Zukunft kurz vorgestellt. Diese sind interaktive Formulare, animierte Grafiken, die Programmiersprache Java, Datenbankanbindungen und die Übertragung von Sound und Video über das Web.
Formulare begleiten uns nicht nur im Leben außerhalb des Internet, sondern erfreuen sich auch in letzterem zunehmender Beliebtheit. Typische Anwendungsbeispiele sind Bestellformulare im Rahmen des Teleshopping (z. B. [108]), Fragebögen für OnLine-Meinungsumfragen (z. B. die aktuelle Umfrage ,,Politik & Cyberspace``, vgl. [123]) und Gästebücher, in denen von jedem Besucher einer Homepage ein Kommentar erbeten wird (z. B. das Gästebuch von Ö3, vgl. [104]).
Die einzelnen Elemente interaktiver Formulare können einfach in gewöhnliche HTML-Dokumente eingefügt werden, die einschlägigen tags müssen lediglich von <FORM> und </FORM> begrenzt sein. Das Start-tag muß zumindest zwei Attribute aufweisen: METHOD legt fest, in welchem Format die eingegebenen Daten an den Server übermittelt werden, und ACTION bezeichnet das serverseitige Programm, das die Daten weiterverarbeitet.
Das wichtigste tag innerhalb eines Formulars ist <INPUT> (ohne End-tag). Auch dieses verfügt in der Regel über mindestens zwei Attribute: NAME definiert den Namen für das jeweilige Eingabefeld, der eingegebene Wert wird anschließend gemeinsam mit diesem Namen an den Server übermittelt. TYPE legt die Form des Eingabefeldes fest; möglich sind dabei unter anderem einfache Textfelder, Checkboxes (Kontrollkästchen) und Radio Buttons (Optionsfelder). Weitere wichtige TYPE-Optionen führen zur Anzeige der Schaltflächen zum Übermitteln der Daten oder zum Abbruch der Formularbearbeitung.
Mit Hilfe von <TEXTAREA>...</TEXTAREA> wird ein größeres Feld zur Eingabe längerer Texte geschaffen. Darüber hinaus können Auswahllisten unter Verwendung der tags <SELECT>...</SELECT> erzeugt werden, die einzelnen Optionen werden dabei durch <OPTION> gekennzeichnet. Auch bei diesen tags sind verschiedene Attribute zu beachten (vgl. [38], Seite 192 ff und Seite 240 ff).
Der folgende HTML-Code und dessen Darstellung im Browser sollen die Umsetzung der genannten tags zur Formulargestaltung veranschaulichen.
<HTML> <HEAD><TITLE>Besucherstatistik</TITLE></HEAD> <BODY> <H2>Besucherstatistik</H2> <FORM METHOD="POST" ACTION="http://www.kings.at/cgi-bin/stat.exe"> <OL> <LI>Aus welchem Land haben Sie unsere Homepage besucht? <SELECT NAME="land"> <OPTION SELECTED>Österreich <OPTION>Deutschland <OPTION>Schweiz <OPTION>Sonstiges Land </SELECT> <P> <LI>Bitte teilen Sie uns den Namen Ihres Providers mit: <INPUT TYPE="TEXT" NAME="firma"> <P> <LI>Welche der folgenden Aussagen trifft auf Sie zu?<BR> <INPUT TYPE="CHECKBOX" NAME="check1">Ich habe diese Homepage zum ersten Mal besucht.<BR> <INPUT TYPE="CHECKBOX" NAME="check2">Ich bin über einen Suchdienst (z. B. Lycos) zu dieser Homepage gelangt.<BR> <INPUT TYPE="CHECKBOX" NAME="check3" CHECKED>Ich surfe mehrmals pro Woche im WWW.<BR> <P> <LI>Diese Homepage gefällt mir...<BR> <INPUT TYPE="RADIO" NAME="gefallen" CHECKED>ausgezeichnet <INPUT TYPE="RADIO" NAME="gefallen">gut <INPUT TYPE="RADIO" NAME="gefallen">mittelmäßig <INPUT TYPE="RADIO" NAME="gefallen">nicht <P> <LI>Möchten Sie uns sonst noch etwas mitteilen? <TEXTAREA NAME="sonstig" ROWS=2 COLS=60> Unser Vorschlag für Ihren Eintrag: Ich komme wieder! </TEXTAREA> <P> <INPUT TYPE="SUBMIT" VALUE="Fertig"> <INPUT TYPE="RESET" VALUE="Abbruch"> </OL> <P> Vielen Dank für Ihre Mitarbeit! </FORM> </BODY> </HTML>
Im Zusammenhang mit interaktiven Formularen besteht die Aufgabe des Browsers (vgl. Kapitel 3.2) lediglich darin, die einzelnen Eingabefelder am Bildschirm anzuzeigen und die Eingabe der Daten durch den Benutzer zuzulassen. Durch Drücken auf die entsprechende Schaltfläche werden die Inhalte des Formulars in kryptischer Form an den Server gesandt. Dort werden sie in der Regel durch ein entsprechendes CGI-Skript ,,entwirrt`` und weiterverarbeitet.
Die Abkürzung CGI steht für Common Gateway Interface und bezeichnet einen Standard zur Übertragung von Daten vom Client (Browser) zurück an den Server. Da durch das CGI nur die Schnittstelle, also die Bedingungen der Datenübertragung, geregelt ist, können die Skripts selbst in einer beliebigen Programmiersprache verfaßt sein. Besonders häufig werden zu diesem Zweck die Sprachen C und Perl eingesetzt. Für weitere Ausführungen zu dieser Thematik wird auf [38], Seite 279 ff verwiesen.
Häufig begegnet man mittlerweile im Internet kleinen Bildern, die ständig ihre Inhalte wechseln oder eine Bewegung des dargestellten Objekts vortäuschen. Diese - aus Gründen der Netzwerk-Leistungsfähigkeit heute meist noch ziemlich kleinen Grafiken - machen sich eine Eigenheit des im Internet weit verbreiteten GIF-Formats (Graphics Interchange Format) zunutze. In eine GIF-Datei lassen sich nämlich mit Hilfe eines Tools wie GIF Construction Set von Alchemy Mindworks mehrere Einzelbilder ,,einpacken``, die durch einige Steuerbefehle der Reihe nach angezeigt werden (vgl. [186], Seite 62). Somit entsteht für den Betrachter der gleiche Effekt wie bei einem Daumenkino.
Auf ähnliche Art und Weise lassen sich auch richtige Animationen (über den Bildschirm laufende Bilder), Laufschriften und tolle Ein- und Ausblendeffekte erzielen (vgl. [186], Seite 64 ff).
Die Entwicklung und Verbreitung des World Wide Web brachten es mit sich, daß nach weiteren Möglichkeiten zur Seitengestaltung gesucht wurde. Vor allem wollte man die Dokumente dynamischer machen, ohne jedoch ständig die ressourcenbelastende Verbindung zwischen Server und Client aufrecht erhalten zu müssen. Etwa zur selben Zeit war die US-Firma Sun Microsystems mit ihrem Projekt, eine universelle Programmiersprache für elektronische Haushaltsgeräte zu entwickeln, mangels Interesse der Hersteller gescheitert. So suchte man nach einer alternativen Verwendung der bereits entwickelten Sprache (vgl. [178], Seite 4 f).
Die logische Folge dieser Dilemmata ist die Programmiersprache Java, die heute bereits als ,,Esperanto des World Wide Web`` ([7], Seite 258) bezeichnet wird. Java steht in den Vereinigten Staaten als Synonym für das Grundnahrungsmittel aller Programmierer: Kaffee (vgl. [178], Seite 5). Die Sprache ist sehr eng an die weit verbreiteten Programmiersprachen C und C++ angelehnt, wodurch die Java-Programmierung rasch entsprechende Verbreitung im Internet gefunden hat.
Der entscheidende Vorteil von Java beruht aber auf deren Hardware-Unabhängigkeit. Gewöhnliche Computerprogramme sind für ein ganz bestimmtes Betriebssystem wie Windows, Macintosh OS oder Unix geschrieben und nur auf dieser Plattform ausführbar - Java-Anwendungen laufen auf jedem System. Dies wird dadurch erreicht, daß das Programm nicht unmittelbar in einen Maschinencode, sondern in eine Zwischenstufe, den sogenannten Bytecode übersetzt wird. Der Browser (siehe Kapitel 3.2) des Internet-Anwenders übernimmt schließlich die Aufgabe, den Bytecode auszuführen; d. h., er ,,spielt`` für das Java-Programm das Betriebssystem des Rechners (vgl. [7], Seite 258; [187], Seite 62 f). Diese Fähigkeit wird durch ein Zusatzmodul des Browsers (Java Virtual Machine genannt) zur Verfügung gestellt, das bereits fester Bestandteil des Netscape Navigators und des Microsoft Internet Explorers ist.
Java-Programme, die in eine HTML-Seite eingebunden sind, werden als Applets (Verkleinerungsform von Application) bezeichnet. Ein Applet wird zunächst mit einem entsprechenden Werkzeug wie dem Java Developer Kit (JDK) entwickelt und in den Bytecode übersetzt. Dieser wird anschließend ähnlich einer Grafik in das HTML-Dokument eingebunden, in diesem Fall allerdings mit dem <APPLET>-tag. An der betreffenden Stelle wird bei der Anzeige des Dokuments dem Applet ein Rechteck zur Verfügung gestellt, in dem dann Laufschriften oder kleine Animationen ablaufen. Darüber hinaus können ganze Benutzerschnittstellen ähnlich interaktiver Formulare programmiert werden (vgl. [7], Seite 259 und Seite 262; [206], Seite 50 ff).
Nur um eine Vorstellung zu vermitteln, wie ein Java-Applet tatsächlich aussieht, dient das folgende unkommentierte Beispiel (vgl. [38], Seite 405 f). Es zeigt das erste Programm, das man gewöhnlich beim Erlernen einer Programmiersprache schreibt: die Anzeige des Textes ,,Hello World`` am Bildschirm. Oben ist das eigentliche Java-Applet wiedergegeben, darunter wird dessen Einbindung in ein HTML-Dokument gezeigt.
// Hello.java import java.awt.Graphics; public class Hello extends java.applet.Applet { public void paint(Graphics g) { g.drawString("Hello World", 50, 25); } } <HTML> <HEAD> <TITLE>Java-Beispiel</TITLE> </HEAD> <BODY> Die Java-Ausgabe:<BR> <APPLET CODE="Hello.class" WIDTH=150 HEIGHT=35></APPLET> </BODY> </HTML>
Da der Umgang mit Java aufgrund der getrennten Programmierung, Übersetzung und Ausführung doch etwas kompliziert ist, wurde JavaScript gemeinsam von Netscape und Sun Microsystems entwickelt. JavaScript ist sehr stark an Java angelehnt, aber doch etwas einfacher in der Handhabung: JavaScript wird nämlich im Gegensatz zu Java direkt in die HTML-Seite eingebunden und ist dadurch mit der Browser-Funktion ,,View Document Source`` (siehe Kapitel 3.2.3) im Klartext lesbar. Aus diesem Grund wird JavaScript auch nicht als Alternative, sondern lediglich als Ergänzung zu Java angesehen (vgl. [207], Seite 75).
Das JavaScript-Programm wird im Head des HTML-Dokuments zwischen den tags <SCRIPT> und </SCRIPT> geschrieben. Damit der Code bei Browsern, die nicht JavaScript-fähig sind, nicht am Bildschirm angezeigt wird, muß er auskommentiert werden. Meist sind die Programme als Funktionen definiert, die erst durch einen Mausklick des Benutzers (z. B. auf einen Button) aktiviert werden ([8], Seite 90).
Das folgende abschließende Beispiel dient wiederum lediglich zur Veranschaulichung eines JavaScripts. Die dargestellte Funktion zeigt ebenfalls den Text ,,Hello World`` am Bildschirm an, aber erst nachdem der entsprechende Button gedrückt wurde.
<HTML> <HEAD> <TITLE>JavaScript-Beispiel</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function hello() { document.write("<H1>Hello World!</H1>"); } // --> </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE="button" VALUE="Zeige Text" OnClick="hello();"> </FORM> </BODY> </HTML>
Die Entwicklung der Tools zum Erstellen von Java-Applets geht einen ähnlichen Weg wie jene der HTML-Editoren. So sind bereits die ersten Produkte auf den Markt gekommen, mit deren Hilfe Java-Applets erstellt werden können, ohne eine einzige Zeile Code zu programmieren. Über eine grafische Benutzeroberfläche mit Paletten, Dialogfeldern und Anzeige der Verknüpfungen können schon recht ansehnliche Applets ,,zusammengebaut`` werden, auch wenn diese Verfahren noch in den Kinderschuhen stecken (vgl. [18], Seite 61 ff).
Im Zuge der zunehmenden Verbreitung des World Wide Web kommt es häufig vor, daß eine neue oder bestehende Datenbank mit dem Web verbunden werden soll. Einerseits wird so dem Benutzer die Abfrage von Daten ermöglicht, z. B. im Rahmen des Electronic Shopping, um Produktinformationen online zu erhalten. Andererseits sind die Benutzereingaben von interaktiven Formularen (vgl. Kapitel 8.7.1), also z. B. Bestellungen oder ausgefüllte Fragebögen, in einer Datenbank am Server zu speichern. Diese Aufgaben mußten bis vor etwa zwei Jahren ausschließlich mittels der Programmierung von entsprechend umfangreichen und vielfältigen CGI-Skripts gelöst werden.
Heute wird dem Betreiber eines World Wide Web-Servers diese Bürde durch die sogenannte Middleware abgenommen. Darunter versteht man Software, die die Verbindung zwischen dem Server und einer SQL-Datenbank herstellt (vgl. [203], Seite 33). Durch eine geschickte Mixtur aus automatisch generierten Programmen können Abfragen und Änderungsanweisungen an die Datenbank weitergeleitet und die gelieferten Ergebnisse sogar als HTML-Dokumente dargestellt werden (vgl. [30], Seite 48).
Für den Entwickler von HTML-Dokumenten äußert sich der Einsatz von Middleware gewöhnlich in Form von HTML-Spracherweiterungen, also zusätzlicher tags. Dadurch können Datenbankzugriffe unmittelbar in das Dokument eingebettet werden. Typische Produkte dieser Art sind Cold Fusion von Allaire Corporation oder web.sql von Sybase (vgl. [203], Seite 34 ff). Das folgende Beispiel zeigt eine mögliche Einbindung einer Datenbank-Abfrage mit einer Shareware-Middleware namens W3-mSQL. Dabei wird nach dem Verbindungsaufbau zur Datenbank ein bestimmter Name gesucht und anschließend im HTML-Dokument angezeigt. Zuletzt wird der Speicherplatz wieder freigegeben und die Verbindung geschlossen (vgl. [185], Seite 159).
<HTML> <HEAD> <TITLE>Middleware-Beispiel</TITLE> </HEAD> <BODY> <H1>Datenbankabfrage</H1> <! msql connect> <! msql database demo> <! msql query "SELECT name FROM adressen WHERE name='$suchwert'" ergebnis> <! msql print ergebnis "Der gesuchte Name ist @ergebnis.0"> <! msql free ergebnis> <! msql close> </BODY> </HTML>
Selbst diese wohl immer noch etwas kompliziert wirkende Programmierung kann durch entsprechende Tools vereinfacht werden: Erste Produkte bieten bereits die Möglichkeit, über eine visuelle Benutzerschnittstelle die automatische Generierung des HTML- und SQL-Codes zu veranlassen (vgl. [30], Seite 56 f).
Im Sinne des Multimedia-Gedankens sollten sich die im World Wide Web angebotenen Informationen nicht nur auf Text und Bilder beschränken. So ist es möglich, auch Audio, also Sprache und Musik, in ein HTML-Dokument einzubinden. Darüber hinaus können Video-Clips mit oder ohne Ton via WWW abgerufen werden.
Da es in beiden Fällen üblich ist, die Wiedergabe des Sounds bzw. des Videos erst durch Abruf durch den Benutzer zu starten, werden solche Dateien wie gewöhnliche Links (vgl. Kapitel 10 und im speziellen 10.7) behandelt. Erst wenn die hervorgehobene Textstelle angeklickt wird, werden die Daten vom WWW-Server übertragen und abgespielt. Die Einbindung von Sound wird also wie bei
<A HREF="sample.wav">Sound-Beispiel</A>
vorgenommen. Analog funktioniert das Einbetten von Video in das HTML-Dokument (vgl. [38], Seite 348 ff). In manchen Fällen möchte man den Leser der Information mit Hintergrundmusik beglücken. Dies wird durch das im folgenden Beispiel gezeigte tag erreicht, das im Head des HTML-Dokuments eingebunden werden muß und nicht allen Browsern bekannt ist:
<META HTTP-EQUIV=REFRESH CONTENT="0; URL=baksound.mid">.
Die Musikwiedergabe sollte in diesem Fall sofort nach dem Laden der Seite beginnen (vgl. [38], Seite 349).
Der Grund, warum sich bislang weder die Einbindung von Audio noch von Video wirklich durchgesetzt haben, liegt unter anderem in den verschiedenen und nicht genormten Dateiformaten. So kann man davon ausgehen, daß jeder Browser auf jeder Rechner-Plattform die gängigen Bildformate GIF und JPG darstellen kann. Nicht so jedoch bei Audio und Video, dort existieren für jedes Betriebssystem verschiedene Formate (vgl. [38], Seite 344 ff). Die folgende Tabelle zeigt, welche gängigen Dateitypen die beiden wichtigsten Browser unter Windows 95 abspielen können. Teils sind die entsprechenden Module als Zusatzprogramme (Plug-Ins) fix im Browser integriert (wie auch jene zur Bilddarstellung), teils müssen andere Anwendungen (Helper Applications) definiert werden, die dann vom Browser aufgerufen werden.
Tabelle 8.3: Sound- und Video-Formate bei Windows 95
Ein zweites großes Problem der Integration von Audio und Video ist die Größe der über das Netz zu übertragenden Dateien. Trotz zahlreicher Verfahren zur Verringerung der Dateigröße (Kompressionsalgorithmen) kann diese auch für wenige Sekunden Ton oder Bild schnell 100 Kilobytes übersteigen und damit Leitungen und Geduld des Benutzers erheblich belasten.
Eine Möglichkeit zur Lösung dieses zweiten Problems wird derzeit stark forciert: A/V Streaming, auch bekannt unter den Bezeichnungen RealAudio oder Real Time Multimedia (vgl. [121]). Das wesentliche Merkmal dieses Verfahrens ist, daß nicht die ganze Datei übertragen und erst dann abgespielt wird, sondern unmittelbar nach deren Aufruf schon der erste Ton ertönt. Dazu werden wiederum spezielle Dateiformate benötigt, die in der Regel auf einem eigenen (RealAudio-) Server in Zusammenarbeit mit dem Web-Server zur Verfügung gestellt werden. Auch der Browser des Benutzers muß durch eine entsprechende Helper Application ergänzt werden, was allerdings bei den aktuellen Versionen des Netscape Navigators und des Microsoft Internet Explorers kein Problem darstellt (vgl. [55], Seite 52 ff).
Da die beim Client eintreffenden Daten sofort gespielt bzw. angezeigt werden, muß trotz der knappen Leitungskapazität ein rascher und lückenloser Strom gewährleistet sein. Die logische Folge ist eine extreme Kompression der Daten, was sich natürlich negativ auf die Qualität des Sounds oder Videoclips auswirkt. Vor allem für den Bereich der Video-Streamer kann daher die aktuelle Marktlage folgendermaßen beschrieben werden:
,,If we were still listening to scratchy 78s and our motion-picture experiences were limited to Saturday afternoons at the cinema, streaming A/V for the Web would really be something. For the present, these new technologies are exciting more for their promise than for their capabilities`` ([55], Seite 59).
Trotzdem wird vor allem im Bereich des RealAudio derzeit unter dem Stichwort Radio-On-Demand viel experimentiert und geforscht. So wurde z. B. vor mehr als einem Jahr vom Institut für Datenverarbeitung in den Sozial- und Wirtschaftswissenschaften (idv) an der Universität Linz gemeinsam mit dem ORF-Landesstudio Oberösterreich (Radio OÖ) ein Projekt gestartet, in dem die Welt- und Landesnachrichten stündlich aktuell auf einem RealAudio-Server zur Verfügung gestellt werden. Mittlerweile erstreckt sich das online verfügbare Nachrichtenangebot bereits auf Washington, Hong Kong, Australien und Korea (vgl. [92]).
Mit der Echtzeit-Übertragung von Video wie etwa einzelnen Beiträgen zur ,,Zeit im Bild`` experimentiert das neueste Projekt des Österreichischen Rundfunks unter der Bezeichnung ORF On-line. Durch einen zusätzlichen News Kanal werden dabei aktuelle Nachrichten über das WWW verbreitet (vgl. [105]).