Wap a jazyk WML


    Co je to WAP? Wireless Application Protocol
Mobil     Digitální bezdrátová zařízení jako jsou mobilní telefony se v průběhu let stala velmi populárními. Technicky řečeno, mobilní telefony již nejsou pouze telefony - staly se komunikačními zařízeními schopnými spouštět aplikace a komunikovat s dalšími zařízeními a aplikacemi přes bezdrátové sítě.
Wireles Application Protocol jako standard specifikuje dva zásadní elementy bezdátové komunikace a to end-to-end aplikační protokol a aplikační prostředí založené na prohlížeči. Aplikační protokol je vrstva komunikačního protokolu, který je obsažen v každém WAP zařízení. Na straně sítě obsahuje serverové komponenty, implementující další konec protokolu, který je schopen komunikace s jakýmkoliv WAP zařízením. Často serverové komponenty vstupují do role brány routující požadavky WAP zařízení na aplikační server. Brána může být fyzicky posazena buď do telefonní sítě nebo počítačové sítě, vytvářejíce tím most mezi oběmi sítěmi.

     Síťová struktura WAP.
    WAPová aplikace se skládá z aplikačního serveru a klientské aplikace, kterou brána stahuje z aplikačního serveru do WAP zařízení pro použití. Standardní aplikační prostředí je potřeba pro běh stejné klientské aplikace na jiném WAP zařízení. WAP poskytuje standard skládající se z browseru a skriptu. Prohlížeč je velice podobný webovému prohlížeči a dokáže zpracovávat obsah popsaný ve Wireless Markup Languge. Prohlížeč také obsahuje vestavěný skript pro běh aplikací ve WAP zařízení. Tyto aplikace jsou psány ve skriptovém jazyce zvaném WMLScript. Jako dodatek k programovacímu jazyku jako takovému, skript také implementuje množinu knihoven, které umožňují aplikaci přístup k různým službám pro WAP zařízení. WML a WMLScript jsou vytvořeny pro bezdrátové použití, narrowband sítě a jsou binárně kódovány pro optimální efektivitu přenosu.

     WAP Protocol má čtyři vrstvy:

     V mnoha případech je aktuální aplikace a další obsah umístěn přímo na web serverech. Obsahem může být WAP, vytvořený s WML a WMLScriptem nebo HTML. Některé brány jsou dokonce schopné překládat HTML do WML. Ve WAPu jsou obsah a aplikace adresované s URL, stejně jako další Internetové protokoly.
WAP je podobný Webovému modelu a funguje následovně:

  1. Uživatel zmáčkne na WAP telefonu tlačítko s přiřazeným URL.
  2. WAP telefon pošle URL dotaz na WAP gateway používající WAP protokol
  3. WAP brána generuje HTTP dotaz na specifikovanou URL a posílá jí web serveru
  4. Web server obdrží HTTP požadavek a rozhodne co odešle. Pokud URL specifikuje statický soubor, web server odešle soubor a přidá k němu HTTP hlavičku. Pokud URL specifikuje CGI nebo jiný skript aplikace, web server spustí aplikaci.
  5. Web server vrátí WML stránku s přidanou HTTP hlavičkou nebo WML výstupem z CGI nebo skriptu jiné aplikace.
  6. WAP brána ověří HTTP hlavičku a WML obsah a zakóduje je do binární podoby.Brána potom vytvoří WAP odpověď obsahující WML a pošle jí zpět do WAP telefonu.
  7. WAP telefon obdrží WAP odpověď, kterou zpracuje a zobrazí na displeji první kartu z WML stránky uživateli.

    WAP a jak se k němu připojíme
    Na začátek by bylo dobré zmínit se o každém ze dvou možných způsobů přenosu dat mezi WAP zařízením a WAP bránou. Data mohou být přenášena přes SMS (Short Message Service) - textové zprávy nebo CSD (Circuit Switched Data) - datové volání. Volba mezi SMS a CSD závisí na službách, které budou přes WAP využívány. Například pro služby typu informace o počasí v dané lokalitě nebo denní aktuality je efektivnější využít spojení přes SMS a zase u služeb využívajících různé WMLscripty např. rezervace letenek je lépe použít CSD. Pevně věřím, že v definicích WAP Fóra ohledně způsobu přenosu dat bude možné nalézt i možnost přiřadit či nastavit u bookmarku způsob jakým se na daný link bude odkazovat (SMS nebo CSD).

    Připojení k WAPu přes SMS
    SMS připojení je založeno na standardu krátkých zpráv. SMS umožňuje posílání maximálně 160 znaků najednou. Delší textové zprávy jsou rozděleny do několika zpráv s hlavičkami obsahujícími informace o jejich pořadí v řadě. Mobilní telefon je schopen dát takto příchozí zprávy dohromady ve správném pořadí až po obdržení všech takovýchto zpráv. To se nazývá spojení nebo sřetězení. Závisí na WAP zařízení, kolik takovýchto sřetězených zpráv je přes bránu schopen přijmout.
    Při tvorbě služeb přes SMS by se měl zvážit omezený počet znaků v jedné zprávě. Takovéto služby by neměly obsahovat dlouhé texty. SMS je ideální metoda pro služby s kompaktním informačním obsahem a minimální potřebou komunikovat mezi uživatelem a službou. Dobré příklady SMS služeb mohou být výše zmíněné denní aktuality , vtipy nebo oznámení o e-mailu v mailboxu.

    Připojení k WAPu přes CSD
    S Circuit Switched Data (CSD) jsou informace doručovány po navázání datové komunikace mezi WAP zařízením a přístupovým serverem. Omezení množství přenesených dat není tak velké jako u připojení přes SMS, rychlost datového hovoru je 9,6 kbit/s nebo 14,4 kbit/s. Velikost cache je limitována pouze proveditelnou velikostí jedné odpovědi dané služby, i když připojení umožňuje přenést i větší množství.
    CSD spojení by mělo být využíváno při potřebě přenosu většího množství dat nebo v případě potřeby větší vzájemné komunikace s uživatelem. Takovými službami jsou například Internetové bankovnictví nebo větší množství zpráv nebo výše zmíněná rezervace letenek.
    Poskytovatel služeb není schopen rozhodnout o způsobu připojení na straně obsahu, ale je na uživateli jaký způsob připojení si zvolí. Přirozeně služby pro SMS mohou být požívány přes CSD a naopak, ale důrazně se doporučuje vzít v úvahu omezení a možnosti způsobů připojení při plánování a tvorbě služeb. V budoucnu by měl být tento problém definován WAP Fórem.
    Co dodat závěrem - před začátkem tvorby jakýchkoliv WML stránek je potřeba mít možnosti připojení k dané službě na paměti.

Jak začít s WAPem tvořit vlastní WAP stránky a projekty?

Co potřebujete k tomu, abyste byli viděni ve WAPu? Jaký webserver?
    Především si vystačíte s úplně normálním webserverem, jako je Apache na Linuxu nebo IIS na NT a další podobné webservery. Vše, co potřebujete, je změnit MIME typy pro určité koncovky souborů - zde doporučím manuál, pokud nevíte, jak na to. Pokud to s WAPem myslíte vážně, je také vhodné asociovat nějaký soubor typu main.wml nebo index.wml jako implicitní soubor, který webserver vrací, pokud zadáte URL adresáře - tedy například wap.mobil.cz servíruje vlastně wap.mobil.cz/main.wml - i zde se držte manuálu ke svému webserveru. To znamená, že nepotřebujete speciální instalaci ani speciální software proto, abyste mohli provozovat WAP - dokonce si jako WAP ready můžete nastavit pouze nějaké adresáře.

Nastavení MIME:
text/vnd.wap.wml wml
text/vnd.wap.wmlscript wmls
image/vnd.wap.wbmp wbmp
application/vnd.wap.wmlc wmlc
application/vnd.wap.wmlscriptc wmlsc

Potřebujete WapGateway neboli wapbránu?
     Funkce WapGatewaye je takováto: přes ni proudí požadavky do internetu a zpět na mobilní telefon, na ní jsou přeloženy do binárního tvaru a do mobilu odeslány, nebo z binárního tvaru přeloženy do normálního requestu a poslány na příslušnou adresu. Gateway o všech těchto procesech vede záznamy a pro mobilní telefon je skutečnou branou do mobilního internetu, bez ní WAP nemůže fungovat.
     Jenže tato brána je velmi drahá a zpravidla si ji pořizuje operátor, který chce svým klientům umožnit přístup do WAPu. V ČR ji již provozuje EuroTel, RadioMobil ji chystá. Není tedy nutné, abyste vy sami vlastnili tyto brány - například Nokia WapServer, tedy gateway do internetu, stojí 10 000 USD bez hardware.

K čemu by se vám vlastní gateway mohla hodit?
     Pokud potřebujete zabezpečení po celé trase přenosu, tedy pokud vytváříte či provozujete aplikace takovéto zabezpečení vyžadující. Celý provoz mezi gateway a mobilním telefonem může totiž být zakódován a zabezpečen, nicméně od brány dále do internetu jsou používány standardní internetové - a tedy nezabezpečené protokoly. To je ale například pro komunikaci s bankou naprosto nepoužitelné.
     V takovémto případě si banka zakoupí gateway a nainstaluje si ji na své chráněné síti. Požadavky uživatelů jsou směřovány do gatewaye od přípojného bodu (zpravidla od přípojného bodu operátora) sice také většinou internetem, jsou ale přenášeny zabezpečeně a i s certifikátem, je-li třeba. Další transport informací z gateway dále na internetovou službu například internetbankingu se děje ve vnitřní síti banky, tedy chráněně. Takto lze velmi důkladně celý přenos zabezpečit.
     Podobné nasazení gateway lze samozřejmě uplatnit i v případě přístupu na vnitrofiremní servery, které jinak ani nemusí být z internetu přístupné. Pro běžné internetové projekty je ale toto řešení zbytečné a nebude předmětem našich úvah. Pro běžnou práci s WAPem si vystačíte s gateway vašeho operátora.

Jak s WML pracovat - je podobný HTML?
     Struktura WML souboru (Wireless Markup Language je jazyk používaný pro zápis WAPu) je téměř podobná, jako u HTML, ten název není podobný náhodou.
     U WML je ale třeba si pozor dávat na syntaxi - především všechny WML značky jsou malými písmeny a pokud je napíšete jinak, nefungují, neboť velikost písmen je rozlišovacím znakem. Druhak - pokud ve WML souboru uděláte syntaktickou chybu, mobilní telefon jej nezobrazí, ale nahlásí chybu, stejně jako velké vývojové nástroje. Dokud není dokument bez chyb, není zobrazen. Také zatím určitě zapomeňte ve WML kódu na češtinu.
Mobil      Začátečnické kroky s WML najdete v češtině např. na WapServeru, větší manuály najdete u každého vývojového prostředí v angličtině. Rychle si všimnete, že většina značek je stejných nebo podobných, jako v HTML - potřeba je dávat pozor na velikost písmen a správnou syntaxi. Také většina značek je párových, tedy mají značku označující konec a začátek. Nepárové značky se pak zapisují s lomítkem na konci, aby bylo jasné, že jsou nepárové. Tedy značka pro konec řádku není <br>, ale <br/> - ale to vše se snadno naučíte.
     WAP a jeho jazyk WML je v současné době jednoduchý - stejně tak stránky na něm postavené. Dá se očekávat, že s rozvojem technologie půjdou nahoru i možnosti WML a WAPu jako celku. Na březen tohoto roku byla oznámena verze WAP 1.2 - ta už by toho měla mít více, až bude GPRS (léto?), budeme se moci těšit i na skutečná multimediální rozšíření. Zatím je limitem WAPu přenosová rychlost 9600 případně 14400 bps, dále malá monochromatická obrazovka a nedostatečná vstupní jednotka, tedy klávesnice.
     Mějte tato omezení na paměti, pokud přemýšlíte o WAP aplikaci. Čím méně textu musíte zobrazovat a čím méně textu budou muset lidé přes klávesnici vkládat, tím větší je tu šance na úspěch. Psaní románů on-line se ve WAPu zatím nechytí, za dva roky to ale může být skvělý business. Jenže tou dobou se již bude platit za přenesená data, nikoliv za čas strávený on-line.
     S WAPem je to nyní podobné, jako s internetem a s WWW v jeho dřevních dobách - je to pomalé, graficky nepříliš rozvinutelné a v zobrazovacích možnostech omezené specifikou jednotlivých přístrojů. Jenže s největší pravděpodobností se to chytí a dál rozvine.

Co na tvorbu a prohlížení WAP potřebujete?

Další pomocníci:


A pokud se vám nechce nic stahovat z webu ani utrácet za mobil, tak zkuste tento výborný www mobilu, do kterého můžete přes MENU zadat vlastní adresu Wap stránky.


    Pokračujeme prakticky - Deska a karta
    Základní jednotkou WML je karta, která specifikuje jednoduchou interakci mezi WAP zařízením a uživatelem. Karty jsou slučovány do desek, což jsou nejmenší jednotky WML, které web server umí poslat na WAP zařízení. V okamžiku, kdy WAP zařízení obdrží desku, aktivuje automaticky první kartu, kterou tato deska obsahuje.
    Document Type Definition soubor
    Document Type Definition (DTD) soubor definuje všechny elementy použité ve WML. Používá se při WML kódování. Cesta k vlastnímu DTD souboru musí být definována v úvodu WML desky. DTD soubor může být umístěn buď někde na síti nebo ho můžete mít uložen lokálně pro rychlejší přístup k němu. Všechna WAP zařízení nemusí být schopna rozeznat všechny elementy a atributy obsažené v DTD souboru, v takovém případě bude zařízení fungovat tak, jako by element nebyl přítomen.
Příklad DTD naleznete na http://www.wapforum.org/DTD/wml.xml.

    

Ukázka zdrojového kódu decku s třemi kartami:


 
 
<?xml version="1.0"?> 
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"  
       "http://www.wapforum.org/DTD/wml_1.1.xml"> 
 
<wml> 
 
<!-- První karta v "decku" --> 
 
<card id="hlavni_karta" title="hlavni_karta"> 
 
<p align="center"> 
<big>1. karta</big> 
</p> 
 
 
<b>Tucny text</b><br/> 
<i>Kurziva</i> <br/> 
<u>Podtrzeny text</u> <br/> 
<big>Text velkym fontem</big><br/>  
<small>Text malym fontem</small><br/>  
<strong>Silny text</strong><br/>          
 
<p align="center"> 
 
<!-- Tabulky --> 
 
<b>Tabulky</b><br/> 
Jedna <tab/>    Dva <br/> 
1111<tab/>2222<br/> 
AAAA<tab/>BBBB<br/> 
</p> 
 
<table columns="3" align="LCR"> 
   <tr> 
        <td>AAA</td> 
        <td>BBB</td> 
        <td>CCC</td> 
   </tr> 
 
   <tr> 
        <td>11</td> 
        <td>22</td> 
        <td>33</td> 
   </tr> 
</table> 
 
<p align="left"> 
 
<!-- Obrazek --> 
 
 
<b>Obrazek</b><br/> 
<img src="phone.wbmp" alt="obrazek"/> 
</p> 


<p align="left">

<!-- Formularove prvky --> 

<b>Prvek Input</b><br/>

<input="text" name="vstup"/>

</p>

<p align="left">

<b>Vyber ze seznamu</b><br/>

<select name="seznam">
   <option>Hyundai</option>
   <option>Mazda</option>
   <option>Honda</option>
</select>

</p>

 
<p align="left"> 

<!-- Odkazy a tlacitka --> 
 
<b>Odkazy</b><br/> 
<a href="pokus2.wml">Jiná deska (deck) na serveru</a> 
<br/> 
 
<a href="http://wap.mobil.cz">wap.mobil.cz</a> 
<br/> 
 
<a href="http://wap.paegas.cz">wap.paegas.cz</a> 
<br/> 
</p> 
 
<b>Tlacitka</b><br/>  
(zobrazena vzdy dole na displeji nebo v MENU mobilu)<br/> 
 
<do type="accept" label="Druha karta"> 
<go href="#druha_karta"/>      
</do> 
 
<do type="accept" label="Treti karta"> 
<go href="#treti_karta"/>      
</do> 
</card> 
 
<!-- Další karty  -->     
 
<card id="druha_karta" title="druha_karta">   
<p align="center"> 
<big>2. karta</big> 
</p> 
ABCD 
</card> 
 
<card id="treti_karta" title="treti_karta"> 
<p align="center"> 
<big>3. karta</big> 
</p> 
1234 
</card> 
 
</wml> 
 



Pepe pepe@pf.jcu.cz