La FAQ indépendante sur WAP/WML
Cette faq est en constante évolution ...
Plutôt que de copier ce document pour le placer sur votre site, mettez un lien vers cette page qui, elle, sera toujours à jour.
WAP sont les initiales de 'Wireless Application Protocol' (Protocole d'Application Mobile). Au départ ce protocole a été créé à l'initiative d'entreprises comme Nokia ou Ericsson. Il est basé sur des technologies internet existantes comme le XML et IP. Le but de ce standard est de fournir un accés internet pour des clients mobiles, des clients WAP, comme des téléphones portables.Pour l'instant, pour avoir plus d'information sur le protocole WAP, il faut aller sur le serveur www.wapforum.org (anglais).
WML sont les initiales de Wireless Markup Language, ce qui est en fait l'équivalent de l'HTML pour les navigateurs. Il est basé sur XML, et bien que sa syntaxe soit similaire au HTML, il est bien plus proche du XML. Si vous passez du HTML au WML sans connaître le XML, il y a de fortes chances pour que vous trouviez le WML *tres* strict. Comme le HTML et le XML, le WML est lu et interprêté par un navigateur intégré au terminal WAP. Pour de tels terminaux, ce navigateur est communément appelé un micro-navigateur. Les capacités d'un micro-navigateur sont, bien sur, limitées aux capacités du terminal WAP.
WMLScript est un langage interprêté au niveau du client et basé sur ECMAScript. Il ressemble beaucoup au JavaScript. Il est trés limité comparé au JavaScript puisqu'il a été conçu de manière à pouvoir être intégré dans un environnement WAP.
Les "pages" WML ou documents WML sont appelés des 'decks' ('paquet' en référence au paquet de cartes). Chaque paquet consiste en une ou plusieurs 'cards' (Un paquet contient donc une ou plusieurs cartes). Chaque paquet commence et fini par la balise <wml>, et chaque carte commence et fini par la balise <card>.
Quand le micro-navigateur accéde à un document WML (un paquet), il charge le paquet entiérement et l'utilisateur peut ensuite naviguer entre les différentes cartes sans avoir besoin de recharger d'autres données. Ceci est important à savoir, parce qu'une fois un paquet chargé, toutes les cartes restent chargées dans la memoire du micro-navigateur jusqu'à ce qu'une nouvelle requête demande au navigateur de recharger le paquet entier.
Si vous êtes déjà familier avec la balise HTML <a name>, la balise WML <card> est trés similaire :
<wml>
<card id="menu_depart">
...votre code...
</card>
<card id="achat">
...encore du code...
</card>
</wml>
Les paquets et les cartes sont atteints de la façon suivante : [nomdupaquet][#nomdelacarte]. Si le nomdupaquet est omis, le navigateur cherchera une carte nommée nomdelacarte à l'intérieur du paquet actuellement en mémoire. Si #nomdelacarte est omis, le navigateur chargera le paquet appelé nomdupaquet et affichera la premiére carte à l'intérieur de celui ci. Si le nomdupaquet and #nomdelacarte sont présents, le navigateur chargera le paquet appelé nomdupaquet et affichera la carte appeléé #nomdelacarte. En d'autres termes, la mécanique est la même que pour la balise HTML <A NAME>.
Tout ce dont vous avez besoin est un éditeur de texte, mais des kits de développement peuvent vous permettre de gagner beaucoup de temps pour développer de telles applications.
Le premiére étape sera de vous enregistrer sur le Forum de Développement de Nokia afin de récupérer le Nokia WAP Developer Toolkit (le kit de développement de Nokia). Ce kit est fourni avec des documents PDF qui détaillent la syntaxe du WML et du WMLScript, ainsi que des documents sur WAP en général. Ce kit nécessite le JRE (Java Runtime Environment) v.1.2.2 ou supérieur. Un lien permet de le récupérer sur le site de Nokia.
Notez qu'un kit de développement vous permet de créer des documents pour tous les terminaux WAP et pas seulement pour les téléphones mobiles. Notez également que ce que vous obtenez à partir d'un kit de développement peut trés bien ne pas ressembler du tout à ce que vous obtiendriez avec un micro-navigateur sur un téléphone portable. La seule solution consiste à tester vos réalisations sur le terminal WAP visé ou sur un émulateur précis.
Nokia fournit un emulateur pour le téléphone 7110, il se trouve dans le kit de développement 1.3 et peut être récupéré sur le site de Nokia. Cette émulateur est identique à un vrai téléphone 7110, il émule même les bugs du téléphone et dans ce cas, celà permet de tester réellement une application pour justement éviter les problèmes. Avec ce kit se trouve également un serveur WAP leger qui vous permettra de lire des documents WML à partir de n'importe quel serveur HTTP ou directement de votre disque dur.
Chez Ericsson le prochain téléphone portable compatible WAP sera le R380 et sera disponible début 2000. Un kit de développement peut également se télécharger à partir de l' Ericsson's Developer's Zone . Il semblerait qu'il n'y ait pas d'emulateur disponible pour ce téléphone.
Si vous voulez développer des applications et les diffuser, vous devrez les tester sur différents terminaux WAP (ou leur émulateur), de la même façon que vous testeriez vos applications HTML avec des navigateurs différents. La différence entre deux micro-navigateur WML est nettement plus visible qu'entre deux navigateurs HTML.
Un terminal WAP posséde une pile IP réduite, ce qui lui confère des capacités IP réduites elles aussi. Lorsqu'une connexion est ouverte, le terminal WAP établit une liaison PPP jusqu'au Fournisseur d'Accés à Internet, de la même façon que pour une connexion internet standard. La plupart du temps, les paramétres d'accés utilisés sont ceux spécifiés par défaut par le FAI, mais la plupart des terminaux WAP permettent d'utiliser d'autres paramètres. Ceci veut dire, par exemple, qu'une entreprise proposant des services WAP sur son intranet peut permettre à n'importe quel utilisateur de se connecter par le biais de son intranet.
Grâce à la connexion PPP, apres avoir été identifié avec un login et un mot de passe, le terminal WAP obtient une adresse IP temporaire et devient capable d'accéder à n'importe quels services internet ou intranet grâce au portail WAP de son choix.
Sommaire
1.7 Je suis un novice du WAP, et il y a tant de termes. Existe-t-il un glossaire?
Oui, c'est vrai, il y a beaucoup de nouveaux termes techniques, et oui, il existe un glossaire pour les recenser... juste ci-dessous. Manifestement, il est illusoire de vouloir tous les lister, voici donc les plus utilisés :
- Serveur WAP (WAP server) : Un terme trés souvent utilisé à mauvais escient. Un serveur WAP n'est en effet rien de plus qu'un serveur http, c'est à dire un serveur WEB standard. Pour compliquer, Nokia a mis sur le marché un produit appelé "serveur WAP" qui est en réalité une passerelle WAP associée à un serveur http. La partie passerelle s'occupe de la connexion, le serveur s'occupe de fournir le contenu.
- Passerelle WAP (WAP gateway) : Une passerelle WAP est une entité bi-directionnelle (comme toute passerelle) où se connectent d'un côté le terminal WAP, de l'autre un serveur http. Du côté WAP, étant donné que le terminal ne peut interprêter que des informations en WML, le rôle de la passerelle est alors de traduire ces informations en les "compilant" en binaire WML. De l'autre côté, la passerelle transmet les paquets en provenance du terminal WAP et les envoie sur le serveur http en y ajoutant des informations supplémentaires comme : le numéro d'utilisateur, l'identifiant de cellule, la localisation (dès que cette information sera disponible), etc...
- Carte WML (WML card) : Un bloc de base dans l'interface graphique de navigation. Une carte WML fait partie d'un "jeu de cartes" WML. Un jeu de carte WML est un document XML.
- Jeu de cartes XML (XML Deck) : Une collection de cartes WML. Le jeu tout entier est chargé quand le navigateur tente d'afficher le contenu d'une URL. Il est néanmoins possible de ne rapatrier qu'une carte et/ou d'accéder aux cartes individuellement.
- SGML (Standardized Generalized Markup Language)
- UA (User Agent) : logiciel "Agent Utilisateur" qui interprete WML, WMLScript, WTAL, etc... Il s'agit en fait, du micro-navigateur sur votre terminal WAP (quelqu'il soit).
- WMLSCript : Language script pour les terminaux WAP. Dérivé du JavaScript, en un peu moins puissant et beaucoup plus restrictif.
- XML (Extensible Markup Language) : langage de standardisation de W3C, le WML en fait partie. XML est une sous-partie de SGML.
- HDML (Handheld Markup Language)
- W3C (World Wide Web Consortium) : http://www.w3c.org
- WAE (Wireless Appication Environement) : Environnement de développement pour applications sans-fil. WAE spécifie un environnement standardisé qui devrait permettre aux operateurs et differents fournisseurs de services de construire des applications pouvant être utilisées sur plusieurs plateformes. WAE fait partie de la norme WAP.
- WSP (Wireless Session Protocole) : protocole de session sans-fil. WSP constitue la partie haute de la couche applicative et offre deux types de sessions possibles. La premiere est une session de type connecté reposant sur un protocole transactionnel, la deuxieme opére grâce à des échanges sécurisés ou non, en mode datagramme.
- PDA (Personal Digital Assistant) : assistant personnel numérique, comme, par exemple, un Palm Pilot. Il existe plusieurs micro-browser pour ce typr d'appareil.
- Element : ou balise est un mot-clé donnant des instructions de formatage ou d'hyper-texte dans un document WML. Certains éléments sont formés de deux mots qui délimitent le début et la fin du champs qu'ils formattent, tel que <p> et </p>. D'autres sont simples, tel que : <br/>
- DTD (Definition d'un Type de Document). Cette définition indique quels éléments peuvent etre imbriqués les uns dans les autres. un DTD dit aussi quels élément il est possible d'utiliser dans un document, et combien il est possible d'en utiliser, leur ordre relatif, si l'élément de début ou de fin peut être omis, le contenu de tous les elements, c'est à dire les identifiants génériques qu'ils peuvent contenir, leurs attributs et les valeurs par défaut qu'ils prennent, et les noms des symboles de référence qu'ils peuvent utiliser.
Vous pourrez trouver sur internet d'autres informations concernant le WAP ou le WML (en anglais pour l'instant) :
Articles
Sites
Listes de diffusion
La façon la plus simple d'accéder à des documents WML est d'utiliser des passerelles existantes. En France, France Télécom fournit une passerelle à partir de laquelle on peut accéder aux différents sites présents sur internet. Pour se faire il suffit d'éditer un signet et de le sélectionner. Si le site auquel vous voulez accéder est un site WML, vous le verrez s'afficher sinon vous obtiendrez un message d'erreur (chargement impossible).
Sommaire
3.2 Comment puis-je contourner mon operateur et me connecter directement a Internet?
Si votre operateur ne vous permet pas de vous connecter à des pages WAP autres que celles qu'il souhaite, ou si vous souhaitez contourner cette interdiction pour développer vos propres pages, sachez que la plupart des terminaux WAP vous permettent de contourner votre operateur.
Etant donné que tous les terminaux WAP sont differents, l'exemple qui suit ne s'appliquera peut-être pas exactement à votre cas, mais vous devriez pourtant en suivre les grandes lignes.
Premiérement, vous aurez besoin du numero de téléphone d'un fournisseur d'accés à internet, soit celui que vous utilisez pour vous connecter avec votre ordinateur, soit un qui vous offre un acces gratuit. La plupart des FAIs, d'ailleurs, vous offrent un acces internet gratuit. Ce FAI n'a pas vraiment besoin d'être local, mais rappelez-vous que vous allez payer la communication pendant votre temps de connexion! Ce FAI doit supporter le protocole PPP, et bien sur, vous aurez besoin d'un login et d'un mot de passe pour vous connecter. Puis vous aurez besoin du numero IP d'une passerelle publique. Nous vous recommendons celle d'Ericsson, à l'adresse IP 195.58.110.201
Configurez votre terminal WAP avec le numero de téléphone, le login, le mot de passe et l'adresse IP de la paserelle. Sur le Nokia 7110, ceci se fait grâce au menu Services->Configuration->Configuration de la connexion.
Pour fournir des documents WML il vous suffit d'un serveur HTTP classique comme Apache. Si vous voulez des documents dynamiques vous pouvez aussi utiliser le langage appelé PHP (interprêté au niveau du serveur, il n'apparaitra donc pas sur votre terminal WAP). Ces deux outils sont habituellement utilisés pour fournir des documents HTML mais remplissent parfaitement leur rôle pour fournir des documents WML.
Comme "www" est devenu le nom standard pour les serveurs HTTP, il semblerait que "wap" soit le standard pour fournir des applications WAP (c.a.d wap.domaine.com).
Une chose trés importante est de configurer le serveur HTTP de manière à ce que le micro-navigateur WML sache qu'il s'agit bien de WML et non pas de HTML. Pour ce faire il faut utiliser les types MIME.
Quand vous accédez à une "page web" à partir de votre navigateur habituel, le "serveur web" envoie un message à votre navigateur pour lui spécifier le type de document qu'il va recevoir. Ceci est fait en utilisant ce qu'on appele les types MIME. Le type MIME pour fournir des documents HTML est "text/html". Cependant, pour un micro-navigateur WAP, qui ne comprend pas le HTML, le type MIME doit être différent.
Les différents types MIME pour fournir des documents WML sont :
Type de document Type MIME Extensions Documents WML text/vnd.wap.wml .wml Images WBMP image/vnd.wap.wbmp .wbmp Documents WML compilés application/vnd.wap.wmlc .wmlc WML Scripts text/vnd.wap.wmlscript .wmls .wmls WML Scripts compilés application/vnd.wap.wmlscriptc .wmlscLisez la documentation de votre serveur HTTP pour savoir comment configurer vos types MIME.
PHP (et la plus part des autres langages) peut être utilisé pour rendre vos documents WML plus dynamique. Si vous désirez plus d'informations sur PHP, allez faire un tour sur PHP web site (en anglais).
Notez que certaines fonctionnalités de PHP générent de l'HTML, typiquement les messages d'erreurs, ce que votre micro-navigateur ne comprendra pas.
PHP est si flexible que le même document peut à la fois servir pour générer de l'HTML ou du WML. Le code source PHP est invisible pour le client, et c'est à vous de générer de l'HTML ou du WML suivant ce qui est nécéssaire.
Un navigateur HTML classique peut être utilisé pour le développement du code WML en utilisant PHP en utilisant ce bout de code en haut de votre page :
<?
// header("Content-type: text/vnd.wap.wml");
echo("<?xml version=\"1.0\"?>\n");
echo("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\" \"http://www.wapforum.org/DTD/wml_1.1.xml\">\n\n");
?>
Le navigateur HTML ignorera simplement les balises WML qu'il ne comprendra pas. Ensuite, lorsque vous serez prêt à tester votre code sur un terminal WAP ou sur un émulateur, il suffira d'enlever les "//" devant la commande "header" (on enleve ainsi les commentaires), et le document devient automatiquement un paquet WML.
Les ASP (Active Server Pages) peuvent de la même manière que PHP, être utilisés pour rendre les documents WML dynamiques. Pour avoir une idée sur la façon de procéder, vous pouvez lire les articles de Luca Passani 'WAP and ASP' (en anglais).
Le WML est trés proche du XML. Comparé au HTML, le WML est, néanmoins, beaucoup plus strict : par exemple, lorsqu'un document est interpréte par un micro-navigateur il ne doit y avoir aucune erreur.
Comme le HTML, ce langage utilise des balises entourées par des < et des >. La plupart de ces balises vont par paires, la première pour commencer <balise> et l'autre pour finir </balise>. Ce qui se trouve à l'intérieur de cette paire de balises s'appelle un élément. Quelques balises n'ont pas d'élément, c'est à dire qu'il n'existe qu'une seule balise <balise/>
Certains éléments peuvent avoir des attributs pour les caractériser. Le nom de ces attributs doivent être en minuscule, et la velur d'un attribut doit être entourée par des guillemets ". Certains attributs sont obligatoires, d'autres optionnels. La syntaxe pour des balises avec attributs est : <balise attribut1="valeur">.
On peut mettre des variables dans des cartes WML, leur format est $(variable).
Un paquet WML a un format spécifique et doit commencer par la déclaration XML suivante :
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM/DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">Tous les éléments dans un paquet doivent être placés entre les balises <wml> et </wml>.
Non. Le protocole WAP est toujours en phase de développement et il n'existe pour l'instant que deux terminaux WAP sur le marché, le Nokia 7110 et l'Ericsson R320. La conformité aux spécifications WML depend fortement du terminal. Par exemple, le Nokia 7110 ne sait ni interpréter les balises WML des textes gras ou italiques, ni les exposants ni les indices. Les tables sont affichées à raison d'une case par ligne sur une seule colonne. L'Ericsson R320, quant à lui, ne peut afficher qu'au maximum une table de 5x5.
Connaître les différentes contraintes de chaque terminal WAP peut vous faire gagner beaucoup de temps.
Les spécifications WAP autorisent l'utilisation d'un format graphique appelé WBMP. Il s'agit, en fait d'une version à 1 bit (noir ou blanc) du format BMP. Il est donc nécessaire de convertir les graphiques dans ce format avant de pouvoir les afficher sur un terminal WAP.
De plus, certaines limitations doivent être prises en compte lorsque l'on utilise du WBMP. Une image ne devrait pas être supérieure à 150x150 pixels. Il faut garder à l'esprit que l'écran des terminaux WAP est trés limité (par exemple la taille de l'écran du Nokia 7110 est de 96x65 pixels, et donc une image de 150x150 pixels est beaucoup trop grande pour un tel écran. De plus, la taille d'une image ne doit pas dépasser 1461 octets, du à la faible mémoire du téléphone).
Pas tous les terminaux WAP peuvent afficher des graphiques. Il vaut donc mieux utiliser l'attribut "alt" dans la balise <img>, de manière à ce que les utilisateurs de terminaux WAP non-graphiques puissent avoir une représentation textuel.
Vous pourrez trouver un plugin gratuit pour Photoshop/Paint Shop Pro à http://www.rcp.co.uk/distributed/Downloads pour vous permettre de faire toutes les conversions entre les différents formats d'images et le WBMP. Néanmoins, la plupart des toolkits permettent de faire ces conversions.
Les écrans varient beaucoup entre les différents terminaux WAP. Certains permettent d'afficher des graphiques, d'autres seulement du texte. Pour vous donner quelques exemples, le prochain téléphone compatible WAP de Mitsubishi's a un ecran de 3 lignes sur 12 characteres.Le Nokia's 7110 a une résolution de 96 pixels en largeur et 65 en hauteur. L'Ericsson R320 a une taille d'écran similaire. Le prochain téléphone d'Ericsson, le R380 a un écran beaucoup plus grand mais on ne connait toujours pas ses dimensions exactes et la taille utilisable par les applications.
La plupart du temps, si une image ne s'affiche pas celà provient d'une mauvaise syntaxe de la balise <img>. Les paramètres minimums pour cette balise sont "src" et "alt". Les autres paramètres sont optionnels. Le paramètre "src" spécifie le chemin de l'image et "alt" un texte alternatif si le terminal WAP ne permet pas d'afficher des images. Les valeurs de ces deux paramètres doivent être entourées par des doubles quotes ".
<img src="chemin/nomdelimage.wbmp" alt="Texte qui représente l'image"/>
Si l'image est envoyé par un serveur HTTP, il faut également ajouter un type MIME pour ce serveur "image/vnd.wap.wbmp" (voir rubrique sur les types MIME).
Le problème peut également venir de l'image elle-même. Le format WBMP est très limité. Le nombre maximum de couleur est de deux et la taille est limité à l'écran du terminal WAP.
Remarque : certains kit de développement vous permettent d'utiliser des images GIF mais les terminaux WAP, eux, ne peuvent afficher que des images au format WBMP.
Pour l'instant les auteurs de cette FAQ sont :
Tout commentaires sont bienvenues.
Si vous avez des informations concernant l'environnement WAP/WML, faites le nous savoir. Vous pouvez nous envoyer un mail avec vos informations et si possible avec des liens ou des exemples de code. Ainsi, cette page pourra évoluer et recenser toutes les questions que l'on peut se poser sur le WAP et le WML.