LOG IN Leitseite

[2000]

 


log-in_small.gif (418 Byte)

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 Developer’s 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 Developer’s 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. 1’99, S. 48-51.

Lamprecht, S.: Programmieren für das WWW. Müchen; Wien: Hanser-Verlag, 1999.