Tehnologia WAP

 

Partea generala

 

Tehnologia WAP

 

Initialele WAP inseamna Wireless Application Protocol. Idea a venit din industria tehnologiei 'fara fir', de la companii cum ar fi Nokia si Ericsson. Se bazeaza pe tehnologii internet cum ar fi XML si IP. Acest standard ofera continut si servicii internet pentru clientii cu dispozitive WAP cum ar fi telefoanele mobile si alte terminale. Sa nu va ganditi la WAP ca fiind un protocol separat. WAP este o lunga lista de protocoluri si specificatii care acopera totul de la modul de functionare a dispozitivului WAP si browser si pana la interactiunea protocolurilor de transport cu dispozitivele GSM. Multe situri contin informatii legate de WAP, insa singura resursa WAP autoritativa este WAP Forum. Un lucru foarte important de mentionat este acela ca WAP este inca intr-un stadiu incipient. Daca faceti parte din lumea HTML, amintiti-va cum aratau primele versiuni de browser NCSA Mosaic. Din nefericire WAP a fost si este plagiarizat datorita unei promotii excesive. Multi specialisti marketing fara prea multe cunostinte in domeniu vand deja WAP sub sloganul "navigati pe Internet de pe telefonul dumneavoastra celular". Astfel multi jurnalisti care nici ei nu au prea multe cunostinte de specialitate, fac WAP-ul in fel si chip pentru ca s-a dovedit ca pana la urma telefonul lor celular nu arata deloc ca Netscape sau Internet Explorer. NU disperati insa! Internetul celular are viitor cu siguranta.

 

WML

 

WML inseama Wireless Markup Language si este cea ce este HTML-ul pentru un browser web obisnuit. Se poate spune ca se bazeaza pe XML, insa este mai corect sa afirmam ca WML este o aplicatie XML. Daca treceti de la HTML la WML, fara sa cunoasteti XML-ul, WML-ul vi se va parea foarte strict. La fel ca si HTML, WML este citit si interpretat de un browser dintr-un dispozitiv WAP care reda informatiile pe un afisaj.

 

            In cazul dispozitivelor WAP, browserul se numeste micro browser. Capabilitatile micro browserului sunt desigur limitate de capacitatea dispozitivului WAP. Faptul ca WML este utilizat in loc de obisnuitul HTML se datoreaza modului in care WAP functioneaza si modului in care acesta este inglobat in lumea "ingusta" a dispozitivelor mobile. WML este compresat inainte de a fi trimis la dispozitivul WAP. Redarea unei pagini HTML in Netscape, Opera sau Internet Explorer necesita destul de mare capacitate de procesare. Un dispozitiv WAP nu are si nici nu are nevoie de o atat de mare capacitate de procesare. Capacitatea de procesare inseamna si energie electrica, ceea ce in lumea telefoanelor celulare provine de la baterie. S-ar putea sa va ganditi ca WML este ceva foarte primitiv, in aceea ca nu suporta tipurile multimedia ceea ce tine de HTML. Acest lucru nu este adevarat. Limbajul markup (WML, HTML etc) se limiteaza atunci cand un dispozitiv nu poate reda sunete si animatii. Aruncati o privire indeaproape la HTML si va veti da seama ca nu exista tag-uri HTML pentru afisarea animatiilor sau pentru redarea sunetelor. Restrictia se datoreaza dispozitivului si nu formatului de afisare. Si in majoritatea cazurilor implicit se datoreaza telefoanelor celulare. Totusi, ne putem astepta ca aceste restrictii sa dispara cu timpul.

 

WML sau HTML?

 

Initialele WAP inseamna Wireless Application Protocol. Idea a venit din industria tehnologiei 'fara fir', de la companii cum ar fi Nokia si Ericsson. Se bazeaza pe tehnologii internet cum ar fi XML si IP. Acest standard ofera continut si servicii internet pentru clientii cu dispozitive WAP cum ar fi telefoanele mobile si alte terminale. Sa nu va ganditi la WAP ca fiind un protocol separat. WAP este o lunga lista de protocoluri si specificatii care acopera totul de la modul de functionare a dispozitivului WAP si browser si pana la interactiunea protocolurilor de transport cu dispozitivele GSM. Multe situri contin informatii legate de WAP, insa singura resursa WAP autoritativa este WAP Forum. Un lucru foarte important de mentionat este acela ca WAP este inca intr-un stadiu incipient. Daca faceti parte din lumea HTML, amintiti-va cum aratau primele versiuni de browser NCSA Mosaic. Din nefericire WAP a fost si este plagiarizat datorita unei promotii excesive. Multi specialisti marketing fara prea multe cunostinte in domeniu vand deja WAP sub sloganul "navigati pe Internet de pe telefonul dumneavoastra celular". Astfel multi jurnalisti care nici ei nu au prea multe cunostinte de specialitate, fac WAP-ul in fel si chip pentru ca s-a dovedit ca pana la urma telefonul lor celular nu arata deloc ca Netscape sau Internet Explorer. NU disperati insa! Internetul celular are viitor cu siguranta.

 

Pachet de carduri WML

 

Paginile sau documentele WML se mai numesc si pachete(decks). Fiecare pachet consta din una sau mai multe carduri. Fiecare pachet incepe si se termina cu tag-ul <wml> , fiecare carte incepe si se termina cu un tag <card>. Atunci cand un micro browser WML acceseaza un document WML (sau pachet), acesta citeste intregul pachet iar navigarea intre carduri se face fara a fi necesara incarcarea altor date. Acesta este un lucru important de stiut, toate cardurile din pachet se vor afla in memoria micro browserului WML pana ce browserul primeste comanda de reincarcare a intregului pachet.

Tag-ul <a name> de HTML si tag-urile <card> ale WML-ului sunt foarte asemanatoare.

<wml>

<card id="start_menu">

...some code...

</card>

<card id="purchase">

...some more code...

</card>

</wml>

Pachetele si cardurile sunt accesate astfel:

[deckname][#cardname]. Daca numele pachetului este omis, browserul va cauta un card numit cardname in pachetul care se afla la acel moment in memorie. Daca se omite #cardname, browserul va incarca pachetul numit deckname si va sari la primul card din pachet. Daca le includeti pe ambele, browserul va incarca pachetul numit deckname si va sari la cartea numita #cardname. Cu alte cuvinte, destul de asemanator cu tag-ul HTML <A NAME>.

 

Conectarea la Internet

 

Un dispozitiv WAP are o mica stiva IP care ii dau capacitati IP limitate. Atunci cand este deschisa o conexie, dispozitivul WAP deschide o conexiune telefonica prin PPP catre un furnizor de servicii, aproape la fel ca si in cazul utilizatorilor internet prin conexiune telefonica.

In majoritatea cazurilor, se utilizeaza configuratii dial up de utilizator specific predefinit, insa majoritatea dispozitivelor WAP va permit sa utilizati propriile voastre configurari dial up, cea ce inseamna ca de exemplu companiile cu servicii WAP pe baza intranet permit utilizatorilor WAP sa acceseze intranetul.

Prin PPP, dupa autentificarea id-ului si parolei utilizatorului specificat, dispozitivului WAP i se da o adresa IP si va putea accesa servicii pe baza internet sau intranet prin poarta WAP specificata.

 

Aplicatii ale internetului mobil

 

In general asa numitele Location Based Services sunt servicii care in fond stiu unde va aflati pe mapamond si va pot oferi informatii importante legate de pozitia dumneavoastra. In viitorul apropiat, un dispozitiv mobil va putea oferi informatii legate de pozitia sa catre webserver. Insa, daca nu puteti astepta, puteti pur si simplu intreba utilizatorul.

 

Un exemplu excelent este un serviciu care afiseaza pozitia diferitelor mijloace de transport in oras. Sa zicem ca sunteti in drum spre statia de autobus, fiind in intarziere, si de vreme ce autobuzele nu vin niciodata la timp, va trebui sa aflati daca autobuzul a plecat deja sau daca inca nu a ajuns in statie.

In statia de autobuz de obicei este un orar, insa autobuzul dumneavoastra nu este afisat. Astfel accesati situl transportului public, si introduceti numarul autobuzului. Serverul web de la capatul celalalt va sti unde sunteti si va poate afisa pozitia celui mai apropiat autobuz de vreme ce acesta are un sistem GPS pe bord.

 

Atunci cand vom avea la indemana o tehnologie prin care se poate obtine locatia utilizatorului automat, un foarte eficient serviciu de acest tip va fi serviciul de parcare. In locul unui ceas de parcare veti avea un bord cu instructiuni si un numar separat pentru fiecare loc de parcare. Cand doriti sa parcati, pur si simplu veti introduce numarul locului care doriti sa il platiti si durata stationarii. Cand sunt numai cinci minute ramase din timp, sistemul va trimite un SMS prin care va anunta ca va trebui sa eliberati locul sau sa platiti in plus. Daca eliberati locul mai repede, puteti specifica acest lucru si va trebui sa platiti numai pentru durata exacta a stationarii. Sistemul poate afisa locurile de parcare libere. De exemplu, in Londra, unde pentru fiecare masina sunt zece locuri de parcare, sistemul poate specifica care este cel mai apropiat loc liber de vreme ce cunoaste locatia dumneavoastra si are in evidenta si locurile vacante. Pentru a verifica daca oamenii nu inseala sistemul, agentii de parcare  pot specifica care loc doresc sa il verifice si sistemul va afisa locul care apare ca ocupat si cele care apar ca fiind libere.

 

 

Accesarea continutului WML

 

Cea mai usoara cale de a accesa paginile WML sau cardurile este de a trece printr-un gateway existent. Majoritatea producatorilor de aparate celulare vor detine aceasta functionalitate pe pagina lor WAP pe care o accesati prin dispozitivul WAP. Link-ul gateway se numeste de obicei "Go to URL". Atunci cand este selectat, dispozitivul WAP va accesa URL-ul specificat de dumneavoastra prin IP normal trecand prin gateway. In acest caz, gateway-ul citeste continutul WML pentru dumneavoastra si il trimite catre dispozitivul WAP. Continuturile sunt la fel cum la citeste un browser PC.

Unii operatori au decis sa nu permita utilizatorilor accesarea altor situri in afara de cele proprii. Acest fenomen se poate compara cu cazul in care un Provider de servicii Internet permite utilizatorilor sai accesarea siturilor proprii in exclusivitate. O astfel de politica prezinta insa lipsa de inteligenta. In cazul in care beneficiati de serviciile unui astfel de operator, aveti posibilitatea de a trece de aceasta restrictie prin conectarea la Internet printr-un serviciu dial up al unui provider local si sa foloseasca un gateway public pentru accesarea resurselor WAP.

 

Daca beneficiati de serviciile unui operator care nu va permite accesarea altor resurse WAP in afara celor alese de catre el sau pur si simplu doriti sa treceti de operatorul dumneavoastra din motive de dezvoltare, majoritatea dispozitivelor WAP  va permit acest lucru.

De vreme ce diferite dispozitive WAP functioneaza in mod diferit, acesta este un exemplu foarte general, insa trebuie cat de cat sa va lamureasca.

Inainte de toate aveti nevoie de numarul de telefon al unui provider local de servicii Internet la care sa aveti un cont dial up normal (acelasi tip de cont pe care l-ati folosi pentru calculatorul dumneavoastra de acasa de exemplu). Multi provideri ofera acces dial up la Internet gratuit. Providerul nu trebuie sa fie local, insa nu uitati ca costurile vor fi la nivelul apelurilor pe telefon mobil. Providerul trebuie sa suporte protocolul PPP. In mod evident, la fel veti avea nevoie de un ID de utilizator si o parola cu acest provider. Apoi veti avea nevoie de adresa IP al unui gateway public.

 

Configurati-va dispozitivul WAP cu numarul de telefon, cu ID-ul de utilizator, cu parola si cu adresa IP pentru gateway. Pe Nokia 7110 acesta se face la optiunea Services, Settings, Connection Settings. Nokia 7110 foloseste SMS de tip Bearer ca setare initiala (default), si va trebui sa schimbati aceasta la Data. Exista la fel setari pentru Data Cal Type si Connection Types. Pentru optiunea Data Cal Type va trebui sa selectati ISDN, insa va trebui sa incercati cam ce merge mai bine cu providerul dumneavoastra. Pentru optiunea Connection Type va trebui sa alegeti Temporary, insa si aici este bine sa incercati toate optiunile. In final setati Home Page la un serviciu WAP de pe Internet despre care stiti ca functioneaza si sunteti gata.

 

Deservirea continutului WML

 

PUSHing

 

PUSH a fost adaugat la WAP 1.2, si este disponibil numai in mediile WAP 1.2. Pe scurt PUSH ofera o alta cale de trimitere a datelor de la un server de continut sau de aplicatie la un agent mobil. Metoda "traditionala", PULLing este pentru agentul utilizator care cere informatia si apoi o primeste. PUSH inseamna ca serverul poate trimite datele la agentul utilizator fara a trebui sa o ceara.

Serverul de continut sau de aplicatie nu poate trimite datele la agentul utilizator direct, dar va trebui sa utilizeze un asa numit Push Proxy Gateway. Acest PPG se afla intre Push Initiator (serverul de continut sau cel de aplicatie) si agentul utilizator mobil. Pe partea de internet se utilizeaza Push Access Protocol si pe partea de internet mobil se utilizeaza Push Over-the-Air Protocol.

Nu uitati ca agentul utilizator nu accepta automat datele de la orice provider de continut - ci numai de la acelea care sunt trecute pe lista proprie.

In prezent singura platforma de dezvoltare WAP 1.2 care suporta PUSH este Nokia Toolkit 2.0. Nu uitati sa va inregistrati prima data. Observati ca Nokia Toolkit 2.0 suporta numai PUSHing internal. Acesta inseamna ca mesajele se pot transmite la si de la interfata catre telefonul emulator. Daca incercati sa redirectionati toolkitul la un Push Proxy Gateway extern, acesta se va opri. Insa asa cum se spune in fisierul readme care este inclus in toolkit, PUSHing inca nu a fost testat in intregime.

 

PHP si WML

 

PHP (si majoritatea celorlate limbaje server side) pot fi utilizate pentru a face un continut WML dinamic, pentru ca pot face toata treba si scoate output-ul intr-un format ingust pe care il accepta micro browserul WML intr-un dispozitiv WAP. Pentru a obtine mai multe informatii despre PHP mergeti pe situl PHP.

Unele caracteristici incluse in PHP afiseaza HTML, in mod tipic mesaje de eroare, pe care microbrowserul WML nu il va intelege.

PHP este intr-atat de flexibil incat un document HTML care contine script PHP poate fi utilizat atat pentru browsere compatibile HTML cat si pentru cele compatibile WML. Codul sursa PHP este invizibil clientului si depinde de voi daca vreti ca output cod HTML cand browserul este compatibil HTML si cod WML cand browserul este compatibil WML

Un browser PC poate fi utilizat in timpul dezvoltarii codului PHP WML prin adaugarea unui cod PHP chiar la inceputul paginii:

 

<?

// 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");

?>

 

Browserul Pc va ignora toate tag-urile WML pe care nu le intelege. Apoi, cand sunteti gata sa testati codul pe dispozitivul WAP sau pe emulatorul WAP, pur si simplu eliminati cele doua bare (//) din fata comenzii "header", iar pagina devine automat un pachet WML.

 

Sintaxa generala WML

 

WML seamana foarte mult cu XML. Este foarte strict, comparativ cu HTML de exemplu, ceea ce inseamna ca la parsare si la interpretarea de catre micro browser nu este loc pentru greseli.

La fel ca in cazul HTML-ului, limbajul foloseste tag-uri de formatare incadrate intre < si >. Majoritatea tag-urilor detin tag-uri de start <tag> si tag-uri de incheiere </tag>. Ceea ce este intre tag-urile de inceput si cele de incheiere se numesc elemente. Cateva tag-uri sunt asa numite elemente goale, si detin tag-uri fara continut <tag/>.

Majoritatea elementelor pot avea atribute care descriu mai departe ceea ce trebuie facut cu continutul. Numele de atribut trebuie sa fie scris cu minuscule si valoarea de atribut trebuie incadrat intre citate "". Unele elemente necesita atribute si unele atribute sunt optionale. Formatul general al tag-urilor cu atribut este: <tag attribute1="value">.

Variabilele pot fi prezente in carduri WML si formatul lor general este de $(numevariabil)

Un pachet de carduri WML are un format special si trebuie sa inceapa cu declaratiile de tip ale urmatorului XML si ale documentului:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM/DTD WML

1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

Toate elementele intr-un pachet trebuiesc plasate intre tag-uri <wml> si </wml>.

 

 

Securitate

 

 

Mediul WAP suporta partial protejarea anumitor directoare si fisiere (si chiar si comenzi) prin protocolul HTTP. Sistemul este identic cu ceea ce ati utiliza pentru o pagina web normala si este cunoscut ca Basic Authentication(autentificare de baza).

Unele emulatoare WAP si browsere WAP virtuale s-ar putea sa nu suporte aceasta caracteristica.

In acest moment nu se stie daca e posibila utilizarea altor tipuri de autentificari.

Pentru a avea aceasta caracteristica trebuie suport pe serverul vostru HTTP. Atunci cand un browser WAP cere un anumit URL, va cere utilizatorului numele de utilizator si parola. Ambele sunt usor codificate pentru a suporta caracterele, insa nu incifrate, ceea ce inseamna ca oricine se conecteaza cu un dispozitiv adecvat poate sa vada numele de utilizator si parola.

Aceasta caracteristica este bine documentata in distribuirea Apache, insa aici puteti vedea cum se poate configura aceasta pe un server HTTP Apache:

Asigurati-va ca Apache este astfel configurat incat asa numitele fisiere .htaccess se pot suprapune configurarii globale. Configurarile de acces pot fi facute atat in fisiere separate pentru fiecare director sau in fisierul global access.conf, insa in acest exemplu ne vom concentra pe utilizarea fisierului .htaccess. Localizati si editati fisierul access.conf si verificati valoarea pentru configuratia AllowOverride. Ar trebui sa fie configurat la AuthConfig ceea ce inseamna ca atunci cand Apache gaseste un fisier .htaccess intr-un director, se vor aplica regulile de accesare din fisierul acelui director. Nu uitati sa reincarcati Apache-ul dupa modificarea configurarilor.

Mai departe, puneti un fisier in directorul pe care vreti sa il protejati numit .htaccess. (Observati punctul si inceputul denumirii fisierului). Continutul unui fisier .htaccess de baza ar trebui sa fie ceva de genul:

 

AuthType Basic

AuthName "WAP FAQ Authentication Demo"

AuthUserFile /home/httpd/html/wap-

faq/extras/auth/auth.passwd

require valid-user

 

Configurarea AuthType

specifica tipul autentificarii, AuthName

specifica domeniul, AuthUserFile specifica

calea catre un fisier parola, iar require

specifica de ce este nevoie penru a avea access, in acest caz, orice utilizator

prezent in fisierul parola cu parola corecta.

 

Apoi trebuie sa generati un fisier parola si, deoarece este intr-un format special, Apache aduce pentru acest lucru un program numit htpasswd pentru a face acest lucru. Rulati programul astfel:

 

# htpasswd /home/httpd/html/wap-

faq/extras/auth/auth.passwd demo

New password:

Re-type password:

Adding password for user demo

 

Observatie! Trebuie sa adaugati optiunea -c la htpasswd prima data cand creati fisierul. Rulati htpasswd-ul fara alte optiuni de a vedea sintaxa.

Acum ati adaugat un utilizator numit "demo" si ati scris de doua ori parola. Din motive de securitate, fisierele parola nu ar trebui puse sub root-ul document asa cum am facut eu in acest exemplu.

Partea finala de testare va sugerez sa o faceti cu un browser HTML. Scrieti URL-ul pentru directorul pe care l-ati protejat, si ar trebui sa va apara un cadru care sa va solicite numele de utilizator si parola. Acum sunteti gata sa faceti testarea cu un browser WAP.

Un exemplu de director protejat este disponibil pe acest server atat pentru browsere HTML cat si pentru WML. Numele de utilizator si parola pentru acest exemplu este "demo".