WPA wireless Application Protocol WML wireless Markup Language

auroratexicoΑσφάλεια

19 Ιουν 2012 (πριν από 1 χρόνο και 4 μέρες)

330 εμφανίσεις

:$3:LUHOHVV$SSOLFDWLRQ3URWRFRO
:0/
:LUHOHVV0DUNXS/DQJXDJH
Didier DONSEZ
Université Joseph Fourier
IMA –IMAG/LSR/ADELE
'LGLHU'RQVH]#LPDJIU
'LGLHU'RQVH]#LHHHRUJ

'LGLHU'RQVH]:$3:0/
2
Au sommaire

Motivations

L’architecture WAP

WML

WMLScript

WAP 2.0

Divers

'LGLHU'RQVH]:$3:0/
4
Motivations

WAP :LUHOHVV$SSOLFDWLRQ3URWRFRO

stackréseau pour un protocole HTTP «like» et «light»

Utilise les couches réseaux des réseaux cellulaires

à la place d’IP, UDP, TCP

WML :LUHOHVV0DUNXS/DQJXDJH

langage hypertextuel adapté aux handsets nomades

basé sur XML/DTD : il existe un format plus compact (bytecodé)

'LGLHU'RQVH]:$3:0/
5
Exemple d’Applications WAP/WML

Bourse

Banque

Administration

Actualité

Météo

Info Trafic

Horaires/Retards/Grèves
transport en commun

Mobile Commerce,

MobilePayment

Ticket

Jeux

Géo-Localisation

Alternative au GPS

Cartographie

Email, VoiceMail

Mobile PIM

(PersonalInfo Management)

Agenda

Carnet d’Adresse...

'LGLHU'RQVH]:$3:0/
6
Motivations du WAP

architecture en couche extensible et évolutive

supporter par les différents réseaux mobiles

économie des ressources du terminal/réseau

mémoire, CPU, consommation électrique, bande passante

sécurisation des applications et des communications

modèle programmable pour les services téléphoniques

créer des interfaces homme-machine flexibles

réutiliser sur des technologies largement répandues

XML, ECMAScript,VCard,VCal, …

'LGLHU'RQVH]:$3:0/
7
WAP
:LUHOHVV$SSOLFDWLRQ3URWRFRO

Architecture WAP

Client WAP (WAE User Agent)

Supporte WML, WMLScript HQ%\WH&RGH

6XSSRUWHG¶DXWUHVIRUPDWVpYHQWXHOOHPHQWY&DUGY&DO0XOWLSDUW«

WAP Proxy

WAP Server

2 modèles d’interaction

Pull

Push

'LGLHU'RQVH]:$3:0/
8
Architecture Réseau
6HUYHXU
:::
6HUYHXU
:::
6HUYHXU
:::
Internet
3DVVHUHOOH
:$3
6HUYHXU
7HOH9$6
)LOWUH
)LOWUH
3UR[\:$3
WMLC/WAP
WMLC/WAP
WMLC/WAP
WML/HTTP
WML/HTTP
HTML
HTTP
HTML
HTTP
WMLC/WAP
:$3
+DQGVHWV
Réseau GSM

'LGLHU'RQVH]:$3:0/
9
Modèles d’interaction

Pull

Push
Client
WAE
User
Agent
WAE
User
Agent
Gateway
Decoders
Encoders
Decoders
Encoders
Server
Scripts
(JSP,PHP,
ASP, …)
Scripts
(JSP,PHP,
ASP, …)
Contents
Contents
Encoded
RequestWSP
Request
HTTP
Encoded
ResponseWSP
Response
WML
Client
WAE
User
Agent
WAE
User
Agent
Gateway
Decoders
Encoders
Decoders
Encoders
Server
Scripts
Scripts
Contents
Contents
Encoded
Content
SL or SI
Content
SL or SI

'LGLHU'RQVH]:$3:0/
10
WAP
/HV&RXFKHV
WIRELESS APPLICATION
ENVIRONMENT( WAE )
WIRELESS SESSION PROTOCOL( WSP )
WIRELESS TRANSACTION PROTOCOL (WTP)
WIRELESS TRANSACTION LAYER SECURITY (WTLS)
WIRELESS DATAGRAM PROTOCOL( WDP )
BEARER SERVICES
GSM
HTML
HTTP
TLS -SSL
TCP / UDP
OTHERS
IP
IS-136
PHS
CDMA
CDPD


'LGLHU'RQVH]:$3:0/
11
Les supports porteurs –Bearers

Différents services des supports

GSM, PHS, CDMA, FLEX,iDEN, CDCP, IS6136

GPRS, UMTS, W-CDMA (WAP 2.0)

différents niveaux de qualité de service

'LGLHU'RQVH]:$3:0/
12
WDPWirelessDatagram Protocol

Opère au dessus des services des porteurs de données

Supporte de nombreux réseaux.

offre un service aux couches supérieures du WAP et
communique de façon transparente au dessus de l’un des
services des supports.

'LGLHU'RQVH]:$3:0/
13
WTLS WirelessTransport Layer Security

But

protocole de transport WAP optimisé pour l’usage des canaux de
communication de bande passante faible.

Fonctionnalités

Intégrité des données

Privacy : Préserve la vie privée du client

Authentification (PKI)

Protection contre les accès non autorisés

sécuriser de terminaux à terminaux

utilisation des «credentials» des cartes à puce

Activation/Déactivation de WTLS par les applications

en fonction des besoin de sécurité

et des caractéristiques du réseau

ex: dans le GSM où la sécurité se fait dans une couche plus basse

Basé sur le protocole TLS ( Transport LayerSecurity)

'LGLHU'RQVH]:$3:0/
14
WTPWirelessTransaction Protocol

au dessus du service datagramme
fonctionne comme un protocole de transaction orientée.

3 classes de service de transaction

requêtes simples non fiables (classe 0)

requêtes simples fiables (classe 1)

transaction de requête/réponse fiables (classe 2)

En option

fiablilitéutilisateur-utilisateur

protocole de confirmation de messages reçus

out of band data onacknowledgement

Concaténation PDU et acquittement retardé
pour limiter le nombre de messages envoyés

Transaction asynchrone

'LGLHU'RQVH]:$3:0/
15
WSPWirelessSessionProtocol

2 types de service de session

mode orienté connexion

opère au dessus du protocole de la couche transaction WTP

mode non connecté

il opère au dessus du service dedatagrammesécurisé ou non sécurisé
(WDP)

Fonctionnalités suivantes

Mode connexion

Entête plus compact d’HTTP/1.1
Négociation du contenu, …

Etat de session longue durée

Suspension de session et aussi reprise avec migration de session

PUSH

'LGLHU'RQVH]:$3:0/
16
Optimisation des échanges réseaux
6RXUFH:$3)RUXP

'LGLHU'RQVH]:$3:0/
17
WAE
WirelessApplication Environnement

Environnement du User Agent

WMLWireless Markup Language

documentshypertextuelspour mobile

WMLScript

langage léger de script ( ressemble auJavascript)

Autres Formats de Données

image, agenda téléphonique (vCard), calendrier (vCal), …

Générateur de contenu

Encodage Standard du Contenu

BytecodeWML et WMLScript

WTA, WTAIWireless TelephonyApplication

interfaces programmables des service téléphonique

'LGLHU'RQVH]:$3:0/
18
Mise en Œuvre de WDP sur le GSM

SMS

USSD

Circuit commuté(circuit switched)

GPRS (Commutation de Paquets)

'LGLHU'RQVH]:$3:0/
19
WML
:LUHOHVV0DUNXS/DQJXDJH

Document WML

'7'KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO

«jeu de cartes» desk of cards

Elémentsdans les cartes

Tables, images (wbmp), ancres (navigation entrecards)

Fonctions WMLScript (appelé par les commandes,timer…)

2 formes

textuelle (text/vnd.wap.wml)

bytecode(application/vnd.wap.wmlc)

compact (stockage ,transfert)

simplifie l’automate du client (CPU)

'LGLHU'RQVH]:$3:0/
20
Un premier exemple
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
ZPO!
FDUGLG FDUGWLWOH :HDWKHU)RUHFDVW!
S!
WDEOHFROXPQV DOLJQ /&&!
WU!WG!'DWHWG!WG!) DSRVFDVWWG!WG!7 [%&WG!WU!
WU!WG!0WG!WG!
LPJVUF UDLQ\ZEPSDOW UDLQ!
WG!
WG! [%&WG!WU!
WU!WG!7WG!WG!
LPJVUF SDUWFOG\ZEPSDOW SDUWFOG\!
WG!WG! [%&WG!WU!
WU!WG!:WG!WG!
LPJVUF FORXG\ZEPSDOW FORXG\!
WG!
WG! [%&WG!WU!
WU!WG!7WG!WG!
LPJVUF UDLQ\ZEPSDOW UDLQ\!
WG!
WG! [%&WG!WU!
WU!WG!)WG!WG!
LPJVUF VXQQ\ZEPSDOW VXQQ\!
WG!
WG! [%&WG!WU!
WDEOH!
S!
FDUG!

ZPO
!

'LGLHU'RQVH]:$3:0/
21
Le document WML

Analogie au jeu (desk) de plusieurs cartes (card)

Chaque carte constitue une page d’affichage sur le UA

L’usager peut naviguer d’une carte à l’autre (sans téléchargement)
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
ZPO!
FDUGLG FDUGWLWOH &DUWH!S!&DUWHS!FDUG!
FDUGLG FDUGWLWOH &DUWH!S!&DUWHS!FDUG!
FDUGLG FDUGWLWOH &DUWH!S!&DUWHS!FDUG!
ZPO!

'LGLHU'RQVH]:$3:0/
22
L’élément <wml>

Représente un document

Contient

Un entête <head>

Contient des méta-informations <meta> et des règles d’accès <access>

Un patron <template> pour les cartes

Factorise des commandes <do>
ou les traitements des événements <onevent>
entre toutes les cartes

Une suite de <card>

'LGLHU'RQVH]:$3:0/
23
L’élément <card>

Contient

Des paragraphes <p> à afficher

Des commandes <do> à réaliser sur actions des entrées

Des traitements sur événement <onevent>

Un déclenchement de temporisateur <timer>

Attributs

newcontext

=true, les variables sont relâchées, l’historique est supprimé

title

ordered

onenterforward,onenterbackward,ontimer

'LGLHU'RQVH]:$3:0/
24
Mise en page d’une Carte

Elémentparagraphe <p>

Attributalign=left|center|right

Attribut mode=wrap|nowrap
FDUGLG FDUGWLWOH &DUWH!
S!
SDUDJUDSKHDJDXFKHSDUGHIDXW
S!
SDOLJQ FHQWHU!
SDUDJUDSKHFHQWUH
S!
SDOLJQ ULJKW!
SDUDJUDSKHDGURLWH
S!
SPRGH QRZUDS!
SDUDJUDSKHVDQVSDVVDJHDODOLJQH
S!
FDUG!

Elémentde rupture de ligne <br/>
S!UXSWXUH
EU!
GHOLJQHS!

Propriétés des caractères
L!YRWUHWH[WHHQLWDOLTXHL!E!YRWUHWH[WHHQJUDVE!
VPDOO!YRWUHWH[WHHQSHWLWVPDOO!ELJ!YRWUHWH[WHHQJUDQGELJ!
X!YRWUHWH[WHVRXOLJQ [(X!

'LGLHU'RQVH]:$3:0/
25
Les entités WML

"&quot;

&&amp;

’&apos;

<&lt;

>&gt;

[Espace]&nbsp;

-&shy;

à&#xE0;

é&#xE2;

è&#xE9;

ê&#xEA;

ù&#xxF9;

û&#xFB;

ç&#xE7;

©&#xA9;

®&#xAE;

'LGLHU'RQVH]:$3:0/
26
Table

Exemple de table 3x3
WDEOH
FROXPQV 
WLWOH PDWUL[
DOLJQ 5&/
!
WU!WG!WG!WG!WG!WG!WG!WU!
WU!WG!WG!WG!WG!WG!WG!WU!
WU!WG!WG!WG!WG!WG!WG!WU!
WDEOH!

Attributs
•FROXPQV
est obligatoire : simplifie l’interpréteur

WLWOH
(optionnel) peut être affiché par le navigateur

DOLJQ
(optionnel) décrit l’alignement de chaque colonne

/SRXU/HIW5SRXU5LJKW&SRXU&HQWHU

'LGLHU'RQVH]:$3:0/
27
Les Images

WML supporte l’inclusion d’images
LPJVUF ORJRZEPSDOW &HFLHVWQRWUHORJR!
DKUHI FDUG!LPJVUF EXWWRQQH[WZEPSDOW 1H[W«!D!
Le UA peut supporter plusieurs formats (PNG, BMP)
cependant le format WBMP (Wireless BitMaP) est optimisé
pour leWireless(convertisseur JPEG,GIF,BMP vers WBMP)

Pictogrammes

Diffère entre les UA en WAP 1.0

l’application n’est pas portable

Désormais normalisé dans WAP2.0

'LGLHU'RQVH]:$3:0/
28
Variable

Déclaration <setvar>
VHWYDUQDPH ORFDWLRQYDOXH KWWSZDSP\FRPSFRPVRPPDLUH!
GRODEHO 6RPPDLUH!JRKUHI ORFDWLRQ!GR!

Substitution de variable et échappement
VHWYDUQDPH YDUYDOXH 
:DSGRZDS
!
VHWYDUQDPH HVFYDUYDOXH 
:DS&GRZDS
!

7KLVLVDYDU
VDQVFRQYHUVLRQ

7KLVLVDYDU
VDQVFRQYHUVLRQ

7KLVLVDYDUQ
VDQVFRQYHUVLRQ

7KLVLVDYDUQRHVF
VDQVFRQYHUVLRQ

7KLVLVDQHVFDSHGYDUH
:DS&GRZDS

7KLVLVDQHVFDSHGYDUHVFDSH
:DS&GRZDS

7KLVLVDQXQHVFDSHGHVFYDUXQHVF
:DSGRZDS

Remarque : l’échappement sert au paramétrage des URL

'LGLHU'RQVH]:$3:0/
29
Les taches (task)

action à réaliser par le navigateur

en réponse à un événement <onevent>

à une interaction avec l’utilisateur <do>

<go>

Navigue vers une nouvelle carte

<prev>

Retourne à la carte précédente dans l’historique

Après avoir effectué l’affectation de variables

<refresh>

Effectue l’affection des variables <setvar>

Réafficher la carte courante (avec les nouvelles substitutions de variables)

<noop>

Ne fait rien («nooperation»)

'LGLHU'RQVH]:$3:0/
30
La tache <go>

Navigue vers une nouvelle carte

Attributs

href

l’URL cible

method

la méthode utilisée pour l’envoi des paramètres : GET (par défaut) et
POST

sendreferer

sitrue, le navigateur inclut dans les champs de la réponse

accept-charset

encodage desparamêtresde la requête POST

Elément<postfield>

spécifie les paramètres de la requête (GET ou POST)

'LGLHU'RQVH]:$3:0/
31
Exemple de tache <go>

avec <setvar>
JRKUHI SDJHZPO!
VHWYDUQDPH SDJHYDOXH EDG!
JR!

si page="login", la carte courante devientlogin.wmlet page==bad

avec <postfield>
JRKUHI ORJLQFJL"O ORJLQ S SDVVZRUGPHWKRG JHW!
JRKUHI ORJLQFJL"O ORJLQPHWKRG JHW!
SRVWILHOGQDPH SYDOXH SDVVZRUG!
JR!
JRKUHI ORJLQFJLPHWKRG JHW!
SRVWILHOGQDPH OYDOXH ORJLQ!
SRVWILHOGQDPH SYDOXH SDVVZRUG!
JR!

'LGLHU'RQVH]:$3:0/
32
La tache <prev>

<prev>

Retourne à la carte précédente dans l’historique

Après avoir effectuer l’affectation de variables

Exemple
SUHY!
SUHY!
VHWYDUQDPH SDVVZRUGYDOXH !
SUHY!
GRW\SH SUHY!SUHY!GR!QRRS!

Généralement associé à l’action du bouton de retour arrière BACK

'LGLHU'RQVH]:$3:0/
33
La tache <refresh>

Effectue l’affection des variables <setvar>

Puis réafficher la carte courante
(avec les nouvelles substitutions de variables)

Exemple
RQHYHQWW\SH RQHQWHUEDFNZDUG!
UHIUHVK!
VHWYDUQDPH ORJLQYDOXH !
VHWYDUQDPH SDVVZRUGYDOXH !
UHIUHVK!
RQHYHQW!

'LGLHU'RQVH]:$3:0/
34
Les événements <onevent>

Déclarés en début de la carte (ou dutemplate)

Réalisent des taches <go>, <refresh>, …

Événements de <card> et <template>

onenterforward

Déclenché lors de l’entrée dans la carte (<go>, <anchor>,bookmark, …)

onenterbackward

Déclenché lors du retour (historique) dans la carte (<prev>)

ontimer

Déclenché sur expiration dutimerde la carte

Evénémentsde <card> et <template>

onpick

Déclenché surselectiond’une <option>

'LGLHU'RQVH]:$3:0/
35
Exemple d’ <onevent>
FDUGWLWOH 5HVHWRQUHHQWU\!
RQHYHQWW\SH RQHQWHUIRUZDUG!
UHIUHVK!
VHWYDUQDPH ORJLQYDOXH !
VHWYDUQDPH SDVVZRUGYDOXH !
UHIUHVK!
RQHYHQW!
RQHYHQWW\SH RQHQWHUEDFNZDUG!
UHIUHVK!
VHWYDUQDPH SDVVZRUGYDOXH !
UHIUHVK!
RQHYHQW!
S!/RJLQLQSXWQDPH ORJLQ!S!
S!3DVVZRUGLQSXWQDPH SDVVZRUG!S!
GRW\SH DFFHSWODEHO 6XEPLW!
JRKUHI ORJLQFJLPHWKRG SRVW!
SRVWILHOGQDPH OYDOXH ORJLQ!
SRVWILHOGQDPH SYDOXH SDVVZRUG!
JR!
GR!
FDUG!

'LGLHU'RQVH]:$3:0/
37
Les interactions avec l’utilisateur

Les ancres

équivalent aux ancres HTML

D!

DQFKRU!

Les commandes

équivalent auxbontonsdes formulaire HTML

GR!

Les champs de saisie

équivalent aux champs de formulaire HTML

LQSXW!
: entrée textuelle

VHOHFW!RSWLRQ!
: liste de choix (unique ou multiple)

'LGLHU'RQVH]:$3:0/
38
Les ancres <a> et <anchor>

Notiond’hyperlien

Ancre vers une autreCarddu document courant
D
KUHI FDUG
!9HUVSDJHD!
D
WLWOH SDJH
KUHI FDUG
!9HUVSDJHD!

Ancre vers un autre document
D
KUHI SURGZPO
!1RV3URGXLWVD!
D
KUHI SURGZPOFDUGQHZ
!1RV1RXYHDXW [(VD!
D
WLWOH FDWDORJ
KUHI KWWSZDSP\FRPSFRPFDWDORJ
!1RVSURGXLWVD!

La forme <anchor>
DQFKRU
WLWOH QH[W!
JR
KUHI SDJHZPO
!
1H[W3DJH
DQFKRU!
est équivalent à
D
WLWOH QH[W
KUHI SDJHZPO
!
1H[W3DJH
D!

'LGLHU'RQVH]:$3:0/
39
Les ancres <a> et <anchor>

Déclenchémentde l’exécution de fonction WMLScript
DKUHI 
IXQFZPOV&DWDORJ
!$XWUHVD!
DKUHI KWWSZDSP\FRPSFRP
IXQFZPOV&DWDORJ
!$XWUHVD!

Appel au composeur deEmail
DKUHI PDLOWRZHEPDVWHU#P\FRPSFRP!(QYR\HUXQHPDLOD!

Composition automatique d'un numéro de téléphone
DKUHI ZWDLZSPF!&RPSRVHUOHQXPpURD!

'LGLHU'RQVH]:$3:0/
40
Les commandes <do>

Correspond à des actions de l’usager

(sur son clavier, écran tactile, …)

Désignation par un type <do type="…">

DFFHSWSUHYKHOSUHVHWRSWLRQVGHOHWH

XQNQRZQcorrespond au traitement d’un type inconnu de l’UA

;""correspond à un type expérimental

YQG""correspond à un type propriétaire/vendeur (de l’UA)

Associé par l’UA à une touche, bouton graphique (dépend de l’UA)

Exemples

Navigation dans l’historique
GRW\SH SUHYODEHO 5HWRXU!SUHY!GR!

Navigation vers une autre carte
GRODEHO 6RPPDLUH!JRKUHI KWWSZDSP\FRPSFRPVRPPDLUH!GR!

Mise à zéro d'un formulaire
GRW\SH UHIUHVKODEHO 5HFRPPHQFHU!UHIUHVK!GR!

'LGLHU'RQVH]:$3:0/
41
Champs de saisie
Entrée textuelle <input>

Attribut

key=nmtokennom de la variable

default=vdata, value=vdata, type=(text|password), format=cdata

emptyok=booleanobligatoirement saisie par l’usager

size=number, maxlength=number, tabindex=number, title=vdata

Exemple
FDUGWLWOH /RJLQ!
S!8VHUQDPH
LQSXWQDPH 
XVHU
IRUPDW  [!
S!
S!3DVVZRUG
LQSXWQDPH 
SZG
W\SH SDVVZRUG!
S!
GRW\SH DFFHSWWLWOH /RJ,Q!
JRKUHI ORJLQ"X 
XVHU
H DPSS 
SZG
H!
GR!
FDUG!

'LGLHU'RQVH]:$3:0/
42
Champs de saisie
Liste <select> de choix <option>

Attribut de select

key=nmtoken, default=vdata

ikey=nmtoken(0 si aucune option n’est sélectionnée)

idefault=vdata,mutiple=boolean, tabindex=number, title=vdata

Attibutd’<option>

value=vdata, title=vdata, onpick=url

Exemple
FDUGWLWOH 3L]]D7RSSLQJVLG WRSSLQJV!
S!&KRRVH\RXUWRSSLQJV
VHOHFWQDPH 
WRSSLQJV
PXOWLSOH WUXH!
RSWLRQYDOXH S!3HSSHURQLRSWLRQ!
RSWLRQYDOXH E!6SLF\%HHIRSWLRQ!
RSWLRQYDOXH D!$QFKRYLHVRSWLRQ!
RSWLRQYDOXH F!&KLOOLHVRSWLRQ!
RSWLRQYDOXH R!2OLYHVRSWLRQ!
RSWLRQYDOXH P!0XVKURRPVRSWLRQ!
VHOHFW!
S!
GRW\SH DFFHSWODEHO 2UGHU!JRKUHI RUGHU"WRSSLQJV
WRSSLQJVH
!GR!

FDUG
!

'LGLHU'RQVH]:$3:0/
43
Champs de saisie
Liste <select> de choix <option>

Exemple des options à choix multiples
FDUGWLWOH 6HW3L]]DVLG SL]]DV!
S!&KRRVHD3L]]D
VHOHFWQDPH 
WRSSLQJV
!
RSWLRQYDOXH

!3ODLQRSWLRQ!
RSWLRQYDOXH
SPR
!3HSSHURQL6XSUHPHRSWLRQ!
RSWLRQYDOXH
SEKDPRF
!)XOO+RXVHRSWLRQ!
RSWLRQYDOXH
FRP
!9HJHWDULDQRSWLRQ!
VHOHFW!
S!
GRW\SH DFFHSWODEHO 2UGHU!
JRKUHI RUGHU"WRSSLQJV 
WRSSLQJV
H!
GR!
GRW\SH DFFHSWODEHO &XVWRPL]H!JRKUHI WRSSLQJV!GR!
FDUG!

'LGLHU'RQVH]:$3:0/
44
Champs de saisie
Groupage <optgroup> des choix

Groupe des options lors de leur affichage par le navigateur

Quand la liste est longue, le navigateur permet alors les afficher par groupe

Exemple
FDUGWLWOH 3L]]D7RSSLQJV!S!&KRRVH\RXUWRSSLQJV
VHOHFWQDPH 
WRSSLQJV
PXOWLSOH WUXH!
RSWJURXSWLWOH 0HDW DPS)LVK!
RSWLRQYDOXH S!3HSSHURQLRSWLRQ!
RSWLRQYDOXH E!6SLF\%HHIRSWLRQ!
RSWLRQYDOXH D!$QFKRYLHVRSWLRQ!
RSWJURXS!
RSWJURXSWLWOH 9HJHWDEOH!
RSWLRQYDOXH F!&KLOOLHVRSWLRQ!
RSWLRQYDOXH R!2OLYHVRSWLRQ!
RSWLRQYDOXH P!0XVKURRPVRSWLRQ!
RSWJURXS!
VHOHFW!
S!
GRW\SH DFFHSWODEHO 2UGHU!JRKUHI RUGHU"WRSSLQJV
WRSSLQJVH
!GR!
FDUG!

'LGLHU'RQVH]:$3:0/
45
Champs de saisie
FDUG!
GRW\SH DFFHSW!
JRKUHI 
VXEPLW"I IQDPH DPSO OQDPH DPSV VH[ DPSD DJH
!
GR!
ILHOGVHW QDPH!
)LUVWQDPH
LQSXWW\SH WH[WNH\ IQDPHPD[OHQJKW !
EU!
/DVWQDPH
LQSXWW\SH WH[WNH\ OQDPHPD[OHQJKW !
EU!
ILHOGVHW!
ILHOGVHWWLWOH LQIR!
VHOHFWNH\ VH[!
RSWLRQYDOXH I!)HPDOHRSWLRQ!
RSWLRQYDOXH P!0DOHRSWLRQ!
VHOHFW!
EU!
$JHLQSXWW\SH WH[WNH\ DJHIRUPDW  1!
ILHOGVHW!
FDUG!
A : majuscule
a: minuscule
N: nombre
M: caractère quelconque
*A: 0 à N majuscules
8N: 8 nombres

'LGLHU'RQVH]:$3:0/
46
Temporisateur <timer>

Temporisateur associé à une carte

La valeur de la temporisation est exprimée en 1/10 de secondes

Exemple

redirectionvers une page surécheanced’untimer
FDUGRQWLPHU KWWSZDSP\FRPSFRPLQGH[
QHZFRQWH[W WUXHWLWOH &KDUJHPHQWHQFRXUV!
WLPHUYDOXH !
FDUG!
FDUGQHZFRQWH[W WUXHWLWOH &KDUJHPHQWHQFRXUV!
RQHYHQWW\SH RQWLPHU!JRKUHI KWWSZDSP\FRPSFRPLQGH[!RQHYHQW!
WLPHUYDOXH !
FDUG!

Exercice :

comment émuler une image animée ?

'LGLHU'RQVH]:$3:0/
47
Exemple de temporisateur
L’image animée
ZPO!FDUGWLWOH $QLPDWH7KUHH,PDJHV!
RQHYHQWW\SH RQHQWHUIRUZDUG!
UHIUHVK!
VHWYDUQDPH LPJYDOXH ILUVWZEPS!VHWYDUQDPH WLPHYDOXH !
VHWYDUQDPH LPJYDOXH VHFRQGZEPS!VHWYDUQDPH WLPHYDOXH !
VHWYDUQDPH LPJYDOXH WKLUGZEPS!VHWYDUQDPH WLPHYDOXH !
UHIUHVK!
RQHYHQW!
RQHYHQWW\SH RQWLPHU!
UHIUHVK!
VHWYDUQDPH LPJWPSYDOXH LPJ!VHWYDUQDPH WLPHWPSYDOXH WLPHWPS!
VHWYDUQDPH LPJYDOXH LPJ!VHWYDUQDPH WLPHYDOXH WLPH!
VHWYDUQDPH LPJYDOXH LPJ!VHWYDUQDPH WLPHYDOXH WLPH!
VHWYDUQDPH LPJYDOXH LPJWPS!VHWYDUQDPH WLPHYDOXH WLPHWPS!
UHIUHVK!
RQHYHQW!
WLPHUYDOXH WLPH!
S!LPJVUF LPJDOW >LPDJH@!S!
FDUG!ZPO!

'LGLHU'RQVH]:$3:0/
48
Exemple de temporisateur
ZPO!
FDUGWLWOH )LUVWFDUGLG RQHRQWLPHU 
WKUHH
!
WLPHUQDPH 
WLPHRXW
YDOXH !
S!7KHWLPHULVUXQQLQJS!
GRW\SH ODEHO &KHFN!JRKUHI WZR!GR!
FDUG!
FDUGWLWOH 6HFRQGFDUGLG WZR!
S!7LPHUHPDLQLQJ

WLPHRXW
WHQWKVRIDVHFRQGS!
GRW\SH SUHYODEHO %DFN!SUHY!GR!
FDUG!
FDUGWLWOH 7KLUGFDUGLG 
WKUHH
!
S!7LPHUH[SLUHGS!
FDUG!
ZPO!

'LGLHU'RQVH]:$3:0/
49
Template(patron)

Mise en commun d’évémenementset des commandes (first,fourth)

Peuvent être masqués (second) ou remplacé (third)

Exemple
ZPO!
WHPSODWH!
GRW\SH RSWLRQVQDPH GRODEHO GHIDXOW!SUHY!GR!
WHPSODWH!
FDUGLG ILUVW!3UHPLHUS!FDUG!
FDUGLG VHFRQG!S!6HFRQGS!
GRW\SH RSWLRQVQDPH GR!QRRS!GR!
FDUG!
FDUGLG WKLUG!S!7URLVLHPHS!
GRW\SH RSWLRQVQDPH GRODEHO RSWLRQ!JRKUHI RSWLRQ!GR!
FDUG!
FDUGLG IRXUWK!S!4XDWULHPHS!FDUG!
ZPO!
Le bouton est masqué
Le bouton est remplacé

'LGLHU'RQVH]:$3:0/
50
WML
([HPSOHGH)RUPXODLUH
ZPO!
FDUGQDPH KRPHSDJHWLWOH 6HQG(PDLO!
S!7RS!
S!LQSXWQDPH HPDLO!EU!S!
S!6HQGHU
V(PDLO$GGUHVVS!
S!LQSXWQDPH IU!EU!S!
S!6XEMHFWS!
S!LQSXWQDPH VXE!EU!S!
S!0HVVDJHS!
S!LQSXWQDPH PVJ!EU!S!
GRODEHO 6HQG(PDLOQDPH 6HQG(PDLOW\SH $&&(37!
JRKUHI ZDSFJL"TXHU\ HPDLO VWU  !GR!
GRODEHO 0DLQ0HQXQDPH 0DLQ0HQXW\SH $&&(37!
JRKUHI KWWSYFRPHGJHFRPVJZDSZDSFJL!GR!
GRODEHO %DFNW\SH SUHY!SUHY!GR!FDUG!
ZPO!

'LGLHU'RQVH]:$3:0/
51
WML
([HPSOHGH%DQTXH1RPDGH
ZPO!
FDUGQDPH KRPHSDJHWLWOH %DQTXH1RPDGH!
S!6HOHFWLRQQHUXQVHUYLFHS!
S!DKUHI VHUYLFH"LG FSW!&RPSWH&RXUDQWHD!EU!S!
S!DKUHI VHUYLFH"LG SHO!3(/D!EU!S!
S!DKUHI VHUYLFH"LG SHD!3($D!EU!S!
S!DKUHI VHUYLFH"LG WUDGH!/DERXUVHD!EU!S!
GRODEHO 0DLQ0HQXQDPH 0DLQ0HQXW\SH $&&(37!
JRKUHI KWWSZDSPRELEDQNFRP!GR!
GRODEHO %DFNW\SH SUHY!SUHY!GR!
FDUG!
ZPO!

'LGLHU'RQVH]:$3:0/
53
WMLScript

Langage de script (côté client)

Syntaxe ECMAScript

format textuel (.wmls/text/vnd.wap.wmlscript)

formatbytecode(.wmlsc/ application/vnd.wap.wmlscript)

Motivation

augmente l’interactivité (temps de réponse)

diminuer les interactions avec le serveur

L’interpréteur de l’UA

Interprète dubytecode

Du fichier

De bibliothèques
Standard
Dépendante de l’UA
Dépendante duBearer

'LGLHU'RQVH]:$3:0/
54
Types de données

Types de Données

ERROHDQGHX[YDOHXUVWUXHHWIDOVH

LQWHJHU

IORDW

VWULQJ

invalid(indique que l’expression est invalide)

Remarque

pas de tableau

'LGLHU'RQVH]:$3:0/
55
Opérateurs

Arithmetiques

 GLY  GLY «

Bitwise

!!!!!_ 

Comparateurs

!   !

Conditionnels

"__

'LGLHU'RQVH]:$3:0/
56
Conversion de type et validité

Conversion de type
ERROHDQIDOVH
)22IRRERROHDQWUXH
[\VWULQJ[\
LQWHJHU
HIORDW
HIORDW
ERROHDQIDOVH
HLQYDOLG
LQYDOLG

Opérateurs de type

W\SHRIUHWRXUQHYDOHXUVSRVVLEOHV

LQWHJHUIORDWVWULQJERROHDQLQYDOLGH

Validité

LIW\SHRIUHVXOW ^«`

LILVYDOLGUHVXOW^«`

'LGLHU'RQVH]:$3:0/
57
Variables

Variables Locales

Déclaration mais typage dynamique
YDU[ [ ERQMRXU

Durée de vie : la fonction

Portée : la fonction (pas de niveau de blocs)
IXQFWLRQIQ[^
LI[^YDU\ `
UHWXUQ\
`

Variables Globales

Fonctions de bibliothèque WMLBrowser.getVaret WMLBrowser.setVar
IXQFWLRQFKHFNV^
YDUVHFUHW :0/%URZVHUJHW9DUVHFUHW
LIV VHFUHW^:0/%URZVHUVHW9DUVHFUHWV
`

'LGLHU'RQVH]:$3:0/
58
Structures de Contrôle
EORF^`LIHOVHZKLOHIRUEUHDNFRQWLQXHUHWXUQ

'LGLHU'RQVH]:$3:0/
59
Fonctions

Définition de Fonction
IXQFWLRQFKHFNSDUSDU^UHWXUQSDU SDU`

Appels de fonction
LIFKHFNHQWHUSDVVZRUGWRWR^«`

Appels de fonction d’un autre fichier
LIVFULSWZPOVFKHFNHQWHUSDVVZRUGWRWR^«`

Utilisation deNameSpace
XVHXUO6FULSW/LEKWWSZZZVFULSWFRPOLEVFULSWZPOV
IXQFWLRQWHVWSDUSDU^UHWXUQ6FULSW/LEFKHFNSDUSDU`

Appels de fonction de bibliothèque
YDUPVJ KHOORYDUOHQ 6WULQJOHQJWKPVJPVJ PVJ
ZRUOG


Appels de fonction en URL
JRKUHI KWWSZDSP\FRPSFRP
IXQFZPOV&DWDORJ
!

'LGLHU'RQVH]:$3:0/
60
Pragmas

équivalent à <meta> et <access>

useaccess

autorise l’accès si l’URL du référant correspond

à l’expression du chemin et/ou à l’expression du domaine
XVHDFFHVVGRPDLQP\FRPSFRPSDWKSULYDWH

usemeta

ajoute des méta-informations arbitraires

usemeta QDPHYDOXHVFKHPH

ajouté par le serveur
XVHPHWDQDPHODVWPRGLILHG

use httpequiv QDPHYDOXHVFKHPH

spécifie un champ de l’entête HTTP ou WSP
XVHKWWSHTXLYFDFKHFRQWUROQRFDFKH

use user agentQDPHYDOXHVFKHPH

passé à l’interpréteur WMLScript
XVHPHWDQDPH[GHEXJJLQJRQ

'LGLHU'RQVH]:$3:0/
62
Exemple :Quizz
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
ZPO!
FDUGLG TXL]]WLWOH 4XL]]!
S!4XHYHXWGLUH:$3"EU!
VHOHFWQDPH UHSRQVHPXOWLSOH IDOVH!
RSWLRQYDOXH !:DRX$SL3RRSWLRQ!
RSWLRQYDOXH !:LUHOHVV$SSOLFDWLRQ3URWRFRORSWLRQ!
RSWLRQYDOXH !:KDW$SHQGHG3HQWDJRQHRSWLRQ!
RSWLRQYDOXH !:LO$IIHU3DWHUHWHGRSWLRQ!
VHOHFW!S!
GRW\SH DFFHSWODEHO 9HULILHU!JRKUHI TXL]]ZPOVYHULILFDWLRQ
UHSRQVH
!GR!
FDUG!
FDUGLG ERQQHUHSRQVHWLWOH 5HVXOWDWV!
S!%RQQHUpSRQVH%UDYRYRXVHWHVXQFRQQDLVVHXUEU!S!
FDUG!
FDUGLG PDXYDLVHUHSRQVHWLWOH 5HVXOWDWV!S!9RXVDYH]IDX[EU!5HFRPPHQFH]S!
FDUG!ZPO!

'LGLHU'RQVH]:$3:0/
63
Exemple :
Convertisseur Franc-Euro(WML)
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
ZPO!
FDUGLG HXRFRQYHUWWLWOH (XUR&RQYHUWQHZFRQWH[W WUXH!S!
6RPPHLQSXWIRUPDW  1QDPH VRPPHWLWOH 6RPPH!
&RQYHUWLUGHVVHOHFWQDPH GHVYDOXH )5$WLWOH 'HV!
RSWLRQYDOXH )5$!)UDQFVRSWLRQ!
RSWLRQYDOXH (85!(XURVRSWLRQ!
VHOHFW!
(QVHOHFWQDPH HQYDOXH (85WLWOH (Q!
RSWLRQYDOXH (85!(XURVRSWLRQ!
RSWLRQYDOXH )5$!)UDQFVRSWLRQ!
VHOHFW!
EU! X!FRQYHUVLRQX!
GRW\SH DFFHSWODEHO &DOFXOHU!
JRKUHI HXURFRQYHUWZPOVFRQYHUW
FRQYHUVLRQ

GHV

HQ
VRPPH!
GR!
S!

FDUG
!
ZPO
!

'LGLHU'RQVH]:$3:0/
64
Exemple :
Convertisseur Franc-Euro(WMLScript)
H[WHUQIXQFWLRQFRQYHUWYDU1DPHGHVHQVRPPH^
YDUPXOWLSOLHU 
YDUUHWXUQ6WULQJ (UUHXU
YDUUHVXOW
LIGHV )5$^
YDU)5$B(85 
LIHQ )5$PXOWLSOLHU 
HOVHLIHQ (85PXOWLSOLHU )5$B(85
`HOVHLIGHV (85^
YDU(85B)5$ 
LIHQ (85PXOWLSOLHU 
HOVHLIHQ )5$PXOWLSOLHU (85B)5$
`
LIPXOWLSOLHU ^
UHVXOW VRPPHPXOWLSOLHU
UHWXUQ6WULQJ 6WULQJWR6WULQJUHVXOW
UHWXUQ6WULQJ 6WULQJIRUPDWIUHWXUQ6WULQJ
`:0/%URZVHUVHW9DUYDU1DPHUHWXUQ6WULQJ
:0/%URZVHUUHIUHVK
`

'LGLHU'RQVH]:$3:0/
67
Exemple :Password
"[POYHUVLRQ "!
'2&7<3(ZPO38%/,&:$3)2580'7':0/(1
KWWSZZZZDSIRUXPRUJ'7'ZPOB[PO!
ZPO!
FDUGLG FDUGWLWOH 0RWGHSDVVHQHZFRQWH[W WUXH!
GRW\SH RSWLRQVODEHO 9HULILHU!
JRKUHI SDVVZRUGZPOVYHULI
85/QRHVF
!
GR!
SDOLJQ FHQWHU!(QWUH]OHPRWGHSDVVHLQSXWW\SH WH[WQDPH 85/!EU!S!
FDUG!
ZPO!
SDVVZRUGZPOV
H[WHUQIXQFWLRQYHULISDVVZRUG^
LI6WULQJILQGSDVVZRUGZPO^SDVVZRUG SDVVZRUGZPO`
:0/%URZVHUJRSDVVZRUG
`

'LGLHU'RQVH]:$3:0/
68
Bibliothèque standard de fonctions

Lang

abs, min,max,parseInt,parseFloat,random,seed, exit,abort, …

Float

int,flor,ceil,pow, …

String

length,isEmpty, replace,elementAt,trim, format, …

URL

isValid,getHost,getScheme,getParameters,resolve, escape,unescape, …

WMLBrowser

getVar,setVar, go,prev,newContext,getCurrentCard,refresh

Dialog

prompt,confirm,alert

'LGLHU'RQVH]:$3:0/
69
Bibliothèque WTAI de fonctions

Wireless TelephonyApplication Interface

Permet de piloter les services detelephonieou du réseau

Une commune

WTACallCont

setup,accept, release,sendDTMF

WTANetText

send,read,delete,getFieldValue

WTAPhoneBook

write,read,delete,getFieldValue

WTAMisc

indication,endcontext

Les autres spécifiques auxBearers

WTAI GSM, …

Invocation des fonctions avec des URI spéciales

:7$&DOO&RQWVHWXSZWDLFFVF

:7$*60
WUDQVIHU

ZWDL

JVP

FW


'LGLHU'RQVH]:$3:0/
70
Configuration des serveurs
et Types MIME

Serveurs (MS IIS, Apache, …)

Documents statiques (WML, WMLScript, …)

Documents dynamiques (Servlet, JSP, ASP, PHP, …)

Types MIME associés

Fichier WML (extensionwml)
text/vnd.wap.wml

Fichier compilé (extensionwmlc)
application/vnd.wap.wmlc

Fichier script (extensionwmls)
text/vnd.wap.wmlscript

Fichier script compilé (extensionwmlsc)
application/vnd.wap.wmlscriptc

Image WBMP (extensionwbmp)
image/vnd.wap.wbmp

'LGLHU'RQVH]:$3:0/
71
LePush

Notification asynchrone d’événement au UA

Alertes, Mises à jour, …

NouveauxEmail, Changement cours boursier, enchères, …

Interactions
Client
WAE
User
Agent
WAE
User
Agent
Gateway
Decoders
Encoders
Decoders
Encoders
Server
Scripts
(JSP,PHP,
ASP, …)
Scripts
(JSP,PHP,
ASP, …)
Contents
Contents
Encoded
RequestWSP
Request
HTTP
Encoded
ResponseWSP
Response
WML
Scripts
(Triggers, …)
Scripts
(Triggers, …)
Encoded
Content
SL or SI
Content
SL or SI
Push Gateway
Decoders
Encoders
Decoders
Encoders

'LGLHU'RQVH]:$3:0/
72
Service Indication (SI)

Envoi d’une alerte

Le message reçu est affiché à l’usager

L’usager peut choisir de charger la page WML référencée dans le message

Type MIME

text/vnd.wap.siet application/vnd.wap.sic

Exemple
"[POYHUVLRQ "!
'2&7<3(VL38%/,&:$3)2580'7'6,(1
KWWSZZZZDSIRUXPRUJ'7'VLGWG!
VL!
LQGLFDWLRQKUHI 
KWWSVWRFNTXRWHFRPZHOFRPHZPO

VLLG FXVWPVJQXPFUHDWHG 7=
VLH[SLUHV 7=DFWLRQ VLJQDOPHGLXP!
9LHZVWRFNTXRWHVQRZ"
LQGLFDWLRQ!
LQIR!LWHPFODVV 0RUH,QIR!<RXUODVWXSGDWHZDV7XHVGD\DW30LWHP!LQIR!
VL!

'LGLHU'RQVH]:$3:0/
73
ServiceLoading(SL)

Notification d’une page à charger («pull»)

action= "execute-low" action= "execute-high"

Le message contient une référence que l’UA charge et affiche dans un
nouveau contexte

action= "cache"

la page est mise dans le cache

Type MIME

text/vnd.wap.slet application/vnd.wap.slc

Exemple
"[POYHUVLRQ "!
'2&7<3(VO38%/,&:$3)2580'7'6/(1
KWWSZZZZDSIRUXPRUJ'7'VOGWG!
VOKUHI 
KWWSZZZVWRFNTXRWHFRPP\SRUWZPO
DFWLRQ H[HFXWHORZ!
VO!

'LGLHU'RQVH]:$3:0/
75
La Gestion des Caches

Principe

Les clients, les passerelles cachent
les documents reçus ou en transit

Avantages

consultationofflinedes documents

économie bande passante

Inconvénients

incohérence dans les applications transactionnelles

Commande si en stock, Réservation ferme de places (sans surbooking), …

Solution

<metahttp-equiv="Cache-control" content="no-cache"/>

usemetahttpequiv"Cache-control" "no-cache"

'LGLHU'RQVH]:$3:0/
76
/¶eTXLSHIU

Stage DESS TNSI 99-00 (Valenciennes)

Les objectifs : afficher des brèves sur le sport

Les informations recueillies : des fichiers XML

Les solutions logicielles utilisées :

Java 1.2.2 (servlets)

Microsoft IIS

'LGLHU'RQVH]:$3:0/
77
Et la carte à puce …

Carte GSM/SIM (SubscriberIdentification Module)

SIMToolKit

applications embarqués sur le handset GSM
et exécutées par le module SIM

la GUI du handset est pilotée par le module SIM

Cartes WIM et SWIM

L’application WML/WMLScript dialogue avec la carte WIM

Authentification, Paiement électronique

Carnet d’adresse,Bookmark

WAP 1.2

'LGLHU'RQVH]:$3:0/
79
Les nouveautés de WAP 2.0 (i)

Compatibilité WAP 1.1

Compatibilité de la pile IP

IP, TCP, TLS, HTTP

Support de nouveau porteurs

GPRS, W-CDMA, UMTS, …

Fonctionnement Push étendu

Temps réel, durée de vie des messages, …

WAE

XHTML, CSS Mobile Profile, SMIL

Pictogrammes normalisés

Prédéfinies dans la ROM des mobiles.

'LGLHU'RQVH]:$3:0/
80
Les nouveautés de WAP 2.0 (ii)

User Agent Profile (UAProf)

Basé sur CompositeCapabilities/PreferenceProfiles
(CC/PP) du W3C

Permet aux serveurs d’obtenir des informations sur le client et
l’utilisateur pour préparer la réponse

Les informations privées ne sont communiquées qu’après acceptation
de l’utilisateur

Multimedia MessagingService (MMS)

Solution de messagerie étendu (contenu multimédia : image,
SMIL, …) transmis par SMS ouEmail (MIME). S’appuie sur
lePushpour la notification et sur UAProf pour l’adaptation
optimale des contenus.

'LGLHU'RQVH]:$3:0/
81
Les nouveautés de WAP 2.0 (iii)

External FunctionalityInterface (EFI)

donne accès à des pluginsou à des périphériques externes (e.g. smart
cards, GPSdevices,healthcaredevices anddigital cameras, …)

PersistentStorageInterface

specifiesa standard set ofstorageservices for organizing,accessing,
storing and retrievingdata onthe wireless deviceor other connected
memory device.

Data Synchronization

Échange de messages SyncMLau dessus de WSP et HTTP/1.1 pour la
synchronisation de données entre mobiles et stations

Provisioning

Gestion standard des mobiles par l’opérateur.

'LGLHU'RQVH]:$3:0/
83
XHTML
Les différences avec HTML4

Document correct

pas de chévauchement
S!OHVpOpPHQWVHP!V·HPERLWHQWHP!S!
au lieu de
S!OHVEDOLVHVHP!VHFKHYDXFKHQWSDVS!HP!

éléments vides
EU!KU!au lieu de EU!KU!
qui est
INCORRECT

valeurs attributs
WDEFRO !au lieu de WDEFRO !qui est
INCORRECT

Style et Script
VFULSW!
>&'$7$>
XQHVFDSHGVFULSWFRQWHQW
@@!
VFULSW!

'LGLHU'RQVH]:$3:0/
84
XHTML -Exemple

Document XML utilisant des éléments du domaine de
noms XHTML
"[POYHUVLRQ HQFRGLQJ 87)"!
LQLWLDOO\WKHGHIDXOWQDPHVSDFHLVERRNV!
ERRN[POQV
XUQORFJRYERRNV

[POQVLVEQ
XUQ,6%1
[POODQJ HQODQJ HQ!
WLWOH!&KHDSHUE\WKH'R]HQWLWOH!
LVEQQXPEHU!LVEQQXPEHU!
QRWHV!
PDNH+70/WKHGHIDXOWQDPHVSDFHIRUDK\SHUWH[WFRPPHQWDU\!
S[POQV
KWWSZZZZRUJ[KWPO
!
7KLVLVDOVRDYDLODEOHDKUHI KWWSZZZZRUJ!RQOLQHD!
S!
QRWHV!
ERRN!

'LGLHU'RQVH]:$3:0/
85
XHTML -Exemple

Document XHTML utilisant la recommandation MathML
KWPO[POQV KWWSZZZZRUJ[KWPO[POODQJ HQODQJ HQ!
KHDG!WLWOH!$0DWK([DPSOHWLWOH!KHDG!
ERG\!
S!7KHIROORZLQJLV0DWK0/PDUNXSS!
PDWK[POQV KWWSZZZZRUJ0DWK0DWK0/!
DSSO\!ORJ!
ORJEDVH!
FQ!FQ!
ORJEDVH!
FL![FL!
DSSO\!
PDWK!
ERG\!KWPO!

'LGLHU'RQVH]:$3:0/
86
Acteurs

WAP Forum

http://www.wapforum.org

Open Mobile Alliance

http://www.openmobilealliance.org

Nokia, Ericsson/Sony, Motorola, Alcatel, ...

'LGLHU'RQVH]:$3:0/
87
Outils

Client

Motorola, Nokia, Alcatel, Ericsson, Sagem, Mutsubishi...

Emulateur pour PalmOS, WinCE, EPOC (Symbian)

Emulateursous IP et Windows

Nokia, Ericsson, UP (phone.com), …

Serveur et Gateway

Nokia, Ericsson, ...

Portail

OraclePortalToGo, …

Scripts

Servlet, JSP, ASP, XSP (voir xml.apache.org)

XML, XSLT

Editeurs

WML, WMLC, Convertisseurs WBMP

'LGLHU'RQVH]:$3:0/
88
Outils: Nokia Mobile Internet Toolkit
http://www.forum.nokia.com/

'LGLHU'RQVH]:$3:0/
89
J2EE etWireless
5'%06
RUDFOH«
$SSOLFDWLRQ
WDEOHV
(-%6HUYHU
6HUYOHW
:HE6HUYHU
DSDFKHMVHUY
+70/
%URZVHU
6HVVLRQ
%HDQ
6HVVLRQ
%HDQ
(QWLW\
%HDQ
(QWLW\
%HDQ
50,
-'%&
64/;$
+WWS6HVVLRQ
2EMHFW
+WWS6HVVLRQ
2EMHFW
;0/
%URZVHU
:0/
%URZVHU
83(PXODWRU
6HUYOHW-63
2EMHFW
6HUYOHW-63
2EMHFW
+70/
+773
;0/;6/
+773
:0/:0/&
:$3
;6/
7UDQVIRUPHU
;6/
7UDQVIRUPHU
50,

'LGLHU'RQVH]:$3:0/
90
Transformation XSL-T

XSL-T

XSL-T permet la transformation d’une application XML vers une autre
application XML

La feuille de style (stylesheet) XSL-T décrit lesréglesde transformation

Application à WML

WML et xHTMLsont des applications de XML

Uneservlet/JSP/ASP peut répondre au client en fonction de sa capacité

1) extraction des données du système d’information

2) formatage dans un format pivot (ex:rowset.dtd)

3) transformation avec une feuille XSL-T (rowset2wml.xslou
rowset2html.xsl)

4) application dubytecoder

Outils

MS, Apache/Xalan, Apache/Coccon, Oracle/XSQLServlet, …

'LGLHU'RQVH]:$3:0/
91
Concurrence

HDML +DQG+HOG0DUNXS/DQJXDJH

Client : UP (phone.com)

TinyHTML

Client : Avant-Go (Pushde site sur PDA)

cHTML

Sous ensemble de HTML

iMode, opérateur cellulaire NTT DoCoMo

lancé en 1999, 20 Millions d’usagers japonais en février 2001

xHTML+CSS

HTML bien formé et valide

Désormais dans WAP 2.0

'LGLHU'RQVH]:$3:0/
92
Concurrence : J2ME CLDC/MIDP

J2ME CLDC/MIDP (Mobile InformationDeviceProfile)

Two configurations :

Connected device configCDC : > 512 KB

Connected limited device configCDLC : < 512KB
requires KVM (Kernel Virtual Machine)

MIDlet : same principles than J2SE Applets

J2ME Application running in a KVM
in a mobile phone or bidirectionalpager

Pour en savoir plus

http://www-adele.imag.fr/~donsez/cours/j2me.pdf

'LGLHU'RQVH]:$3:0/
94
Divers

L’UA héberge d’autres applications

Carnet d’adresse

vCard

Agenda (PIM)

vCalendar



Synchronisation d’application sur WAP

Entre un serveur et un client nomade

Applications

Carnet d’Adresse, Agenda, Catalogue de produits, …

'LGLHU'RQVH]:$3:0/
97
Synchronisation sur WSP

MessageSyncML(http://www.syncml.org)

comportant des éléments décrivant une synchronisation

Add,Alert,Atomic, Copy,Delete,Exec,Get,Map, Replace,Search,
Sequence,Sync

pour des applications embarquées sur lehandheld

2 représentations

texteWBXMLapplication/vnd.syncml-xml

bytecode application/vnd.syncml-wbxml

2 méthodes

POST

PUSH

'LGLHU'RQVH]:$3:0/
98
Bibliographie

Voir les cours sur HTTP, HTML, XML, JavaScript

http://www-adele.imag.fr/~donsez/cours

Livres

TheWAP Forum, «TheOfficial WAP»,Ed Wiley, 1999, ISBN 0-471-32755-1

Steve Mann, “ProgrammingApplicationswith the WirelessApplicationProtocol,
the complete developer’sguide”, 2000, EdWiley, 0-471-32754-9

«Construire vos applications WAP», Ed Eyrolles, 2000 (en français)

ProfessionalWAP,Ed Wrox, 2000

Martin Frost, "LearningWML & WMLScript",Ed Oreilly, 2000, 1-56592-947-0

SCN Education B.V., «Mobile Networking with WAP», 2000, ISBN 3-528-
03149-2

Harvey M.Deitel, Paul J.Deitel,TemR.Nieto,Kate Steinbuhler, "Wireless
InternetandMobile Business How toProgram, 1/e", 2002, 1000 pp;,Prentice
Hall, ISBN 0-13-009288-6,
http://vig.prenhall.com/catalog/academic/product/1,4096,0130092886,00.html

'LGLHU'RQVH]:$3:0/
99
Sites

Constructeurs et Développement

http://www.wapforum.org

http://www.openmobilealliance.org

http://www.3gpp.org

http://www.w3.org/Mobile

http://www.nokia.com

http://www.ericsson.com