3. Wireless Application Protocol (WAP)
description
Transcript of 3. Wireless Application Protocol (WAP)
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
1
3. Wireless Application Protocol (WAP)
Internet Protokolle und FormateInternet Protokolle und Formate
3. Wireless Application Protocol
Sebastian Weber
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
2
3. Wireless Application Protocol (WAP)
drahtlose Verbindungen:Probleme mit Bandbreite, Stabilität, Erreichbarkeit, Zeitverzögerung
mobile Endgeräte:Probleme mit Displays, Darstellung, Speicher, Rechenleistung, Energie,Eingabeschnittstelle
Betreiber:Bedarf an Interoperabilität, Skalierbarkeit,
Sicherheit, Globalität
Problem:Wie kommen
Inhalte auf mobile End-
geräte?
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
3
3. Wireless Application Protocol (WAP)
Lösung: WAP
3.1 Schichtenmodell3.2 Wireless Application Environment (WAE)3.3 WAP Infrastruktur3.4 Programmierung
3.4.1 WML3.4.2 WMLScript
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
4
3.1 WAP Schichtenmodell
Träger ...SMS CSD HSCSD GPRS
Anwendungsschicht WAE
Sitzungsschicht WSP
Transaktionsschicht WTP
Sicherungsschicht WTLS
Transportschicht WDP
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
5
3.1 WAP Schichtenmodell
Wireless Datagram Protocol (WDP)- Schnittstelle: Träger <–> obere Schichten- spezifiziert Trägerunterstützung- gleicht Unterschiede der Träger aus
Wireless Transport Layer Security (WTLS)- Funktion: Verschlüsselung, Authentifizierung,
Datenintegrität, Schlüsselmanagement- optional
Träger
WAEWSPWTPWTLSWDP
Träger
WAEWSPWTPWTLSWDP
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
6
3.1 WAP Schichtenmodell
Wireless Transaction Protocol (WTP)- verbindungsorientiert- bietet:
- unzuverlässige One-Way-Requests- zuverlässige One-Way-Requests- zuverlässiger Two-Way-Requests
Wireless Session Protocol (WSP)- Sitzungsverwaltung- verbindungsorientiert/verbindungslos
Träger
WAEWSPWTPWTLSWDP
Träger
WAEWSPWTPWTLSWDP
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
7
3.2 Wireless Application Environment (WAE)
Wireless Markup Language (WML)- basiert auf HDML (Unwired Planet‘s Handheld Device
Markup Language) & XML
WAP Binary XML Content Format (WBXML)- Datenreduzierung- „Tokenizing“: Tag -> Nummer
WML Script- Funktionen auf Client -> verringert Netzwerklast
Träger
WAEWSPWTPWTLSWDP
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
8
3.2 Wireless Application Environment (WAE)
Wireless Telephony Application (WTA)- telefonspezifische Funktionen
Content Formate- vCard 2.1- vCalendar 1.0- Multipart Messages- WTA Events- Standard Grafikformate (TIFF, JPEG, GIF)- WBMP – Wireless Bitmap- Pictogramme
Träger
WAE
WSP
WTP
WTLS
WDP
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
9
3.3 WAP Infrastruktur
Dateien,Scripte,
...
WAP Client
WAP Gateway/
Proxy
HTTP Server
drahtlose Verbindung drahtgebundene Verbindung
WAE Services WMLScript
Compiler
WML Encoder / Decoder
WAE User Agent
encoded response
encoded request
response
request
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
10
3.3 WAP Infrastruktur
User Agent Profile
- Eigenschaften des WAE User Agent
Beispiel für WSP/HTTP Header:
Accept:
application/x-wap.wmlc; uaprof=http://www.beispiel.de/,
application/x-wap.wmlscriptc; uaprof=http://www.beispiel.de/,
text/x-vcard,
text/x-vcal
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
11
3.4 Programmierung >> 3.4.1 WML
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN“ "http://www.wapforum.org/DTD/wml_1.1.xml"> <!– Prolog -->
<head> <!–- Dateizugriff, Meta --> </head>
<template> <!–- für alle Cards gültige Spez. --> </template>
<wml>
<card id="Karte1" title="Erste Karte"> ... </card>
<card id="Karte2" title="Zweite Karte"> ... </card>
<card id="Karte3" title="Dritte Karte"> ... </card>
</wml>
DECK
CARD
CARD
CARD
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
12
3.4 Programmierung >> 3.4.1 WML
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="home" title="Pizzadienst">
<p align="center"><img src="pizza.wbmp" alt="Pizza"/></p>
<p>Willkommen beim Pizzadienst</p>
<p>
<small><a href="#card1">zur Bestellung ...</a></small><br/>
<small><a href="#kontakt">Kontakt</a></small>
</p>
</card>
- <p> ... Absatz- <br/> ... Zeilenumbruch- <small>, <strong> ... Textformatierung- <a> ... Link
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
13
3.4 Programmierung >> 3.4.1 WML
<card id="card1" title="Pizza: Schritt 1">
<p>
<do type="accept" label="Weiter: Schritt 2"><go href="#card2"/></do>
<do type="unknown" label="Zurück zum Start"><go href="#home"/></do>
<strong>Bitte geben Sie ein</strong><br/>
Name: <input name="name" type="text" format="*A"/><br/>
Anschrift: <input name="anschrift" type="text"/>
</p>
</card>
- <do> ... Button-Belegung- <go> ... definiert Ziel- <input> ... Eingabe-Element
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
14
3.4 Programmierung >> 3.4.1 WML
<card id="card2" title="Pizza: Schritt 2">
<p>
Hallo $(name)!<br/>
Wählen Sie Ihre Pizza:<br/>
<select name="wunsch">
<option value="ph">Pizza Hawaii</option>
<option value="ps">Pizza Salami</option>
<option value="pm">Pizza Magaritha</option>
</select>
<do type="accept" label="Weiter: Schritt 3"><go href="#card3"/></do>
</p>
</card>
- $(var) ... Zugriff auf Variable- <select> ... Auswahlliste mit:- <option> ... Listenelement
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
15
3.4 Programmierung >> 3.4.1 WML
<card id="card3" title="Pizza: Schritt 3">
<do type="accept" label="Senden!">
<go href="/process" method="post">
<postfield name="name" value="$(name)"/>
<postfield name="anschrift" value="$(anschrift)"/>
<postfield name="wunsch" value="$(wunsch)"/>
</go>
</do>
<do type="prev" label="Neustart"><go href="#home"/></do>
<p>Daten absenden oder zurück zum Start?</p>
</card>
- <postfield> ... konkateniert Variablenwert und Variablenname und fügtzur URL hinzu: /process?name=Mustermann&anschrift=Teststraße&wunsch=ph
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
16
3.4 Programmierung >> 3.4.1 WML
<card id="kontakt" title="Kontakt">
<p>
Rufen Sie uns an: <a href="wtai://wp/mc;033108154711">0331/08154711</a><br/>
<a href="wtai://wp/ap;033108154711;Pizzadienst">Tel.buch-Eintrag anlegen</a>
</p>
</card>
</wml>
- wtai://wp/mc;Nummer ... Anruf tätigen- wtai://wp/ap;Nummer;Bezeichnung ... Telefonbucheintrag hinzufügen
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
17
3.4 Programmierung >> 3.4.2 WMLScript
Funktionen- Kopf: extern function Identifier(FormalParameterList) {
... function body ...
}- Aufruf: Identifier(FormalParameterList);
Statements- if-then-else: if(Ausdruck) Statement else Statement;- While: while(Ausdruck) { ...Statement ... };- For: for(Variable/Ausdruck; Audruck; Ausdruck) {
Statement
};
WMLScript Standard Libraries- Standard Funktionen können von Applikationen genutzt werden
(Lang, String, URL, WMLBrowser, Dialogs, Float [optional])
12.01.2002 Proseminar „Allgegenwärtiges Rechnen“Internet Protokolle und Formate
18
3.4 Programmierung >> 3.4.2 WMLScript
<card id="card1" title="Währungsrechner"> <p>
<select name="cur"><option value="eur2dm">EURO zu DM</option><option value="dm2eur">DM zu EURO</option>
</select><input name="wert" type="text"/>Resultat: $(result)
</p>
<do type="accept" label="Berechne!"><go href="currency.wmls#currency('result','$(cur)','$(wert)')"/>
</do></card>
extern function currency(varName,cur,wert) { var result;
if(cur == 'eur2dm') result = wert*1.9558;else result = wert/1.9558;
WMLBrowser.setVar(varName, result);WMLBrowser.refresh();
}
WML-Seite: currency.wml
WMLScript-Datei: currency.wmls