WAP

4         WAP

4.1           Einleitung

4.1.1             Was ist WAP

4.1.2             Wozu braucht man WAP

4.1.3             Was ist das besondere an WAP

4.2           Aufbau von WAP

4.2.1             Die Bearers

4.2.2             Tansport Layer (WDP-Wireless Datagram Protocol)

4.2.3             Security Layer (WTLS-WirelessTransportLayerSecurity)

4.2.4             Transaction Layer (WTP-Wireless Transport Protocol)

4.2.5             Session Layer (WSP-Wireless Session Protocol)

4.2.6             Application Layer (WAE-Wireless Application Environment)

4.2.7             Verbindung ins Netz

4.2.8             WML (Wireless Markup Language)

4.2.9             WML-Beispiel

4.2.10            WML-Script

4.3           Schlußteil

4.3.1             Anwendungsbeispiele

4.3.2             Schlußwort

4.4           Anhang

4.4.1             Anhang A: WAP-Schichtenmodell

4.4.2             Anhang B: Stack-Beispiel

4.4.3             Anhang C: HTML-Filter-Schema

4.4.4             Anhang D: Verbindungsschema


4   WAP

 

4.1   Einleitung

Dieses Dokument ist nur ein grober Überblick von WAP. Es ist fast unmöglich in entsprechender Zeit sämtliche Dokumente des WAP-Forums durch zu arbeiten. Die Dokumente des WAP-Forums umfassen insgesamt 815 Seiten in englischer Sprache. In den Dokumenten ist zwar sehr genau beschrieben, wie WAP aufgebaut ist, aber aus den Angaben kann man unmöglich einen WAP-Stack programmieren. So ist man darauf angewiesen, das Protokoll zu kaufen, falls man es in Produkten einsetzen will. WAP wurde in Zusammenarbeit mit verschiedenen Mobil-Telefon Herstellern wie Nokia, Motorola, und Ericsson erarbeitet. Genauere Angaben über die Adressen und woher man Programme bekommt sind dem Literaturverzeichnis zu entnehmen.

4.1.1   Was ist WAP

WAP ist die Abkürzung für Wireless Application Protocol und heißt auf deutsch 'schnurloses Anwendung Protokoll'. Es wurde initiiert um den Internet-Zugang über ein Handy zu ermöglichen. Der Internet-Zugang soll vor allem die Möglichkeit bieten über ein Handy Nachrichten zu senden und zu empfangen, das Wetter und Aktien-Kurse abzurufen, über das Internet einzukaufen, Geld Transaktionen vorzunehmen und ein Navigationssystem zur Verfügung zu stellen.

WAP ist nicht ein Protokoll, das auf einer Schicht des ISO/OSI Schichtenmodells arbeitet, wie es viele fälschlicherweise meinen, sondern es setzt sich dabei aus verschiedenen Schichten zusammen. Allerdings erinnert es sehr an das ISO/OSI Schichtenmodell. Jede Schicht stellt bestimmte Dienste zur Verfügung. Unter anderem übernehmen sie die Aufgabe zum Transport der Daten, Sicherheit und Anwendungen wie E-Mail, oder Browser.

All diese Schichten zusammen nennt man WAP.

4.1.2   Wozu braucht man WAP

Ziel von WAP ist es den Internet-Zugang für digitale, schnurlose Telefone und andere schnurlose Terminals zu realisieren. Dazu muß man ein Weltweit gültiges Protokoll für schnurlose Telefone - das auf den verschiedensten Netzen funktioniert - erstellen. Dabei wurden vorhandene Standards und Technologien wo immer sie verwendet werden in WAP eingebunden und für die Bedürfnisse von WAP verbessert.

Sowohl das Internet, als auch Mobiltelefone nehmen sehr stark an Bedeutung zu. Immer mehr Leute besitzen ein Handy und gehen ins Netz der Netze. Da bietet es sich geradezu an, die beiden Technologien miteinander zu verbinden.

4.1.3   Was ist das besondere an WAP

WAP muß speziellen Anforderungen gerecht werden. So hat ein Handy beispielsweise ein kleines Display auf dem die Informationen dargestellt werden müssen.

Schnurlose Terminals haben eine leistungsschwache CPU, wenig Speicher, kleine Displays, die verschiedensten Eingabegeräte und eine niedrige Bandbreite.

Dazu kommt, daß die Hersteller eine vielseitige Einsetzbarkeit auf den verschiedensten Terminals benötigen. Dabei muß eine automatische Skalierung erfolgen, wie der Benutzer bzw. das Handy sie benötigt. Es muß eine hohe Zuverlässigkeit und Sicherheit bieten und Effizient muß das ganze auch noch sein.

All dies wird mehr oder minder von WAP unterstützt.

 

4.2   Aufbau von WAP

Das WAP-Modell erinnert sehr stark an das Modell des World-Wide-Web. Dies ist damit begründet, um vorhandene Tools und Dienste einbinden zu können, wie zum Beispiel einen Web-Server. Der Mikro-Browser ist analog zum Web-Browser. WAP definiert ein Set von Standardkomponenten zur Realisierung der Kommunikation zwischen Mobilen Terminals und Web-Servern. Dabei wird das Standard-Namens-Modell des WWW implementiert.

WAP realisiert die Kommunikation vom Mobil-Netz ins Internet. Es beinhaltet Kalender Informationen, elektronische Geschäfte, Bilder und Skript-Sprache.

WAP ist der Oberbegriff einer ganzen Reihe von Protokollen, Diensten und Applikationen. Im Anhang A befindet sich über folgendes eine Grafik.

Das Schichtenmodell von WAP erinnert sehr stark an das ISO/OSI-Schichtenmodell. Es besteht ebenfalls aus mehreren Schichten, die ähnliche Aufgaben wie die der OSI-Schichten übernehmen. Auf der untersten Schicht befinden sich die 'Bearers'. Auf der zweiten Schicht ist der Transport Layer (WDP) zu finden. Die dritte Schicht wird vom Security Layer (WTLS) belegt. Die nächste Schicht beinhaltet den Transaction Layer (WTP). Schließlich ist auf der fünften Schicht der Session Layer (WSP) zu finden und auf der sechsten Schicht der Application Layer (WAE).

4.2.1  Die Bearers

Sie sind das Pendant zum Physical Layer oder auch der Bitübertragungsschicht. Darin beinhaltet sind die Standards von GSM, IS-136, CDMA, PHS, CDPD, PDC-P, iDEN, FLEX, etc. Die Bearers unterstützen verschiedene Stufen von QoS (Quality of Service), d.h. die Verbindungsqualität und die Bandbreite kann beeinflußt werden.

4.2.2   Transport Layer (WDP-Wireless Datagram Protocol)

Auf der zweiten Schicht befindet sich der Transport Layer (WDP). Der Transport Layer hat die Aufgabe, die Daten zu transportieren wie bei OSI. Dabei wird eine Verbindung zwischen dem Physical Layer (der Bitübertragung) und dem Security Layer hergestellt. Das WDP erlaubt transparente Operationen mit verschiedenen Services. IP geht über UDP. TCP scheint nicht verwendet zu werden (Siehe Anhang B).

4.2.3   Security Layer (WTLS-WirelessTransportLayerSecurity)

Die dritte Schicht ist für die Sicherheit zuständig. Es handelt sich dabei um den Security Layer (WTLS). Der Security Layer unterstützt Sicherheitsaspekte wie Datenintegrität (Sicherstellung, daß die Nachricht nicht verändert wurde), Privat (verschlüsselte Pakete, für andere unverständlich) und Authentifizierung (Überprüfung der Echtheit).

Der Ablauf funktioniert in etwa so, daß der Client ein 'Hello' an den Server schickt. Dieser beantwortet den 'Hello' in der Regel. Bei der Übertragung werden Zufallszahlen übermittelt, die für die spätere Codierung benötigt werden und den 'pre_master_secret' Schlüssel bilden. Zur Erstellung eines Schlüssels existiert ein einheitlicher Algorithmus: master_secret = PRF (pre_master_secret, 'master secret', ClientHello.random + ServerHello.random);

Der 'master_secret' Schlüssel ist immer 20 Byte lang.

Nach diesem Szenario gibt es dann 3 Möglichkeiten der Verschlüsselung. Die eine ist eine RSA Verschlüsselung. Diese Verschlüsselung wird für die Server Authentifizierung und den Schlüsselaustausch benötigt. Dabei wird der Schlüssel vom Client mit dem Public Key des Servers verschlüsselt und an ihn übermittelt. Der Server entschlüsselt den Schlüssel mit seinem Private Key. Bei dieser Verschlüsselung handelt es sich also um eine Asymmetrische Verschlüsselung. Nun kann der Server Daten mit dem Symmetrischen Schlüssel des Clients übermitteln.

Eine andere Möglichkeit ist der Diffie-Hellman Algorithmus. Dieser funktioniert gleich, wie die RSA Verschlüsselung, jedoch pre_master_secret Schlüssel invertiert.

4.2.4   Transaction Layer (WTP-Wireless Transport Protocol)

Auf der vierten Schicht arbeitet der Transaction Layer (WTP). Er stellt die Verbindung her, wobei die Verbindung eine Ein-Wege-Verbindung oder eine Zwei-Wege-Verbindung sein kann. Die Ein-Wege-Verbindung kann dabei unzuverlässig (Verbindungslos) oder zuverlässig (Verbindungsorientiert) sein. Dabei handelt es sich um eine asynchrone Datenübertragung. Die Empfangsbestätigung erfolgt verzögert, um die Anzahl der Nachrichten zu reduzieren. Das könnte man entfernt mit dem Silly Window Syndrome vergleichen. Beim Silly Window Syndrome teilt der Empfänger dem Sender jede kleine Änderung der Window-Size mit und der Sender schickt ein neues Paket. Die folge daraus ist, daß der Hauptteil der Übertragung darin besteht, Steuersignale (Acknowledgements, ...) zu übertragen, anstelle von Daten. Im WTP wird auch eine Fehlerbehandlung vorgenommen. Die Timer sind hier angesiedelt. WTP ist also für den Nachrichtentransfer zuständig. Informationen über das letzte Acknowledgement werden gespeichert.

4.2.5   Session Layer (WSP-Wireless Session Protocol)

Der Session Layer (WSP) befindet sich auf der fünften Schicht. Er besitzt eine HTTP/1.1 Funktionalität, ist jedoch für geringe Bandbreiten optimiert. Er stellt außerdem die Verbindung zu einem WAP-Proxy-Server zur Verfügung. Die Verbindungen sind Verbindungslos.

4.2.6   Application Layer (Wireless Application Environment)

Auf der sechsten und letzten Schicht arbeitet der Application Layer (WAE). Dieser beinhaltet einen Mikro-Browser, der eine spezielle Sprache darstellen kann. Bei dieser Sprache handelt es sich um WML (Wireless Markup Language). Sie ist sehr ähnlich zu HTML. Solche Software-Programme wie der Mikro-Browser und die WML Sprache bezeichnet man als User Agent. Wie auch bei HTML wird eine Skript-Sprache Unterstützt. Diese Skript-Sprache hat eine große Ähnlichkeit zu Java-Skript. Des weiteren bietet WAE die Verbindung zu einem speziellen WML-Server (WTA-Wireless Telephony Application).

WAE soll kompatibel sein zu HDML (Handheld Markup Language), HTML (Hypertext Markup Language) und WWW Technologien wie URL und HTTP (Uniform Ressource Locator und Hypertext Transfer Protocol).

Es können auch Applikationen auf anderen Servern gestartet werden, wie CGI-Skripte.

WAE ist in zwei logische Schichten unterteilt, nämlich User Agents (Browser, PhoneBook, Message Editors) und Services, welche dem User Agent Zugriff auf WML, WML-Skript, image-Formate, vCards und vCalender ermöglichen.

Parallel zu den Schichten können ab der dritten Schicht (WTLS) zusätzliche Dienste und Applikationen laufen. Dabei kann es sich zum Beispiel um E-Mail, anzeige von Bildern, Kalender Information, Geldtransaktionen, E-Commerce, Telefonbucheinträge, etc. handeln. Es wurde ein spezielles Bitmap-Format erstellt. Es nennt sich WBMP (Wireless Bitmap). Diese Spezifikation beinhaltet die Höhe und Breite, die Versionsnummer, ein kompaktes binär-Format, die Skalierbarkeit (Farbtiefe, Animation, Datenstrom), eine Pixel Organisation, eine Kompression und Animation.

WAP unterstützt keine zusätzlichen Protokolle wie beispielsweise FTP.

4.2.7  Verbindung ins Netz

Die Verbindung ins Netz der Netze kann über zwei Wege erfolgen. Die eine Möglichkeit ist, einen speziellen WML-Server (WTA-Server) zu kontaktieren, der speziell für WML-Seiten eingesetzt wird. Die zweite ist, über einen WAP-Gateway die Verbindung ins Internet herzustellen. Dabei können die Web-Seiten bereits im WML-Format auf einem Web-Server vorliegen, oder es kann eine HTML-Seite aufgerufen werden, die dann durch einen HTML-Filter läuft und die Seite in WML umwandelt (Siehe Anhang C). Bei dieser Umwandlung werden gegebenenfalls unnötige Informationen, wie Werbung oder Images einfach 'raus geschmissen'.

Im allgemeinen ist ein WAP-Server oder ein WTA-Server fest eingestellt. Auf diesen werden dann WML-Seiten zur Verfügung gestellt wie der Abruf von Aktienkursen oder die Wetterdaten. Innerhalb dieser Seite navigiert man sich dann hindurch. Will man andere Funktionen nutzen, verbindet man sich einfach - mit einem erneuten Verbindungsaufbau - mit einem anderen Server. Anbieter wie D1, D2, E-Plus, VIAG Interkom stellen solche WML Seiten mit unterschiedlichem Leistungsumfang zur Verfügung. Will man heute Dienste von D1 nutzen, ruft man einfach den WAP-Server von D1 an und morgen vielleicht den WAP-Server von D2. Innerhalb dieser Seiten findet sich meist eine Menü-Struktur, durch die man sich dann 'durch klickt'.

Die WML-Dateien werden in einem Bytecode (im binär-Format) übertragen, um zusätzlich Bandbreite einzusparen. Für die Verbindung benötigt WAP eine Full-Duplex Verbindung. Der allgemeine Verbindungsaufbau wird in einer Grafik in Anhang D dargestellt.

4.2.8   WML (Wireless Markup Language)

WML ist eine Sprache ähnlich dem HTML. Sie basiert auf XML. Wie bei HTML unterstützt WML die Textausgabe und Darstellung von Images. Jedoch sollte bei den Images beachtet werden, daß auf den Handys derzeit keine Farbbilder dargestellt werden können. Davon abgesehen benötigen Farbbilder, oder Graustufen-Bilder sehr viel Speicherplatz im Gegensatz zu Schwarz-Weiß Bildern, was für die Datenübertragung wieder negative Konsequenzen hat. In naher Zukunft wird dies allerdings kein Problem mehr sein, da die Bandbreite von GSM stark erhöht werden soll. Die zukünftigen Handys werden auch größere Display besitzen.

Der Aufbau einer WML-Datei ähnelt einer Software aus der Macintosh-Welt. Dieses Programm heißt Hypercard. Wie die MAC-Sprache unterscheidet WML sogenannte Karten (cards) und Kartenstapel (decks). Der Benutzer navigiert zwischen den einzelnen Karten eines Stapels, liest ihre Inhalte oder gibt Informationen ein. Decks können parametrisiert werden. So kann zur Laufzeit ein unterschiedliches aussehen der WML-Seite, abhängig von den Parametern, definiert werden.

WML-Dokumente haben für die Navigation in den Karten und Stapeln ID´s und Classes, damit eine Karte und ein Stapel identifiziert werden können. Eine relative Adressierung ist möglich. Sie richtet sich nach dem Unified Naming Model, und nach den Uniform Ressource Locators (URL). WML-Dokumente werden wie HTML interpretiert. Die einzelnen Strings werden dabei auseinander genommen und mit einem Parser interpretiert. WML unterstützt Alphanumerische Zeichen. Der Unicode Zeichensatz wird ebenfalls unterstützt, um ein weltweites verbreiten der WML-Seiten zu ermöglichen. Unter WML können Meta-Angaben definiert werden. Somit ist es möglich, WML-Seiten in einer Meta-Suchmaschine sichtbar zu machen.

WML wurde für kleine Bildschirmgrößen, schlechte Eingabemöglichkeiten, geringe Rechenleistung, wenig Speicher, geringe Bandbreite, etc. konzipiert. Wie HTML unterstützt WML eine ganze Reihe Besonderheiten. So kann man beispielsweise Listen, Eingabefelder, Timer und Tabellen definieren.

Auf jedes einzige Detail einzugehen würde hier zu weit gehen. Dies soll keine Anleitung dafür werden, wie man WML programmiert. Deshalb ist im nächsten Abschnitt nur ein kleines Programmbeispiel abgedruckt. Ansonsten verweise ich auf das Literaturverzeichnis. Der Code wird anschließend erläutert.

4.2.9   WML-Beispiel

1.    <wml>
2.       <card>
3.          <p>
4.             <do type='accept'>
5.                <go href='#card2'/>
6.             </do>
7.             Hello world!
8.          </p>
9.       </card>
10.       <card id='card2'>
11.          <p>
12.             Auf Wiedersehen !
13.          </p>
14.       </card>
15.    </wml>

Hier kann man schon die sehr ähnliche Struktur zu HTML sehen. Wie auch bei HTML muß das Programm erst mit einem TAG eingeleitet werden. Hier heißt dieser natürlich <wml>.
In der zweiten Zeile wird dann schon die erste Karte definiert. Die ID ist optional, wenn man jedoch auf eine Karte springen will, muß eine ID angegeben werden. So wird hier nur eine Karte definiert, da auf diese Karte kein Link mehr gesetzt wird.
In der dritten Zeile steht ein <p>, was die selbe Bedeutung hat wie in HTML, nämlich einen Absatz.
Die vierte Zeile aktiviert den folgenden Link. Natürlich müssen wie bei HTML geöffnete TAG´s wieder geschlossen werden, was hier in der sechsten Zeile geschieht, indem dem TAG ein Slash vorgesetzt wird (</do>).
In der fünften Zeile befindet sich der eigentliche Link, der auf die Karte 2 zeigt. Hier ist auch wieder die Ähnlichkeit zu HTML zu sehen, da der Befehl 'href' benutzt wird.
In der siebten Zeile steht einfacher Text, der innerhalb der Karte 1 angezeigt wird.
</p> in der achten Zeile beendet den Absatz-TAG.
In Zeile neun wird die Karte mit dem </card> TAG nun geschlossen. Somit ist die erste Karte fertig konfiguriert und abgeschlossen.
Nun wird in Zeile zehn die zweite Karte definiert. Hier muß nun die ID angegeben werden, da Karte 1 auf diese Karte mit einem Link verweist.
Der Rest verhält sich gleich, wie in der ersten Karte. In Zeile zwölf wird einfach nur noch ein Text ausgegeben.
Zum Schluß muß der wml-TAG noch geschlossen werden. Dies geschieht in Zeile fünfzehn mit </wml>. Dieses gesamte Beispiel bildet nun ein 'deck' oder zu Deutsch einen sogenannten Stapel.

4.2.10   WML-Script

Das Wireless Application Protocol bzw. der Mikro-Browser unterstützt ebenfalls Skripts. Die Skripts ähneln syntaktisch sehr stark dem Java-Skript. Wie auch WML werden aus Performance gründen die Skripts in Bytecode kompiliert und so übertragen. Dennoch benötigen sie zusätzliche Bandbreite. Also je mehr Skripts in einer WML-Datei verwendet werden, desto länger dauert der Download der Seite.

Skripts ermöglichen unter anderem Rechenoperationen oder Paßwort-Abfragen. Wie auch in Java sind Datentypen wie int (Integer = Ganze zahlen), float (Fließkomma zahlen) und String (Zeichenketten) definiert.

Literale, Identifizierer, Funktionen, Rückgabeparameter, for-Schleifen, while-Schleifen, break, continue und Umwandlungen (von zum Beispiel Datentypen) werden zur Verfügung gestellt. Es gibt auch vorgefertigte Methoden, wie round(), sqrt(), isEmpty(), charAt(), substring(), find(), replace(), elements(), elementAt(), removeAt(), replaceAt(), insertAt(), compare(), toString(), getHost(), getPort() und getPath(), die ohne größere Komplikationen verwendet werden können.

Einige Beispiele:

-   round() rundet eine Fließkomma Zahl (float) zu einer Ganzen Zahl (int)
-   sqrt() zieht die Quadratwurzel aus einer Zahl
-   isEmpty() überprüft, ob ein Objekt leer ist
-   charAt() gibt das Zeichen an einer bestimmten Position in einem String zurück.
-   insertAt() fügt ein Zeichen an einer bestimmten Position in einen String ein.
-   compare() vergleicht zwei String´s miteinander.
-   toString() wandelt einen anderen Datentyp in einen String um.
-   getHost() liefert die Host - Adresse, nach der man frägt.

In WML-Skript wird das selbe Fehlerbehanlungs-Modell wie bei Java und Java-Skript eingesetzt.
Um noch näher auf WML-Skript einzugehen, würde an dieser Stelle zu weit führen.

 

4.3   Schlußteil

4.3.1   Anwendungsbeispiele

Die WAP-Technologie könnte beispielsweise in Navigationssystemen eingesetzt werden. Hier liegt der entscheidende Vorteil darin, daß für Fahrtrouten dinge wie Baustellen oder Staus gleich berücksichtigt werden können und entsprechend umfahren werden können.
Zur Abfrage von Aktienkursen kann es auch eingesetzt werden. Somit kann man schneller aggieren, wenn man beispielsweise mit dem Zug unterwegs ist.
Man kann das Wetter abrufen, um sich zum Beispiel seine Kleidung auszuwählen, bevor man irgendwo hin geht.
Man kann e-mails schreiben um auch während einer Geschäftsreise in schriftlichem Kontakt mit einem Geschäftspartner zu bleiben.
Man kann bei Online-Auktionen über´s Netz mit bieten und gute Schnäppchen erzielen.

Ob diese Beispiele für jeden einzelnen Sinn machen, muß jeder für sich selbst entscheiden. Es sind wie gesagt nur Beispiele.

4.3.2   Schlußwort

Insgesamt ist das WAP-Modell ein gut ausgetüfteltes Schema. Es ist schon beeindruckend, wie auf solch kleinen Displays noch so viel dargestellt werden kann. Auch die Navigationsmöglichkeiten sind gut gestaltet. Es wäre ein Unding, wenn man eine 20-stellige URL über ein Nummern-Pad eingeben müßte, wobei eine solch lange URL nichts ungewöhnliches ist. Das auch HTML-Seiten betrachtet werden können, ist ebenfalls eine tolle Sache.

Sicher ist noch nicht alles zu 100% ausgereift, aber wann war jemals ein Standard oder ein Software-Produkt gleich beim ersten Anlauf Perfekt?

Ob die Entwicklung - und wo sie hin führt - jeder einzelne gut findet, oder ob das Ganze eine Spielerei ist muß jeder für sich selbst entscheiden.

Ich persönlich halte diese Technik für eine 'Spinnerei'. Letztendlich werden wir immer Häufiger mit einer Datenflut überschüttet, da muß man froh sein, wenn man mal ruhe davor hat. Es werden so wie so nur die 'wichtigen' Leute ein solches Handy besitzen und einsetzen. Ich kenne sehr viele Geschäftsführer, die kein Handy besitzen.

Die einzige Einsatzmöglichkeit die ich für sinnvoll halte ist im Navigation-System-Bereich.

 

4.4   Anhang

4.4.1   Anhang A: WAP-Schichtenmodell

 

 

4.4.2   Anhang B: Stack-Beispiel

 

 

4.4.3   Anhang C: HTML-Filter-Schema

 

 

4.4.4   Anhang D: Verbindungsschema

 

 


<<zurück           ^hoch           Home           Inhalt           weiter>>