WAP - what?

von Lukas Ertl (Ausgabe 00/3, Oktober 2000)

 

Wirklich Absolut Phänomenal

Wer sich heutzutage überlegt, ein Handy zu kaufen, kommt eigentlich nicht mehr daran vorbei: Die Werbung preist es in schillernden Farben, beim Niedermayer wird es einem nachgeschmissen und, hey, Niki Lauda fährt voll darauf ab. Die Rede ist von WAP, dem Wunder Aller Produkte, und ginge es nach dem Willen der Marketing-Leute, würde in Zukunft sowieso nichts mehr ohne WAP laufen.

Was ist es nun, dieses WAP? Hinter der Abkürzung verbirgt sich der klingende Ausdruck Wireless Application Protocol, und dieser verspricht die Erfüllung des Traums aller Informationsjunkies: Die Loslösung des Internet von fixer Netzwerkinfrastruktur. Hurra, gleichzeitig joggen und Kinokarten bestellen, endlich! (Und auch "S-Bahn-Surfen" erhält eine ganz neue Bedeutung.)

Was Allgemein Passiert

Das Grundprinzip einer WAP-Verbindung ist denkbar einfach: Wie bei einem "normalen" HTML-Browser ruft der Benutzer über ein WAP-Handy oder ein anderes WAP-Device - z.B. ein PDA, ein Handheld oder ein Webpad - einen URL auf (z.B. wap.univie.ac.at/). Anders als im WWW wird die Anfrage aber nicht direkt zum Webserver geschickt, sondern zunächst an ein sogenanntes WAP-Gateway, das als Schnittstelle zwischen Funknetz und Internet fungiert und die Anfrage an den Webserver weiterleitet. Dieser schickt die gewünschte WML-Seite (WML steht für Wireless Markup Language und definiert ähnlich wie HTML, die Hypertext Markup Language, den Seitenaufbau) an das WAP-Gateway zurück. Das WAP-Gateway übersetzt nun die im ASCII-Text-Format vorliegende Seite in einen binären Bytecode, den die Handies verarbeiten können, und sendet diesen über das Funknetz zum Handy. Dieser Vorgang läuft für die Benutzer vollkommen transparent ab, d.h. sie merken nichts vom dazwischengeschalteten WAP-Gateway, das meistens vom jeweiligen Mobilfunkbetreiber zur Verfügung gestellt wird.

Nicht sonderlich transparent sind hingegen die Fehlermeldungen, die ein WAP-Handy ausspuckt, falls etwas nicht funktioniert: Meldungen wie Keine Antwort empfangen, Fehler beim Seitenaufruf usw. lassen nur Vermutungen darüber zu, was denn nun nicht stimmt - sogar der berüchtigte Windows-Bluescreen liefert aussagekräftigere Informationen. Früher kam es auch immer wieder vor, daß das Handy beim Seitenaufruf komplett abstürzte und nur durch ein kurzes Lösen des Akkus "wiederbelebt" werden konnte. Die Handy-Hersteller haben die Software ihrer Produkte inzwischen verbessert; dennoch hat es manchmal den Anschein, daß trotz hochgelobter Qualitätskontrollen und ISO-Zertifizierungen viel Mist auf den Markt kommt - Hauptsache, man kann es verkaufen.

Abgesehen von den unverschämt hohen Online-Gebühren ist das größte Defizit der derzeit erhältlichen WAP-Handies ihre begrenzte Speicherkapazität, die in Verbindung mit kleinen Displays und erbärmlich unergonomischen Eingabe-Elementen ("Krankheitsbilder der Zukunft: der WAP-Daumen") die Freude am mobilen Surfen erheblich schmälert.

Wie Außerordentlich Praktisch

Trotz dieser Mängel hat WAP natürlich einiges zu bieten (siehe auch Kasten Was Andere Publizieren). Da der Hauptzweck eines Handys nach wie vor das Telefonieren ist, gibt es das Herold-Telefonverzeichnis auch für WAP. Ebenfalls sehr brauchbar sind die News-Dienste: Beispielsweise kann man die Schlagzeilen von ORF, "Standard" und "Presse" via Handy abrufen, ebenso die neuesten Ö3-Verkehrsnachrichten oder die Wettervorhersage. Neben diesen "klassischen" Diensten gibt es auch spezielle Newsticker - Technik-Freaks erfahren die neuesten Nachrichten z.B. beim Zeitschriftenverlag Heise oder bei Slashdot, Musik-Fans z.B. bei MTV.

Um WAP-Fans zum nötigen Überblick zu verhelfen, bieten bekannte Suchmaschinen wie Yahoo, Altavista oder Fireball ihre Dienste auch für mobile Surfer an. Das derzeit beste Service kommt von Google: Diese Suchmaschine liefert nicht nur beim Auffinden von WML-Seiten gute Ergebnisse, sondern durchsucht auch "normale" HTML-Seiten, die dann in WML umgewandelt und am Handy angezeigt werden - WAP-Surfer können also mit Hilfe von Google nicht nur das bestehende WAP-Angebot, sondern große Teile des Internet durchkämmen.

Werkzeuge Am Prüfstand

Wenn man vom WAP-Fieber angesteckt wurde und nun selbst WML-Seiten entwickeln möchte (siehe dazu WML Crash-Kurs), muß man einige wichtige Dinge beachten:

  • Die Konfiguration des Webservers, auf dem die WML-Seiten gespeichert werden, muß um folgende MIME-Types erweitert werden (auf den Servern des ZID sind diese MIME-Types bereits vorkonfiguriert):
    text/vnd.wap.wml für WML-Dateien mit der Endung .wml und
    image/vnd.img.wbmp für WAP-Bitmaps mit der Endung .wbmp.
  • Die Einhaltung der korrekten WML-Syntax ist unbedingt erforderlich. Schlampigkeiten, die von HTML-Browsern toleriert werden, führen im WML-Browser zu kryptischen Fehlermeldungen und verursachen Frust auf der Anwenderseite.
  • Die WML-Seiten dürfen nicht zu groß werden. Handies zeigen die Seite nicht an, falls der Speicher voll ist, und der Speicherplatz ist bescheiden. So verfügt das Nokia 7110 nur über knapp 1400 KB; diese Angabe bezieht sich aber auf den vom WAP-Gateway erzeugten Bytecode und nicht auf die tatsächliche Größe der WML-Datei.
  • Als weiteres Hindernis kommt hinzu, daß eine WML-Seite nicht überall gleich aussieht. Zum einen bestimmt schon die Displaygröße, wie die Seite angezeigt wird, zum anderen ist die WML-Spezifikation nicht in allen Handies gleich implementiert. Beispielsweise kann das Ericsson R320s mit Textauszeichnungen wie Bold-Tags oder Formatierungen wie zentriertem Text umgehen, nicht aber das Nokia 7110.

Angesichts der Mühen, die das Testen und Debuggen von WAP-Anwendungen mit sich bringt, und der Kosten, die für Handy und Onlinezeit entstehen, ist man gut beraten, seine WML-Seiten mit Hilfe sogenannter "WAP-Toolkits" zu erstellen. Diese Toolkits werden z.B. von Nokia, Ericsson und Phone.com angeboten und umfassen neben einer integrierten Programmierumgebung auch einen WAP-Browser, der den jeweiligen Handy-Typ simulieren kann. Außerdem können die erstellten WML-Seiten in den vom Handy verwendeten Bytecode übersetzt werden, was die Kontrolle über die Seitengröße erleichtert. Für WML-Entwickler empfiehlt es sich daher, alle verfügbaren Toolkits (die übrigens nur für Windows 98 bzw. NT-Systeme erhältlich sind) zu installieren, um die Seiten auf verschiedenen Handies testen zu können.

Allerdings haben diese Toolkits auch ihre Haken. Abgesehen davon, daß der Zugang zu den Developer-Bereichen auf den Websites der Hersteller mit einer Registrierung verbunden ist, werden Modem-Benutzer am Download der großen Dateien ganz schön zu kiefeln haben (neben den umfangreichen Toolkits wird z.B. auch noch das Java Runtime Environment verlangt). Außerdem läuft die Installation dieser Toolkits nicht immer reibungslos ab. So baut beispielsweise das Ericsson-Toolkit auf Tcl auf, einer Sprache, die in der Windows-Welt eher unbekannt ist. Die notwendigen Tcl-Bibliotheken werden zwar mitgeliefert; dennoch läßt sich das Ericsson-Toolkit nicht über den Eintrag im Start-Menü starten - erst nach der Anpassung der PATH-Variable in der Datei AUTOEXEC.BAT konnte ich mit dem Ericsson-Toolkit arbeiten. Damit dieses überhaupt seinen Dienst tut, muß ein lokaler Webserver vorhanden sein; deshalb installiert sich neben dem Toolkit auch noch der Xitami-Webserver. Das Arbeiten mit dem IDE (Integrated Development Environment) von Ericsson gestaltet sich mitunter etwas schwierig, da man immer zuerst in den sogenannten Test-Mode umschalten muß, wenn man sich seine WML-Seiten im Simulator ansehen will. Diesen Test-Mode muß man aber explizit wieder ausschalten, um Änderungen im WML-Code durchzuführen. Andererseits unterstützt das Ericsson-Toolkit den WML-Anfänger, da im Insert-Pulldown-Menü stets nur diejenigen Tags ausgewählt werden können, die laut WML-Spezifikation an der aktuellen Cursorposition eingefügt werden dürfen (z.B. <card> nur innerhalb von <wml>, nur innerhalb von <card>). Im Lieferumfang des Ericsson-Toolkit ist leider nur ein Simulator für das R320s enthalten; ein Simulator für das R380s kann aber von der Ericsson-Homepage heruntergeladen werden.

Abb. 1: Das Ericsson-Toolkit
Abb. 1: Das Ericsson-Toolkit

Im Falle des Nokia-Toolkit, das auf dem Java Runtime Environment aufsetzt, muß nach der Installation die PATH-Variable ebenfalls händisch angepaßt werden, damit die Java-Bibliotheken gefunden werden; dann läßt es sich allerdings problemlos starten. Das Nokia-Toolkit zeichnet sich durch seinen Funktionsumfang und die Fülle an mitgelieferter Dokumentation aus. So erhält man neben dem User's Guide für das Toolkit auch noch einen Designer's Guide (der Grundsätzliches über das Design von WAP-Services erklärt und auf die Besonderheiten des 7110 eingeht) und einen Developer's Guide, der eine WML-Referenz darstellt und auch einige praktische Beispiele liefert. Weiters umfaßt das Toolkit auch einen WBMP-Editor, mit dem man WAP-Bitmaps erstellen kann. Die derzeit aktuelle Version 2.0 des Nokia-Toolkit installiert neben dem IDE auch eine WAP-Server-Simulation, die benötigt wird, um mit dem 7110-Emulator lokale WML-Seiten zu betrachten.

Abb. 2: Das Nokia-Toolkit
Abb. 2: Das Nokia-Toolkit

Beide Toolkits beinhalten zahlreiche Anwendungsbeispiele, das Ericsson-Toolkit sogar einen Perl-Interpreter und viele CGI-Beispielskripts.

WML Crash-Kurs
(Wenn Anfänger Programmieren)

Die WML-Syntax umfaßt im Vergleich zu HTML weniger Tags, deren Anordnung und Verwendung aber aufgrund der Tatsache, daß es sich bei WML um eine XML-konforme Sprache handelt, exakt eingehalten werden muß (XML = Extensible Markup Language). Die Basisstruktur einer WML-Seite ist die sogenannte Card; innerhalb einer Card können Texte, Links, Bilder, Formulare usw. definiert werden. Mehrere Cards innerhalb einer Seite ergeben dann - analog zum herkömmlichen Kartenspiel - ein Deck. (Zum besseren Verständnis: Eine Card definiert einen ähnlichen Bereich wie in HTML der <body>-Tag - dort steht, was im Browser angezeigt wird. Allerdings sind in HTML mehrere <body>-Abschnitte nicht erlaubt, während in WML mehrere <card>-Bereiche zur Strukturierung der Seite dienen.) Die WML-Syntax soll im folgenden anhand eines Hello, world-Beispiels (ein Deck mit zwei Cards, siehe Abb. 3) erläutert werden.

 
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC
"-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="card1" title="Hello, world!">
<p align="center">
<b>Hello, world!</b>
<br/>
</p>
<p>
This is Card 1.<br/>
<a href="#card2">Goto Card 2</a>
</p>
</card>
<card id="card2" title="Hello, again!">
<p align="center">
<b>This is Card 2!</b>
<br/>
<a href="#card1">Goto Card 1</a>
</p>
</card>
</wml>

Abb. 3: Beispiel für WML-Datei

WML-Seiten müssen immer mit dem sogenannten XML-Header beginnen:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE wml PUBLIC
"-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

Einen solchen Header müssen alle XML-Dokumente aufweisen. Die erste Zeile definiert, daß es sich um ein XML-Dokument handelt, die zweite (hier aus Platzgründen dreigeteilt) gibt an, welche Document Type Definition für dieses Dokument verwendet werden soll. (Document Type Definitions sind notwendig, um XML-Dokumente auf ihre korrekte Syntax zu überprüfen und um festzustellen, um welche XML-Abart es sich handelt - in diesem Fall um WML.)

Daraufhin wird das eigentliche WML-Dokument eröffnet und die erste Card definiert:

<wml>
<card id="card1" title="Hello, world!">

Über die zugeordnete ID kann man die Card innerhalb des Decks identifizieren und auch mittels Links ansteuern. Zu beachten ist, daß jedes Attribut innerhalb eines Tags immer unter Anführungszeichen geschrieben werden muß.

Innerhalb der Card können nun Texte, Bilder, Links etc. eingefügt werden. Allerdings schreibt die WML-Spezifikation vor, daß solche Inhalte nur innerhalb von

-Tags stehen dürfen.

<p align="center">
<b>Hello, world!</b>
<br/>
</p>
<p>
This is Card 1.<br/>
<a href="#card2">Goto Card 2</a>
</p>

Auffällig ist hier, daß Tags ohne entsprechendes Abschluß-Tag (wie hier der Zeilenumbruch <br/>) immer als <../> geschrieben werden müssen. Der Link zeigt als Beispiel, wie man innerhalb eines Decks zu anderen Cards springen kann. Links können natürlich auch zu anderen WML-Dokumenten zeigen, wobei sowohl absolute URLs (z.B. <a href="http://meinserver.at/links.wml">) ) als auch relative URLs (z.B. lt;a href="news/wetter.wml">) möglich sind. Weil manche WAP-Devices mit den relativen Angaben nichts anfangen können, sollten besser absolute URLs verwendet werden.

Selbstverständlich muß jede Card abgeschlossen und zuletzt auch das WML-Dokument beendet werden:

</card>
</wml>

Neben den aus HTML bekannten Tags wie <p>, <b>, <a href="..."> etc. stehen in WML auch einige Meta-Tags zur Verfügung, um bestimmte Aktionen durchzuführen. So haben WAP-Handies derzeit noch keine Back-Taste, mit der man zum vorigen Dokument zurückkehren kann. Angesichts der ohnehin eingeschränkten Bedienungsfreundlichkeit der WAP-Handies freuen sich WAP-Surfer im allgemeinen nicht besonders, wenn sie in einer "Sackgasse" festsitzen. Deshalb besteht die Möglichkeit, mit dem <do>-Tag den Handy-eigenen Funktionstasten bestimmte Aktionen zuzuweisen. <do>-Tags definiert man folgendermaßen:

<do type="..." label="...">
...
</do>

Der Typ (z.B. accept oder prev) dient den Handies nur zur Information und muß daher nicht unbedingt angegeben werden. Das Label ist der Text, der der Funktionstaste zugewiesen wird. Innerhalb des <do>-Tags steht dann die eigentliche Aktion, die durch Betätigen der Taste ausgeführt wird. Das folgende Beispiel legt auf die linke Funktionstaste einen Link zu einer weiteren Card und auf die rechte eine Back-Taste:

<do type="accept" label="Next">
<go href="#card2"/>
</do>
<do type="prev" label="Back">
<prev/>
</do>

<do>-Definitionen können entweder innerhalb einer Card oder auf Deck-Ebene (für alle Cards gültig) angegeben werden.

Selbstverständlich ist auch das Erstellen von Formularen mit WML möglich. Um ein Texteingabefeld zu erzeugen, genügt ein <input>-Tag innerhalb einer Card; um die Eingabe auszuwerten (z.B. um sie an ein CGI-Skript zu senden oder in einer anderen Card auszugeben), verwendet man den Namen des <input>-Feldes mit vorangestelltem $ als Variable. Das folgende Beispiel erzeugt zwei Formularfelder, deren Inhalt nach einem Klick auf Abschicken an ein CGI-Skript gesendet wird:

<p>Nachname: <input name="nach"/><br/></p>
<p>Vorname: <input name="vor"/><br/></p>
<p><br/>
<a href="http://meinserver.at/cgi-bin/
foo.cgi?vor=$(vor)&nach=$(nach)">
Abschicken</a>
</p>

Diese Beispiele umfassen natürlich nur einen kleinen Teil der WML-Syntax. Weiterführende Seiten zu diesem Thema finden Sie im Kasten Was Andere Publizieren.

Wiener Akademiker Probieren's

Der Zentrale Informatikdienst der Universität Wien bietet nun auch Services für mobile Surfer an. Derzeit kann man unter wap.univie.ac.at auf das Telefonverzeichnis der Uni Wien zugreifen, außerdem werden Links zu den bestehenden WAP-Seiten von Instituten aufgelistet.

Falls Sie auf Ihrem Mailbox- bzw. Unet-Webspace ebenfalls WAP-Seiten zur Verfügung stellen möchten, müssen Sie die fertigen Seiten mit der Endung .wml (bzw. .wbmp für WAP-Bitmaps) abspeichern. Die Start-Seite in einem Verzeichnis (diese wird angezeigt, wenn Sie im URL nicht auf eine konkrete Datei, sondern nur auf ein Verzeichnis verweisen) sollte index.wml heißen. Viel Spaß beim Wappen!

Was Andere Publizieren

Informationen über WAP

Links für's WAP-Handy