Transcript Folie 1

WAP und WML
Vortraghaltender: Eric Sternberg
Inhalt
Was ist was
Geschichtliches
Wie ist WAP aufgebaut
Wie funktioniert WAP
Die Sprache WML
•
•
Eigenschaften und Besonderheiten
Dokumentaufbau
WAP Anwendungen mit WML
•
•
•
•
Grundlegende Formatierung
Softkeys, Aktionen, templates
Events, Variablen, Eingaben
Selections, Timer, Grafiken
WML Skript
Was ist was
•
WAP (Wireless Aplication Protokoll) ist ein Standart zum bereitstellen von
Internetinhalten in einem Mobilfunknetz.
•
WAP wird als Oberbegriff für verschiedene Technologien verwendet
•
WAP ähnelt in vielen Punkten dem Internetstandart HTTP über TCP\IP,
allerdings wurde es für die Beschränkungen, die in einem Mobilfunknetz
herrschen entwickelt.
•
•
•
•
Lange Antwortzeiten (Latenz)
Eingeschränkte Bandbreite
Instabile Verbindungen
Eingeschränkte Endgeräte (Bedienung, Speicher, Anzeige, usw.)
•
WML (Wireless Markup Language) ist die zugehörige
Seitenbeschreibungssprache (äquivalent HTML im www)
•
Mit WML wird der content für das mobiele Internet entwickelt
Geschichtliches
•
1997 wurde das WAP-Forum (heute
Open Mobile Aliance) von Ericson,
Motorola, Nokia und Phone.com (heute
Openwave) gegründet
•
1997 wurde WAP 1.0 veröffentlicht, es basierte auf der von Openwave
entwickelten HDML (Handheld Device Markup Language)
•
WAP 1.0 war unausgereift, es fehlte an Endgeräten und Browser Software
•
1999 kam Version 1.1, welche nicht mehr zu 1.0 kompatibel war jedoch
übernahm 1.1 XHTML Konventionen und konnte sich besser durchsetzen
•
1999 kam Version 1.2 welche eine Verbesserung von 1.1 war, es wurden jetzt
auch Push-Dienste und User Agent Profile unterstützt.
•
WAP in den Versionen 1.1 und 1.2 ehr enttäuschend
•
2001 WAP 2.0, kompatibilität zum web wurde durch neue Protocolle und
HTML unterstütung deutlich verbessert
Geschichtliches
• WAP in den Versionen 1.1 und 1.2 ehr enttäuschend
• WML hat sich von Vers. 1.0 1998, Vers. 1.1 (xml based) 1999, Vers.
1.2 ende 1999, Vers. 1.3 Anfang 2000 und schließlich 2001 Vers.
2.0 (XHTML + CSS + WML 1.x) entwickelt.
• 2001 WAP 2.0
• Wichtigste Neuerung, WAP Protokolle WSP, WTP und WTLS
wurden durch HTTP ,TSL(SSL) und TCP ersetzt
• Das Proxy-Konzept wurde aufgeweicht somit konnte nun erstmals
der Client (Handy etc.) mit dem Web-Server direkt kommunizieren
(WAP-Gateway überflüssig)
WAP Aufbau
• Auch WAP ist an das OSI 7 Schichten Modell angelehnt
WAP Aufbau (Überblick)
• WAE (Wireless Aplication Enviroment), WML Browser, Skript
Interpreter,… WTAI (Wireless Telephony Aplication)
• WSP (Wirerless Session Protocol), Sitzungsschicht,
Gegenstück zum HTTP
• WTP (Wireless Transaktion Protocol), Transportschicht
Gegenstück zu TCP
• WTLS (Wireless Transaktion Layer Security), optionaler
Sicherheitslayer, Gegenstück zu TLS (früher SSL genannt)
• WDP (Wireless Datagramm Protocol), Transportschicht, wie
UDP
• Schliesslich Bearer Netzwerk, gsm, umts etc.
WAP Aufbau
• Jede Schicht hat spezielle Aufgaben
• Jede Schicht hat eine Schnittstelle zur übergeordneten Schicht, das
macht flexibel, man kann neue Schichten einfügen erweitern etc.
• Es gibt Optionale Schichten, WTP oder auch WTLS (falls man keine
zuverlässige Übertragung braucht)
• Die untersten Schichten werden nicht durch WAP realisiert, WAP ist
hier flexibel
• Die letztendliche Datenübertragung geschieht allgemein über
bereits vorhandene Mobilfunk Protokolle wie GSM mit CSD, SMS
und GSM Erweiterungen wie HSCSD, GPRS, EDGE oder UMTS
und Erweiterungen HSDPA \ HSUPA
WAP Aufbau (WAE Layer)
• WAE (Wireless Aplication Enviroment) stellt eine allgemeine
Anwendungsumgebung bereit und enthält folgendes
• WML Browser, WMLSkript und Interpreter
• WTAI (Wireless Telephony Aplication), stellt Framework zur
Verfügung dessen Hauptaufgabe ist die Kommunikation mit den
Telefonfunktionen
• Content Formate, eine reihe wohl definierter Dateiformate wie Bilder
oder Telefonbucheinträge
• WAP Stack, realisiert WAP Protokolle
WAP Aufbau (WSP Layer)*
•
WSP (Wireless Session Protocoll), Aufgabe übertragen von WAP
Innhalten
•
Schnittstelle zwischen Anwendungs und Transportschicht
•
Basiert auf http 1.1 Protokoll, hat jedoch zusatzfunktionen
•
Verbindungsorientiert mit WTP, verbindungslos mit WDP
•
Daten werden in Kompilierter „Binär“ Form, nicht in ASCI wie bei
http übertragen
•
WSP kann Sitzungen unterbrechen und wider aufbauen ohne die
Sitzung Serverseitig zu beenden -> sehr lange Sitzungen sind
möglich
•
Aushandeln von Optionalen Protocollfunktionalitäten
•
Z.B. mehrere Sessions gleichzeitig , diverse Push und Pull
funktionen
WAP Aufbau (WTP Layer)*
•
WTP (Wireless Transport Protocol) Realisiert
zuverlässige Datenübertragung (optional vor
WDP)
•
Kümmert sich um verlorene Packete,
wiederanfordern, dublikate erkennen usw.
•
Verfügt über 3 übertragungs Arten
•
Unzuverlässige Einwegübertragung, Packet
schicken ohne Ack.
•
Zuverlässige Einwegübertragung, Packet
schicken mit Ack.
•
Zuverlässige Zweiwegübertragung, Packet
schicken, antwort Packet empfangen, Ack.
zurück schicken
 Aufgabe: Zuverlässige und effiziente Nachrichtenübertragung
WAP Aufbau (WTP Layer)*
 Zuverlässig durch
 Effizient durch
 Transaction-IDs für alle
 Schnellen Verbindungsauf/-abbau
PDUs
 Implizite
Realisiert „verbindungsorientierte“ übertragung
über WDP,Acknowledgements
entspricht TCP im www
 Handshaking mit ACKs und
 Asynchrone Transaktionen
Neuübertragung im Fehlerfall
 Verketten/Trennen von PDUs
in/aus Datagramm-SDUs
 WTP bietet drei Transaktionsklassen
Initiator
Responder
Invoke (TID=N, TG, c0 ...)
Initiator
Responder
Invoke (TID=N, TG, c1 ...)
Result (TID=N*, TG, ...)
Ack (TID=N*)
Klasse 0
Universität Würzburg
Verteilte Systeme
Initiator
Responder
Invoke (TID=N, TG, c2, ...)
Klasse 1
Ack (TID=N)
Klasse 2
WAP Aufbau (WTLS Layer)*
•
WTLS (Wireless Transport Level Security)
optionaler Sicherheitslayer
•
WTLS basiert auf SSL
•
Stellt Datenverschlüsselung zur verfügung
•
Stellt Authentifizierungsdienst zur verfügung
(durch Kryptosignaturen ähnlich digitale
Unterschrift)
•
Problem, Daten sind entschlüsselt auf dem
WAP-Gateway
WAP Aufbau (WDP Layer)*
•
WDP (Wireless Datagram Protocol) ,
Transportschicht
•
Ist kompatibilitäts Layer zwischen Bearer
(Innhaber oder auch Träger) Netzwerk (GSM
etc.) und den darüber liegenden Layern
•
Realisiert „verbindungslose“ übertagung von
Datagrammen
•
Entspricht UDP im www
•
Wird auch durch UDP bei IP basierten Bearer
Netzwerken realisiert
WAP 2.0
•
Die Protokolle WSP, WTP und WTLS wurden durch WP-HTTP, WP-TSL, WP-TCP
ergänzt
•
WP steht für Wireless Profiled
•
WML 2.0 ist XHTML + CSS + WML 1.x
•
Nun ist auch eine Direktverbindung Zwischen Handy und HTTP Server möglich
•
Unterstützt User Agent Profile Specification (UAProf)
•
Mit UAProf kann der Server eine auf das Endgerät zugeschnittene Seite (Display
auflösung, Farbtiefe usw.)erstellen
•
MMS wurde mit WAP 2.0 eingeführt
•
Verbesserungen bei den Push Services (ging schon ab WAP 1.2)
•
Hat Geschwindigkeitsprobleme bei CSM und GPRS (ältere Übertragungsmodi)
Funktionsweise
•
Altes WAP-Gateway Prinzip
(WAP 1.x)
•
Clients können direkt mit WAP
Server kommunizieren, jedoch
nicht direkt mit http Server
•
Um auf Webinhalte zugreifen zu
können benötigte man einen
Gateway Server
•
Funktionsweise nach dem
Proxyprinziep
•
Um Bandbreite zu sparen
werden die Daten zwischen
Client und Gateway in
kompilierter Form gesendet
Funktionsweise
•
Kommunikation zwischen Client und Webserver über WAP Gateway
WAP-Modell
Gateway
Origin Server
Client
Encoded Request
WAE
WAE
User
User
Agent
Agent
Request
Encoders
Encoders
and
and
Decoders
Decoders
Encoded Response
CGI
Scripts,
etc.
Content
Response (Content)
 Wie bei WWW: Einheitlicher Zugriffsmechanismus, einheitlichesContent-
WAP Gateway
•
Daten werden vom Gateway zwischen WML und html hin und her Transformiert, falls
erforderlich
•
Hat öfters unerwünschte Nebeneffekte
•
Besser der Content Server bietet direkt WML content an
•
Gateway ent- und verschlüsselt
•
Sensible Daten liegen hier kurz im klartext vor
•
Authentifizierung nur zwischen Client und Gateway, nicht wie Sinnvoll zwischen Client
und content Server
•
WAP Gateway ist ab WAP 2.0 eigentlich überflüssig, da jetzt auch HTTP, TLS, TCP
und mit WML 2.0 auch XHTML unterstützt wird
WML
•
Basiert auf XML
•
Eine WML Datei auch Deck genannt beinnhaltet
eine oder mehrere Cards
•
Eine Card ist vergleichbar mit einem HTML
Dokument
•
Strenge Regeln gegenüber HTML
• Durchgehend Case sensitive
• Alle öffnenden Tags müssen auch geschlossen
werden ( wie { ..})
•
Ab WML 2.0 auch XHTML inkludiert
•
Dynamisches WML z.B. mit PHP möglich
•
Unterstützte früher nur 1 SW bildformat namens
WBMP
Aufbau einer WML Datei
Formatierung und Links
Grunglegende Tags zur Formatierung und zum verlinken
<p align=„left“>…</p>
Absatz
<br />
Zeilenumbruch
<a href=…> </a>
Hyperlink wie in html (statisch oder dyn.)
<b>…</b>
Textformat „bold“
<i>…</i>
Textformat „italic“
<small>…</small>
kleinere Schrift
<big>…</big>
grössere Schrift
<em>…</em>
hervorgehobene Schrift
<u>…</u>
unterstrichen
Das Ergebnis hängt von den fähigkeiten des Browser ab
Formatierung und Links
Aktionen und Templates
•
Das Tag <do> erzeugt Softkeys und führt ein
Ereignis aus
•
Es hat diverse Attribute
• type: legt die art der Aktion fest (accpt,
options, prev…)
• label: ist die beschriftung
• optional: entweder true (Key muss nicht
unbedingt angezeigt werden) oder
standartmässig false
• name: wichtig wenn mehrere <do> auf
einer card, default name ist der type
•
Templates „verbessern“ Überblick und
„sparen“ Platz
•
Tags im Template gelten für alle Cards
•
Template muss in den Cards wo es nicht
wirken soll überschrieben werden
Softkeys und Aktionen
Templates in WML
Events, Variablen, Eingaben
•
•
•
•
•
•
•
Events werden ausgelöst
wenn z.B. eine card geladen
wird
Sie können abgefangen
werden
Variablen werden mit
<setvar> initialisiert und mit $
ausgegeben/erkannt
Will man ein $ schreiben muss
man $$ nutzen
Können nicht überall
eingesetzt werden
Eingaben sind mit dem
<input> Element möglich
Diverse Parameter z.B.
Passwordfeld oder nicht
Selections, Timer, wbmp, xhtml
•
•
•
•
•
•
•
•
•
Selections verbessern
die übersichtlichkeit
Hat diverse Attribute, z.B
value und name
In einem select Element
können nur option und
optgrout Elemente
stehen
Timer löst Event aus
wenn er abgelaufen ist
Wird mit dem <timer>
Tag gesetzt (10 = 1sec)
Kann auch zum erstellen
von animationen benutzt
werden
wbmp ist das einzige
Grafikformat in WML
WMLSites können auch
im „Packet“ d.h. Grafik
und WML Datei geladen
werden
XHTML(ab WML2.0)
macht auch Bildformate
wie gif, jpeg
WML Script
•
Ist das Gegenstück zu Java Script in HTML
•
Anders als bei Java Script muss WML Script
immer in einer eigenen Datei liegen
•
WML Script sind reine ASCII Dateien, deren
Dateiendung immer .wmls ist
•
Es stellt grundlegende Rechenoperationen,
Datenstrukturen und Bibliotheken zur
verfügen
•
Das WTAI ist eine solcher Bibliotheken mit der
WML Skript z.B Anrufe tätigen kann.
•
Ein Skript wird über einen Funktionsaufruf
gestartet, diesen kann mann z.B. an einen
Link anhängen
WML Datei (beispiel.wml)
WML Script Datei (simpleScript.wmls)
Verwendete Programme und Quellen
WordPad
NBW
Nokia Mobile Browser
pic2wbpm : Tool um Grafiken in das
Format wbmp umzuwandeln
NMB Nokia Mobile Browser
WAP, WML und WMLScript
http://www.forum.nokia.com/
ISBN-10: 3827259959
http://www.wml-tutorial.de/
http://de.wikipedia.org/
http://www.html-world.de/