LOG IN 20 (2000) Heft 1
Dynamische und
interaktive
Erweiterungen
im WWW
von Jürgen Müller
Interaktivität im WWW
Das WWW von heute ist noch zu statisch. Text und Grafik dienen der
Informationsvermittlung, bieten aber keine Möglichkeit zu echter Interaktion zwischen
Menschen. Zwar bietet das Internet all diese Möglichkeiten an, z.B. Live-Kommunikation
über Internet Relay Chat (IRC) oder öffentlichen Nachrichtenaustausch über Newsgroups,
doch unbedarfteren Anwendern sind diese Dienste bislang kaum zugänglich, weil sie oft
eigene Software und eine Menge zusätzliches Wissen erfordern.
Das heute absehbare Ziel ist, Live-Kommunikation und öffentlichen
Nachrichtenaustausch nahtlos ins WWW bzw. in die WWW-Browser-Software zu integrieren. Denn
Hypertext ist nicht nur elektronisch vernetzter druckreifer Text, sondern auch
vernetzte schnelllebige Information. Die heute noch so strenge Trennung
zwischen WWW, Newsgroups und Internet Relay Chat wird aus Anwendersicht verschwinden.
Unmittelbar relevante Texte und langfristig relevante Texte werden viel enger vernetzt.
Text und einfache Grafik bilden auch in Zukunft die Basis des WWW. Die
meisten Internet-Adressen werden nach wie vor statische HTML-Dateien sein, Webseiten mit
vernetzter Information. Doch die WWW-Projekte der Zukunft werden mehr interaktive Elemente
enthalten, die weit über heutige Gästebücher oder E-Mail-Verweise
hinausgehen. WWW-Projekte der Zukunft dürften alles enthalten, was heute Online-Dienste
wie T-Online oder AOL bieten: Information, Download-Möglichkeiten, Live-Kommunikation
(Chatten) und öffentlichen Nachrichtenaustausch. Homepages werden dadurch zu
Foren, Treffpunkten und Konferenzräumen, die nicht nur von statischen WWW-Seiten leben,
sondern auch von der Präsenz und der kommunikativen Lebendigkeit des Anbieters.
Auf der anderen Seite ist heute schon festzustellen, dass
Online-Dienste sich ihrerseits vollständig ins Internet integrieren und sich von anderen
WWW-Anbietern nur noch durch die Fülle der angebotenen Information und Kommunikation
unterscheiden, auch durch abgeschottete Bereiche für Mitglieder, aber nicht mehr durch
eine exklusive Oberfläche! Alle lesbaren Informationen werden auch bei diesen
Online-Diensten auf HTML basieren.
Bei der Gestaltung interaktiver Webseiten unterscheidet man die
Bereiche:
Serverbasierte Interaktivität:
Wenn Anfragen an Suchmaschinen gestellt oder Formulare im WWW ausgefüllt werden, dann
führt ein Server dieentsprechenden Aktivitäten aus. Der Client (PC des Benutzers)
übermittlet lediglich die Daten zum Server.
Clientbasierte Interaktivität:
Aus dem Internet werden vom Server Programme geladen und auf dem Client ausgeführt.
DHTML Dynamisches HTML
DHTML ist keine weitere Sprache im WWW und auch kein Tag
einer neuen HTML-Version. Es bezeichnet ein Konzept, das es ermöglicht, bereits geladene
Webseiten nachträglich zu verändern. Die dafür nötigen Bestandteile sind HTML,
JAVA-Script und sog. Style Sheets (CSS). Darüber hinaus wird noch das sog. Objekt-Modell
benötigt, eine Vermittlungsstelle für alle beteiligten Komponenten. In diesem Beitrag
wird ausführlicher auf JAVA-Script eingegangen.
Style Sheets gibt es seit der Version 4.0 von HTML. Mit dieser Version
wurde eine Trennung zwischen dem Inhalt und dem Aussehen einer Webseite vollzogen.
Formatanweisungen wurden als sog. Style Sheets in einen Extrateil ausgelagert, im
HTML-Code wird auf die möglichen Formate verwiesen. Dadurch werden größere Websites
schlanker und damit pflegeleichter. Mit den Style Sheets wurde weiterhin die
Positionierung von Elementen eingeführt, die sog. Layertechnik. Ein Layer kann sowohl
Grafiken als auch Text enthalten; seine genaue Position auf der Webseite kann festgelegt
werden. Durch zeitweiliges Unsichtbarmachen eines Layers und Einblenden anderer Layer
werden Animationen möglich.
Im Folgenden werden Konzepte zur Realisierung server- bzw. clientbasierter Interaktivität
näher vorgestellt.
Serverbasierte Interaktivität
Wenn man im WWW eine Suchdatenbank benutzt, Pizzas, CDs oder Bücher
bestellt, oder aber einen Zähler mit Zugriffszahlen sieht, dann stecken serverbasierte
Anwendungen dahinter, z.B.:
> Auswertungen und Formulare mittels CGI-Scripten,
> Datenbankabfragen,
> Active Server Pages.
CGI-Scripte
GCI (Abk. für Common Gateway Interface) das sind Programme, die
auf einem Server-Rechner im Internet liegen und bei Aufruf bestimmte Daten verarbeiten.
Die Datenverarbeitung geschieht auf dem Server. CGI-Programme können auf dem Server Daten
speichern, zum Beispiel, wie oft auf eine WWW-Seite zugegriffen wurde. Bei entsprechendem
Aufruf kann ein CGI-Programm gespeicherte Daten auslesen und daraus HTML-Code generieren.
Dieser dynamisch erzeugte HTML-Code wird an den aufrufenden WWW-Browser eines
Anwenders übertragen und kann dort individuelle Daten in HTML-Form anzeigen, zum Beispiel
den aktuellen Zugriffszählerstand einer WWW-Seite oder die bisherigen Einträge in einem
Gästebuch (s. Bild 1).
Die so genannte CGI-Schnittstelle muss von der WWW-Server-Software
unterstützt werden. Aus Sicht des Mieters von Speicherplatz auf einem WWW-Server steht
die CGI-Schnittstelle in Form eines bestimmten Verzeichnisses zur Verfügung. Meistens hat
dieses Verzeichnis den Namen cgi-bin. In diesem Verzeichnis können Programme abgelegt
werden, die CGI-Aufgaben übernehmen. Man sollte sich beim jeweiligen Provider erkundigen,
ob er eine CGI-Schnittstelle zur Verfügung stellt. Bei preiswerten oder gar kostenlosen
Homepage-Vermittlern wie T-Online, AOL usw. steht normalerweise keine CGI-Schnittstelle
zur Verfügung; das DFN (Deutsches Forschungsnetz) bietet mit Win- shuttle im Rahmen von
Schulen ans Netz CGI-Schnittstellen an.
Es gibt keine Vorschriften dafür, in welcher Programmiersprache ein
CGI-Programm geschrieben werden muß. Damit das Programm auf dem Server ausführbar ist,
muss es entweder für die Betriebssystem-Umgebung des Servers als ausführbares Programm
kompiliert worden sein, oder es muss auf dem Server ein Laufzeit-Interpreter zur
Verfügung stehen, der das Programm ausführt. Wenn der Server zum Beispiel ein
UNIX-Rechner ist, führt er C-Programme aus, die mit einem UNIX-C-Compiler zu einer
ausführbaren Datei kompiliert wurden. Wenn der Server ein Windows-NT-Rechner ist, können
CGI-Scripts auch EXE-Dateien sein, die mit 32-Bit-Compilern für C, PASCAL, Visual-BASIC
usw. erzeugt wurden. Die meisten heutigen CGI-Programme sind in der UNIX-Shell-Sprache
oder in PERL geschrieben. Die UNIX-Shell-Sprache wird von allen UNIX-Rechnern
interpretiert. Für PERL muß ein entsprechender Interpreter installiert sein.
Aufrufbarkeit von CGI-Programmen
Es kann jedes CGI-Programm aufgerufen werden, egal, auf welchem
Server-Rechner das CGI-Programm liegt. So können auch CGI-Programme auf fremden
Server-Rechnern genutzt werden, wenn deren Aufruf bekannt ist.
Um eigene Daten, etwa die Zugriffszahlen auf die eigenen WWW-Seiten
anzuzeigen, benötigt man entweder eigene CGI-Programme, oder man nimmt einen
öffentlichen CGI-Dienst in Anspruch.
Um Anbietern von WWW-Seiten, die sich mit CGI nicht auskennen oder kein
CGI zur Verfügung haben, CGI-Möglichkeiten zur Verfügung zu stellen, gibt es
mittlerweile viele öffentliche CGI-Dienste im WWW. Bei diesen Diensten muss man sich
registrieren lassen. Dafür bekommt man einen HTML-Code, der in eigenen HTML-Dateien
eingebaut werden kann, und der ein entsprechendes CGI-Programm auf dem Server-Rechner des
öffentlichen CGI-Anbieters aufruft. Im Infokasten auf dieser Seite sind Adressen im WWW
angeführt, auf denen es nähere Informationen dazu gibt.
Einige dieser Dienste sind kostenlos, andere kann man nur gegen Gebühr
in Anspruch nehmen. Die Gebühren sind jedoch meist sehr gering.
Cookies
CGI basierte Server-Applikationen haben allerdings ein Problem: Sie
können nicht direkt mit dem Client in Kontakt treten; der Client wiederum kann von sich
aus nicht erkennen, ob die Ausgabe direkt vom Server kommt oder das Resultat eines
Programmlaufes ist.
Wenn der Client die Ausgabe erhalten hat, ist das CGI-Programm bereits
wieder beendet und hat wenn nicht irgendwo der Programmlauf vermerkt wurde, keine
Erinnerung mehr an den letzten Aufruf.
Das wirft eine ganze Reihe neuer Probleme auf.
Ein Beispiel:
Eine Webseite verlangt die Eingabe eines Namens und eines Geburtstages.
Der Benutzer gibt nun versehentlich ein unmögliches Datum ein.
Da der Browser keine Möglichkeit hat, die Eingaben zu werten, werden
sie unverändert an den Server geschickt. Der Client wartet nun auf die Antwort des
Servers. Der Server startet die CGI-Applikation und erwartet die Ausgabe.
Die CGI-Applikation stellt fest, dass das Datum nicht identifizierbar
ist und sendet als Antwort eine Fehlermeldung und beendet.
Der Server schickt die Antwort unverändert und wertfrei an den Client.
Die Verbindung wird getrennt.
In diesem noch einfachen Fall genügt ein erneuter Aufruf der CGI-Applikation mit
korrigierten Daten, dennoch ist es offensichtlich, dass das Fehlen einer direkten
Verbindung zum Client, und damit zum Anwender, die Applikationen extrem komplizieren kann.
Ein ereignisgesteuerter Programmablauf, wie man ihn von der normalen
Applikationsentwicklung gewohnt ist, existiert nicht.
Eine Lösung kann das zeitweilige Ablegen von Daten in einem Cookie
sein. Cookies sind kurze Texte, die von einem Server auf dem Client abgelegt werden
können (siehe Bild 2, nächste Seite). Sie sind direkt mit einer URL verbunden und werden
beim nochmaligen Abruf der URL automatisch an den Server übertragen. Dort können sie von
CGI-Applikationen abgefragt werden. Cookies sind eine Netscape-Erweiterung und wurden von
praktisch allen Browsern übernommen.
Informationen zu CGI im WWW
Es gibt eine Fülle von Informationen rund um das Thema CGI im WWW. Die folgende
Verweisliste stellt eine kleine Auswahl ausführlicher Dokumentationen dar.
> http://www.innternet.de/kurse/html/homepage/html_go.html
> http://www.jmarshall.com/easy/cgi/german
> http://hoohoo.ncsa.uiuc.edu/cgi
CGI-Scripts als Free- und Shareware im WWW
Wer eine eigene CGI-Schnittstelle hat, aber nicht die nötige Geduld,
um sich selbst in die CGI-Programmierung einzuarbeiten, kann fertige CGI-Scripts aus dem
WWW holen. In der Regel müssen die Scripts noch auf die Umgebung des Servers angepasst
werden. Die Scripts sind jedoch in den meisten Fällen dokumentiert. Dabei wird genau
beschrieben, was Sie tzun müssen, um das Script auf Ihrem Server zum Laufen zu bringen.
Die meisten Angebote sind jedoch englischsprachig:
> http://www.worldwidemart.com/scripts
Zugriffszähler, Gästebuch, Nachrichtenforum, Kreditkartenkauf, Suchmaschine
usw. -
Freeware-Scripts in Perl von Matt Wright.
> http://www.cgi-perl.com
Viele Beispiele aus dem CGI/Perl-Kochbuch von Craig Patchett und Matthew
Wright.
Cookies bestehen aus folgenden Informationen:
Name: Name
Value: Wert
expires: Verfallsdatum
domain: Adressraum der Server, die das Cookie wieder lesen dürfen.
path: Nur über Seiten, die in diesem Verzeichnis oder Unterverzeichnissen
davon liegen, darf das
Cookie angefordert werden.
secure: Wenn gesetzt, darf das Cookie nur über verschlüsselte
Informationskanäle übertragen werden.
Beispiel:
Es soll festgestellt werden, ob ein Betrachter eine Seite schon einmal aufgerufen
hat. Dazu wird beim ersten Aufruf der Seite ein Cookie gesetzt. Dies muss vor dem
HTML-Kopf geschehen, d. h. am Anfang der Datei.
Dieser Befehl setzt ein Cookie mit dem Namen
mycookie auf den Wert schon besucht mit einem Verfallsdatum von 10 Tagen.
Lesen darf dieses Cookie jeder Server mit der Endung .de, allerdings nur aus Dateien, die
in einem Verzeichnis /test, oder Unterverzeichnissen davon liegen.
Datenbankanbindung und PHP
Aus vielen interaktiven Webseiten werden Informationen aus Datenbanken
geholt. Als Beispiel sei an dieser Stelle die Website http://www.terraserver.com/
angeführt, über die auf Basis des SQL-Servers von Microsoft Satellitenbilder der
Erde bis zu einer Auflösung von zwei Meter dargestellt werden können.
Solche Datenbanken können ebenfalls über Skriptsprachen ins WWW
eingebunden werden. In den vergangenen beiden Jahren hat sich PHP einen festen Platz unter
den Skriptsprachen erkämpft. PHP (Abk.: PHP Hypertext Preprocessor) ist eine
serverseitig interpretierte, in HTML eingebettete Skriptsprache. Die Syntax ist ähnlich
zu C, JAVA und PERL, erweitert durch PHP-eigene Möglichkeiten wie z.B. Kommandos zur
Integration von Datenbanken. PHP gibt dem WWW-Anwendungs-Entwickler einfach erlernbare und
gleichzeitig mächtige Werkzeuge zur Erstellung von Web-Seiten dynamischen Inhalts an die
Hand. PHP existiert sowohl für UNIX als auch für die Windows(95/98/NT)-Plattform,
beliebt ist die Integration von PHP als Modul in den Apache-Webserver.
Die Stärken der Skriptsprache liegen aber in der Datenbankanbindung.
Manche PHP-Entwickler behaupten, dass die Anbindung von Datenbanken noch nie einfacher als
mit PHP gewesen sei. PHP unterstützt die inzwischen wohl wichtigste Web-Datenbank MySQ,
aber auch Oracle, MS SQL-Server und Sybase-Datenbanken. Selbst der Zugriff auf
ODBC-Datenbanken ist möglich. So kann auch Microsoft ACCESS in eine Website eingebunden
werden. Für den professionellen
Einsatz ist wichtig, dass PHP XML unterstützt und dynamisch
PDF-Dateien erzeugen kann.
Deutschsprachige Informationen zu PHP sind verfügbar unter
http://www.php-center.de/ und
http://www.php-homepage.de/
Active Server Pages
Mit dem Internet Information Server 3.0 hat Microsoft die so genannte
Active-Server-Pages-Technologie (ASP) eingeführt. Auf Windows NT basierten Sites ist sie
heute die wichtigste Anwendungsumgebung. ASP erlaubt es dem Entwickler, HTML-Dokumente,
Skripts und ActiveX-Serverkomponenten zusammenzuführen. Aus der Kombination dieser
Elemente ergibt sich ein breites Spektrum an interaktiven Anwendungen. Die zugehörigen
HTML-Dokumente mit der Dateierweiterung ASP können problemlos von allen gängigen
Browsern verarbeitet werden.
ASP nutzt das Modell der verteilten Computersysteme, so wie man es im Internet oder einem
Intranet findet. Das Modell führt physikalisch verteilte Anwendungen logisch zusammen.
Diese Technik bezeichnet Microsoft als Distributed Component Object Model (DCOM).
ASP basiert auf einer symmetrischen Architektur: auf der einen Seite
der aktive Server und auf der andere der aktive Client. Scripting-Services auf beiden
Seiten stellen die Kommunikation zwischen den Objekten sicher. Als Skriptsprachen stehen
insbesondere VB-Script und JAVA-Script zur Verfügung. In der Praxis setzen Entwickler
überwiegend auf JAVA-Script. Für die Entwicklung von Serverkomponenten kann jede
beliebige Programmiersprache verwendet werden, beispielsweise C++, JAVA oder auch
Visual-BASIC.
MySQL
Das relationale Datenbank-Managementsystem (RDBMS) wurde von
der Firma T.c.X. DataKonsult in Schweden entwickelt. MySQL bietet eine leistungsstarke
Multi-User-, Multi-threaded-SQL-Datenbanklösung, die schnell, robust und einfach im
Gebrauch ist. MySQL wurde entwickelt, weil ein SQL-Server benötigt wurde, der sehr große
Datenbanken schneller handhaben konnte als damals vorhandene, kommerziell verfügbare
Lösungen. MySQL ist seit 1996 auf vielen Tausend Sites im Internet und in Intranets im
Einsatz und erfreut sich wachsender Beliebtheit. Dieses System ist prädestiniert zur
Beschleunigung bestehender ACCESS-Datenbanken. Die Kombination von ACCESS und MySQL
ermöglicht es, mit nur kleinen Änderungen in ACCESS die Datenbankabfragen um den Faktor
3-100 zu beschleunigen. Der Grundstock, um den MySQL herum gebaut wurde, ist eine Sammlung
von Routinen, die sich im täglichen Einsatz seit Jahren bewährt haben. Obwohl MySQL
dauernd weiter entwickelt wird, hat es zu jedem Zeitpunkt der Entwicklung stets
zuverlässig und stabil gearbeitet.
Links zu MySQ
> http://www.mysql.com
Die Heimat von MySQL.
> http://www2.rent-a-database.de/mysql
Deutsches Handbuch.
> http://mysql.com/documentation/
MySQL-Installationsanleitung in Deutsch.
> http://www.phpwizard.net/phpMyAdmin
Leistungsfähiges Verwaltungswerkzeug.
> http://phpbuilder.com
Informationen über die Zusammenarbeit von PHP und MySQL.
> http://www.creanet.de/support/addonhelp/database/mysql/accessodbccfg.htm
Anleitung zur Verwendung von MySQL-Datenbanken in Verbindung mit MS Access-Datenbanken.
> http://www.4t2.com/mysql
MySQL-Referenz in Deutsch.
Clientbasierte Interaktivität
Auch über den Client, also den Internet-Browser ist es
möglich, interaktive Webseiten zu erzeugen. Dazu gibt es mehrere Möglichkeiten:
- Verwenden von interaktiven Dateiformaten:
Audio- oder auch Videodaten, gespeichert in speziellen Dateiformaten, werden vom Browser
mittels sog. Plug-Ins abgespielt.
- Einbindung von JAVA-Script-Anwendungen:
Diese Sprache wurde eigens zu dem Zweck geschaffen, HTML-Autoren ein Werkzeug in die Hand
zu geben, mit dessen Hilfe sich WWW-Seiten optimieren und interaktiv gestalten lassen.
- Einbindung von VB-Script-Anwendungen:
Das Konkurrenzprodukt zu JAVA-Script von Micro- soft ermöglicht über die üblichen
Skript-Funktionen hinaus die Integration von Bausteinen anderer Microsoft-Anwendungen.
- Einbindung von JAVA-Anwendungen:
JAVA ist dazu geeignet, um Animationen, Simulationen, Echtzeitanwendungen, sowie
interaktive Anwendungen wie Guided Tours, Spiele oder Kalkulationsanwendungen zu
realisieren.
- Einbindung von ActiveX-Controls:
Diese Steuerelemente statten VB-Script-Programme mit besonderen Funktionen aus, sie lassen
sich da- rüber hinaus auch in andere Programme einbinden.
- Einbinden von multimedialen Präsentationen mit SMIL:
Mit der Skriptsprache SMIL können zeitbasierte multimediale Präsentationen im Web
angeboten werden.
Interaktive Dateiformate und Plug-Ins
Töne, Klänge, Musikstücke sowie Videos beleben eine Webseite. Sie
werden in speziellen Dateiformaten gespeichert (z.B. AVI-Dateien) und mit in den
Webbrowser integrierten Abspielprogrammen, so genannten Plug-Ins abgespielt.
Diese Plug-Ins gehören entweder zur Standardausstattung des Browsers (z.B. RealPlayer im
Internet-Explorer) oder sie werden nachträglich installiert (z.B. Acrobat Reader). Die
Interaktivität beschränkt sich auf das Auslösen, Anhalten und Wiederholen des
Abspielens der Datei.
Plug-Ins sind systemabhängig, da sie nur als ausführbares Programm
vorliegen. Dadurch können Plug-Ins prinzipiell jedoch alles machen. Es gibt Plug-Ins für
Sprachsynthese, Animation, Präsentation und zur Interpretation vieler applikationseigener
Datenformate, wie zum Beispiel MS PowerPoint oder Adobe Acrobat.
Ein Plug-In kann auch als Client für einen Server dienen, der direkt
mit diesem Plug-In kommuniziert. Auf diese Weise werden zum Beispiel zurzeit Online-Spiele
mit aufwändiger, bewegter Grafik versehen.
JAVA-Script
JAVA-Script ist kein Bestandteil von HTML, sondern eine eigene
Programmiersprache. Diese Sprache wurde jedoch eigens dafür geschaffen, HTML-Autoren ein
Werkzeug zur Optimierung von WWW-Seiten in die Hand zu geben.
JAVA-Script-Programme werden wahlweise direkt in der HTML-Datei oder in
separaten Dateien notiert. Sie werden nicht wie etwa JAVA-Programme
kompiliert, sondern als Quelltext zur Laufzeit interpretiert, also ähnlich wie
Batchdateien bzw. Shellscripts. Dazu besitzen moderne WWW- Browser wie Netscape oder
Microsoft Internet Explorer entsprechende Interpreter-Software.
In einer Programmiersprache wie JAVA-Script gibt es für Anfänger viele verwirrende
Elemente: Sonderzeichen, Variablen, Wenn-Dann-Anweisungen, Schleifen, Funktionen,
Methoden, Parameter, Objekte, Eigenschaften und anderes mehr. JAVA-Script ist trotzdem
recht leicht zu erlernen, weil es eine vergleichsweise einfache Sprache ist, bei der viele
Aufgabenbereiche einer großen Programmiersprache fehlen, z.B.
Arbeitsspeicherverwaltung oder Dateioperationen. Außerdem setzt JAVA-Script auf einer
bestimmten Umgebung auf, nämlich auf einer anzuzeigenden oder angezeigten WWW-Seite.
Ferner sollte man sich im WWW umsehen, ob es nicht schon frei
verfügbare JAVA-Script-Beispiele gibt, die das Problem lösen. Es ist immer besser, auf
einen Code zurückzugreifen, der sich in der Praxis bereits bewährt hat, als einen neuen
Code zu erstellen, dessen heimliche Tücken einem noch nicht bekannt sind. In
vielen Fällen genügt es, vorhandene JAVA-Scripts den eigenen Erfordernissen anzupassen.
Eine gute Einstiegsadresse für die Suche nach JAVA-Scripts ist das WWW-Angebot http:// acc.de.
Bei vorhandenen JAVA-Scripts muss man allerdings genau wissen, welche
Variablen oder festen Werte verändert oder welche Funktion ergänzt werden sollen.
Wird JAVA-Script für wichtige WWW-Seiten verwendet, sollten auf jeden
Fall mehrere Browser getestet werden.
Einbinden von JAVA-Script in Webseiten
Im Gegensatz zu HTML wird in JAVA-Script-Programmen strikt zwischen
Groß- und Kleinschreibung unterschieden. JAVA-Script-Code wird zwischen den tags
<script
> und </script> eingeschlossen und kann sowohl im
<head>-Teil als auch im <body>-Teil eines Dokuments vorkommen. Der Code im
<head>-Teil wird geladen, bevor der Rest der Seite geladen wird.
Im folgenden Beispiel wird eine Statusmeldung ausgegeben:
<html>
<head>
<title>Test</title>
<body>
<script language="Javascript">
document.write(<h1>Eine Status-Meldung mit JAVA-Script</h1>)
window.status="Eine spezielle Statusmeldung"
alert(Achtung! Hier ist etwas passiert.)
</script>
</body>
</html>
Ereignisse in JAVA-Script
Die Reaktion auf Ereignisse (event handling) ist von grundlegender
Bendeutung für Programme mit grafischen Benutzeroberflächen: Der Benutzer löst durch
Aktionen wie Mausklick oder Tastendruck bestimmte Ereignisse (Events) aus. Das Programm
muss in der Lage sein, auf das Eintreffen bestimmter Ereignisse mit der Ausführung
gewisser Aktionen zu reagieren. In JAVA-Script definiert man dazu sog. Event-Handler, wie
onClick oder onChange, mit deren Hilfe die gewünschte Aktion angestoßen wird.
Häufig stehen Event-Handler in einem HTML-Tag. Es ist aber auch möglich, sie direkt an
ein Objekt (z.B. document oder window) zu binden. Der vollständige Programmtext ist über
den LOG IN-Service verfügbar.
VB-Script
Die Software-Entwickler von Microsoft ließen es sich nicht nehmen,
eine eigene Sprache fürs Web zu entwerfen. Als Basis nahm Microsoft dazu eine schon
bestehende Programmiersprache aus dem eigenen Haus: das leicht erlernbare Visual-BASIC
(VB). Mit VB-Script lassen sich wie mit JAVA-Script beispielsweise Formularberechnungen
durchführen, benutzerdefinierte Homepages oder gar Online-Spiele erstellen. Ähnlich wie
bei JAVA-Script besteht der Quellcode eines VB-Script-Programms aus ASCII-Text. Die
Skripts werden von dem so genannten OLE-Scripting-Manager bearbeitet, der in den Internet
Explorer integriert ist. Netscape Navigator kann mit solchen Skripts jedoch nichts
anfangen.
Einbinden von VB-Script in Webseiten
Ein Programm in VB-Script wird fast genauso in eine HTML-Seite
eingefügt, wie ein JAVA-Script-Programm. Unterschiedlich ist nur die Angabe der
Skriptsprache, wie folgendes Beispiel zeigt:
<HTML>
<HEAD>
<TITLE>Kein Titel</TITLE>
<SCRIPT TYPE="" LANGUAGE="VBScript">
sub zeigedatum
jetzt = date
MsgBox Heute ist der &jetzt
end sub
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formular">
<INPUT TYPE="button" NAME="schalter" VALUE="Welcher Tag ist
heute?" onClick="zeigedatum">
</FORM>
</BODY>
</HTML>
Es wird das Attribut language auf den Wert VBScript geändert. Die Position des Skripts
innerhalb der HTML-Datei ist nicht zwingend vorgeschrieben, empfehlenswert ist allerdings,
das Programm in den Dateikopf hineinzunehmen, da es dann sofort nach Abruf der Seite zur
Verfügung steht.
Das Beispiel zeigt, dass VB-Script (wie übrigens auch sein Verwandter
JAVA-Script) das Ausführen von CGI-Scripten nicht erfordert, wenn bestimmte
Routineaufgaben wie das Anzeigen von Datum und Uhrzeit durchgeführt werden sollen. Wer
die Besucher einer Webseite z.B. mit Zeitangaben beeindrucken will, musste in vergangenen
Zeiten diese Daten mit einem CGI-Script erzeugen und ausgeben. Mit VB-Script ist das
Einblenden des aktuellen Datums ein Kinderspiel, wie das vorherige Beispiel zeigt; auch
die Darstellung der Zeit ist überhaupt nicht aufwändig, wie folgender VB-Script-Code
deutlich macht:
<SCRIPT LANGUAGE="VBScript">
heute = now
MsgBox Es ist jetzt &Hour(heute)&" Uhr
&Minute(heute)& Minuten und &Second(heute)&
Sekunden"
</SCRIPT>
Eine ausführliche und verständliche deutsche Einführung in die
Programmierung mit VB-Script ist im WWW unter der Adresse http://www.abc-ware.de/vb/ index.htm
verfügbar.
JAVA-Applets
JAVA ist eine von Sun Microsystems entwickelte,
vollkommen plattformunabhängige Programmiersprache mit spezieller Ausrichtung auf den
Einsatz im World Wide Web. Die Sprache lehnt sich in Aufbau und Syntax an C/C++ an.
JAVA ist dazu geeignet, Animationen, Simulationen, Echtzeitanwendungen,
sowie interaktive Anwendungen wie Guided Tours, Spiele oder Kalkulationsanwendungen zu
realisieren. All diese Dinge laufen im Anzeigefenster des JAVA-fähigen WWW-Browsers, also
auf dem Client, ab.
JAVA zeichnet sich u.a. durch folgende Eigenschaften aus:
- Objekt-Orientierung:
JAVA ist durchgängig objektorientiert und stellt dem Programmierer eine Fülle
elementarer und komplexer Objekte bereit.
- Sichere Speicherverwaltung:
Unter JAVA ist die Arbeitsspeicherverwaltung aus Programmierersicht wesentlich
unkritischer als beispielsweise unter C. Es gibt keine durch Zeiger adressierten
Speicherbereiche von unbestimmter Größe, sondern nur Speichervektoren von fest
definierter Länge. Die fehlerarme Speicherverwaltung ist besonders wichtig, da
JAVA-Programme ohne Portierungsaufwand in verschiedenen CPU-Umgebungen ablaufen sollen.
- Plattformunabhängige Programmdateien:
JAVA-Programme werden wie herkömmliche Programme zu Objektcode compiliert, jedoch nicht
in eine bestimmte Prozessor- oder Betriebssystem-Umgebung eingebunden, also nicht
gelinkt. JAVA-Programme laufen daher auf allen Plattformen, wenn ein
JAVA-Objektcode-Interpreter installiert ist.
JAVA-Programme, die für den Einsatz im Internet
gedacht sind, heißen Applets. In HTML-Dateien wird auf JAVA-Applets verwiesen. Die
Bildschirmausgaben bzw. die Interaktionen zwischen Anwender und Programm finden dann im
Anzeigefensters des WWW-Browsers statt.
Um selbst ausführbare JAVA-Applets erstellen zu können, wird das JAVA
Developers Kit benötigt (kostenfreier Download ist möglich). Es sind Versionen
für UNIX, Windows 95 bzw. Windows NT verfügbar. Das Kit enthält alle
Klassenbibliotheken der Programmiersprache JAVA, einen Applet-Viewer und einen Compiler,
der von der UNIX-Shell- bzw. DOS-Shell aus gestartet wird.
Bei einem JAVA-Applet, dass in einer HTML-Datei im WWW referenziert ist, wird der
ausführbare Programmcode in den Arbeitsspeicher des aufrufenden Rechners geladen und dort
vom JAVA-Interpreter des WWW-Browsers ausgeführt. Aus Sicherheitsgründen gibt es daher
bislang keine Datei-Schreiboperationen bei JAVA-Applets fürs WWW.
Neben einem Compiler, der speziell JAVA-Applets zum Einsatz im WWW
erzeugt, gibt es im JAVA Developers Kit aber noch einen Compiler, der
internetunabhängige Programme für beliebige PCs oder andere Software-Träger erzeugt.
Dieser Compiler erlaubt auch Lese- und Schreiboperationen.
ActiveX-Controls
ActiveX ist eine proprietäre JAVA-Erweiterung von Microsoft, die als
Binärcode übertragen wird und direkt, ohne Umweg über einen Interpreter ausgeführt
werden kann.
Die Geschwindigkeit von ActiveX-Applikationen ist wesentlich höher als die von
JAVA-Applets, weiterhin kann eine ActiveX-Anwendung sofort auf alle Ressourcen zugreifen,
auf die auch der Benutzer Zugriff hat (z.B. auf das Dateisystem). Was sich zunächst als
großer Vorteil darstellt, hat bei näherem Hinsehen aber einige Nachteile.
Die Sicherheit, die JAVA auch dem unwissenden Anwender bietet, fehlt
bei ActiveX völlig. Die Sicherheitsrestriktionen bei JAVA gehen so weit, dass ein
Applet-Autor eine bestimmte Umgebung, Sandbox (engl. für Sandkasten) genannt,
nicht verlassen kann. Bei Microsoft versucht man die Sandbox durch ein
Zertifizierungssystem zu ersetzen (siehe Bild 8). Der Anwender fragt bei einem Webserver,
dem das Vertrauen ausgesprochen wurde, nach, ob das gerade geladene ActiveX-Control als
sicher gilt. Leider weist diese Methode einige Sicherheitslücken auf, so schützt sie zum
Beispiel den Anwender nicht vor der eigenen Unwissenheit, denn er ist durchaus in der Lage
die Zertifizierung abzulehnen, oder ein ActiveX Control trotz fehlendem Zertifikat zu
starten.
Multimediale Präsentationen mit SMIL
SMIL (Abk. für Synchronized Multimedia
Integration Language) ist eine junge Entwicklung unter den Programmiersprachen im
Internet, die sich im Befehlssatz allerdings eher an HTML als an JAVA-Script orientiert.
Mit SMIL ist es möglich, zeitbasierte multimediale Präsentationen auch im WWW
anzubieten. SMIL basiert auf XML (Extensible Markup Language) und ist leicht erlernbar.
Die Sprache wurde vom WWW-Consortium zum Standard erhoben, ist also Teil des Internet.
SMIL steuert die zeitliche Abfolge und das Grundlayout einer
Präsentation. Die einzelnen Ereignisse, die der Betrachter auf seinem Monitor sieht, sind
auf einer Zeitachse angeordnet; SMIL koordiniert die einzelnen Ereignisse. Diese können
sowohl parallel als auch zeitlich nacheinander erfolgen. Von Vorteil ist, dass nur
bekannte Datenformate (GIF- und JPEG-Format) genutzt werden können. Die nähere
Sprachbeschreibung kann Lamprecht (1999) bzw. dem Internet (http://www.w3.org/
TR/1998/REC-smil-19980615/) entnommen werden.
Auch vor SMIL konnte man schon Videos abspielen, hatte aber eigentlich
keinerlei Kontrolle darüber, wann das Video anfangen bzw. enden sollte. Üblicherweise
musste der Betrachter einen Hyperlink auf der Homepage anklicken, um das Video z.B. mit
dem RealPlayer öffnen zu können. Mit SMIL kann jetzt beispielsweise ein Vorspann zum
Video kreiert werden, z.B. durch Einblenden eines Textes, den der Betrachter lesen soll,
bevor das Video beginnt. Außerdem könnte ein gesprochener Text eingebunden werden, der
das Video begleitet. Auch durchlaufende Texte, z.B. mit Informationen über ein Produkt
(wie Preis, Link zur Firmenhome- page, usw.) können synchron zum Video gezeigt werden.
Fazit
Es bestehen etliche Möglichkeiten, statischen Webseiten Leben
einzuhauchen. Für welche Lösungen man sich entscheidet, hängt von der geplanten
Funktionalität der Webseite, den zur Verfügung stehenden Betriebssystemen und natürlich
nicht zuletzt von den Programmierkenntnissen der Entwickler ab.
Im folgenden Heft von LOG IN wird in der Rubrik Praxis und
Methodik ein virtueller Flohmarkt vorgestellt eine Website, die
als Unterrichtsprojekt entwickelt werden kann und viele der vorgestellten Möglichkeiten
(CGI-Script mit Datenbankzugriff, JAVA-Script, JAVA) beinhaltet.
Jürgen Müller
DBB Akademie
Am Karlsbad 11
10785 Berlin
E-Mail: j.mueller@b.dbbakademie.de
LOG
IN-Service: Die angegebenen Programme sind über den LOG IN-Service
verfügbar.
Literatur:
Cluts, N.: Alles über Scripting. In: Background Das Entwickler-Magazin, H.
199, S. 48-51.
Lamprecht, S.: Programmieren für das WWW. Müchen; Wien: Hanser-Verlag, 1999.
|