Tratto da Telefoni Cellulari Magazine, n. 28 Settembre/Ottobre 2001.
Vi insegniamo a programmare in WML per costruire il vostro sito Internet sul cellulare.
La telefonia mobile, sia per apparecchi venduti, sia per numero di SIM (abbonamenti e prepagate)
circolanti, ha ormai ampiamente superato la telefonia fissa. Nello stesso tempo anche gli utenti Internet sono aumentati a dismisura.
Ora, se aumentano gli utenti di telefonia cellulare e aumentano anche gli utenti della rete, come conseguenza logica
ne derica un'aumentata esigenza di rendere "mobile" anche Internet, nel senso di rendere possibili connessioni
e navigazione in qualsiasi momento della giornata e in qualsiasi luogo.
Questa é la molla che ha fatto scattare il WAP, Wireless Application Protocol, la tecnologia, cioé, che permette
a un telefono cellulare GSM tradizionale, il WAP conoscerà il suo momento di maggiore fortuna con il GPRS che
per velocità di trasmissione non ha nulla da invidiare alle linee fisse ISDN.
Marcello Scatà, ingegnere e, soprattutto, cervello di GSMWORLD.it, il portale italiano della telefonia mobile, ha
accettato di guidarci nel mondo WAP e di insegnarci a creare la nostra home page anche sul telefonino, così come
siamo (forse) capaci di fare sul computer di casa.
Ecco la prima di tre puntate.
Il termine WAP è ormai diventato di uso comune tra gli
appassionati di telefonia mobile; sempre più spesso si pubblicizzano servizi
WAP, telefonini che integrano il WAP, si paragona il WAP alla navigazione
Internet, si comincia a parlare di portali WAP, ecc. ma cos'è questo WAP? Come
si realizza un sito WAP? Cos'è il linguaggio WML? Oppure un Wortal? Un
micro-browser?
Iniziamo con questo numero un viaggio nel mondo della
tecnologia WAP che ci porterà a capire la filosofia alla base del WAP, a
descriverne l'architettura fino a progettare un sito WAP e scrivere la nostra
prima pagina nel linguaggio WML.
In questa prima puntata cominciano con un
po' di teoria sull'architettura del sistema per poi capire cosa sia un wortal e
vederne alcuni esempi sull'esperienza italiana.
IN RETE SENZA CAVI
Internet ed in particolare il World Wide Web sono nati tra la
fine degli anni '80 ed i primi anni '90, quando i Personal Computer erano ancora
poco diffusi, e la telefonia cellulare era agli albori della sua storia, il
telefonino era considerato come un bene di lusso lontano dall'oggetto di uso
comune di oggi.
Nessuno allora avrebbe mai pensato che entro pochi anni, il
cellulare si sarebbe trasformato da status symbol a mezzo di riferimento per la
comunicazione, strumento quasi indispensabile per usufruire di tutti nuovi i
servizi ed ovviamente per poter entrare da qualunque luogo ed in qualunque
momento in Internet.
Esattamente come chi ha sviluppato i protocolli alla
base della tecnologia Internet non hanno preso in considerazione l'opportunità
di accesso da reti di tipo wireless, così i progettisti dei sistemi wireless ora
in commercio, con particolare riferimento allo standard GSM, non hanno pensato
che nel futuro la richiesta del servizio di trasmissione dati avrebbe superato
quello tradizionale delle comunicazioni in voce.
Ad essere sinceri, il GSM
aveva previsto fin dalla sua nascita la possibilità di scambiare dati tra utenti
sia mobili che fissi, ma il sistema era stato sviluppato pensando alla
trasmissione dati come ad un servizio opzionale, un servizio in più ma non
fondamentale. Le prestazioni offerte dalla tecnologia attuale consentono una
velocità di trasmissione fino a 9600 bit/secondo, sufficiente per la maggior
parte delle necessità, ma assolutamente inadeguata a competere con le
prestazioni offerte oggi dai modem per reti telefoniche tradizionali che nel
peggiore dei casi offrono velocità prossime ai 56.000 bit/secondo, ma che
possono arrivate a 128.000 bit/secondo e fino a 2.048 kbit/secondo con la
nuovissima tecnologia ADSL.
Il WAP idealmente farà da ponte per connettere
le possibilità offerte oggi dai sistemi wireless alle necessità imposte per
accedere con prestazioni dignitose ad Internet ed a tutta una serie di servizi a
valore aggiunto su essa basati.
LIMITI DEL WIRELESS
Chi ha progettato Internet ed i suoi protocolli di
comunicazione non ha considerato l'opportunità che questa potesse nel futuro
viaggiare anche su una rete wireless, cioè una rete che utilizza come mezzo di
trasporto le onde radio e non un cavo di rame o in fibra ottica. Ad una prima
analisi può sembrare che questa differenza non sia rilevante, ed invece è
proprio in più grosso limite imposto dalle reti wireless.
Proviamo a rendere più chiaro questo concetto con un parallelo tra la telefonia
fissa tradizionale, il telefono di casa per intenderci, e la telefonia
cellulare.
La prima differenza che l'utente della strada riscontra tra i due è la qualità
della voce. Il segnale trasmesso via radio è spesso affetto da rumore,
distorsione, interferenza (basti pensare alla ricezione delle trasmissione radio
FM in automobile) o effetto metallico (tipico del GSM), mentre la voce che
percepiamo dalla cornetta del nostro telefono di casa offre una qualità costante
e sensibilmente migliore di quella offerta dai sistemi cellulari sia ETACS che
GSM.
Nelle conversazioni in voce il rumore di fondo o l'effetto metallico sono
spiacevoli per l'orecchio umano, ma non pregiudicano la possibilità di
comunicare. Nelle trasmissioni dati, ad esempio nel caso di una connessione ad
Internet, possono invece degenerare le prestazioni in maniera drammatica, fino a
portare all'interruzione della trasmissione stessa.
Il mezzo di comunicazione è, nel caso delle comunicazioni via cavo, dedicato
alle due entità che comunicano, mentre, nel caso delle comunicazioni wireless, è
condiviso tra tutti gli utenti di una certa regione spaziale (ad esempio tutti
gli utenti di una cella GSM).
Il primo sforzo su cui i progettisti del WAP si sono concentrati é stato proprio
ottimizzare l'uso della risorsa radio, creando dei protocolli con
caratteristiche tali da farli adattare al meglio alle particolari
caratteristiche di una comunicazione wireless.
Non vanno poi dimenticati i tempi di latenza (comunemente detti "tempi morti")
tra la richiesta di un servizio al server e la sua risposta. In una rete via
cavo, il tempo di ritardo della risposta è semplicemente dovuto alle entità
coinvolte (ad esempio a causa di una congestione della rete o del server
sovraccarico), mentre in una rete radiomobile va considerato anche il tempo di
trasmissione via radio che può non essere costante. Si pensi ad esempio alla
trasmissione di un breve messaggio di testo SMS, il tempo di consegna può
variare da pochi secondi ad alcuni minuti oppure ad ore in dipendenza del
traffico istantaneo sulla rete GSM.
Infine il grado di affidabilità di una rete wireless è notevolmente inferiore a
quello offerto da una rete via cavo. Può succedere di non riuscire a comunicare
per alcuni secondi (succede spesso nelle conversazioni GSM) per poi riprendere
senza problemi. I protocolli di trasporto utilizzati nel WAP devono tenere conto
anche di questa eventualità, cercando di recuperare la connessione senza
chiuderla; i protocolli oggi utilizzati su Internet via telefono fisso non sono
in grado di gestire una simile situazione, ma abbatterebbero inevitabilmente il
collegamento.
WAP FORUM
Il Wireless Application Protocol Forum è un'associazione di
industrie con lo scopo primario di sviluppare nuovi standard e servizi per i
terminali wireless: telefonini cellulari, Personal Data Assistant (PDA) o pager
(termine tecnico per definire i comuni "cerca-persone"). Il WAP Forum è nato nel
giugno del 1997 su iniziativa congiunta di Ericsson, Motorola, Nokia e Unwired
Planet (ora Phone.com) proprio per superare tutte le soluzioni proprietarie
allora presenti, riunire aziende provenienti da settori diversi delle
telecomunicazioni per assicurare l'interoperabilità dei prodotti e favorire la
crescita del mercato.
L'INTEROPRABILITA'
Interoperabilità è un termine tecnico che indica la possibilità
che apparecchiature sviluppate da produttori diversi siano in grado di
cooperare. In altre parole un sistema è interoperabile quando è possibile
sostituirne un qualsiasi modulo con uno analogo da realizzato da un'altra casa
costruttrice. Un eccellente esempio di sistema globalmente interoperabile è
sicuramente il GSM. Nel GSM sia i telefonini cellulari che le infrastrutture di
rete, pur progettate e prodotte da un gran numero di aziende diverse, di diverse
nazioni se non di continenti diversi, sono in grado di colloquiare
perfettamente. Un telefonino prodotto nel nord Europa con una SIM di un gestore
italiano, accesso in Sud Africa funziona ed è in grado di ricevere ed effettuare
chiamate. Non va dimenticato che l'interoperabilità porta un sé la
globalizzazione del mercato, abbattendo i costi di sviluppo e
commercializzazione per i produttori e quindi i costi per gli utenti finali. Chi
realizza un servizio o un terminale WAP, è in grado di venderlo da subito sul
mercato mondiale senza preoccuparsi di adattarlo alle esigenze del singolo
paese.
L'ARCHITETTURA INTERNET
Internet é un'architettura di tipo client-server distribuita.
Tutte le pagine sono scritta in un linguaggio apposito, ben specificato, l'HTML
(HyperText Markup Language), e sono memorizzate in appositi computer, detti Web
server. Quando accediamo ad un sito, il nostro "client browser" (Netscape o
IExplorer per intenderci) invia una richiesta codificata al corrispondente Web
server che risponde inviandogli la pagina richiesta. Il protocollo di più alto
livello utilizzato per questa transazione è l'HTTP (HyperText Transfer Protocol)
che si appoggia sui servizi di trasporto offerti dal classico stack TCP/IP.
Esistono poi su Internet dei server che svolgono delle funzioni particolari: i
Proxy server. Il Proxy svolge la funzione di "intermediario" tra il client ed il
server. Viene generalmente utilizzato per porre in comunicazione client e server
che non possono essere connessi direttamente (ad esempio perché divisi da un
firewall). Il principio di funzionamento è il seguente: quando il client browser
richiede una pagina ad un Web server qualsiasi su Internet, in realtà invia la
sua richiesta al Proxy server che, come client, la rigira al Web server.
Quest'ultimo invierà la pagina richiesta al Proxy, in questo momento client, che
a sua volta la invierà, come server, al client browser. Il Proxy svolge entrambi
i ruoli, client e server, previsti nelle specifiche del WWW.
L'ARCHITETTURA WAP
L'architettura WAP ricalca molto da vicino quella Internet,
appena esposta, cercando di adattarne alcune caratteristiche alle specifiche
esigenze della trasmissione radio. Offre così alla comunità degli sviluppatori:
un ambiente di programmazione familiare, un'architettura provata e la
possibilità di sfruttare tool e server già esistenti. Le informazioni sono
trasportate usando un set di protocolli di comunicazioni derivati dai classici
protocolli del World Wide Web, mentre un microbrowser nel telefonino cellulare
svolge le funzionalità di un classico Web browser.
Facendo un parallelo
possiamo dire che, a grandi linee, il WAP nel wireless é l'HTTP di Internet,
mentre il WML è l'HTML. Ovvero, mentre un sito Internet e un client parlano HTTP
e le pagine sono in formato HTML, un sito WAP e un telefono WAP parlano WAP e le
pagine sono WML. Se per pubblicare una pagina Web mi occorre un Web server, per
poter erogare dei servizi WAP occorre un WAP server: cioè un software in grado
di fornire pagine WML parlando WAP.
Ma come fa un telefonino WAP a
collegarsi ad un WAP server? Proprio come un normale PC si collega ad Internet:
facendo una chiamata dati a un fornitore di connettività che gli consente
l'accesso alla rete.
Poiché un Web server opportunamente configurato è in
grado di erogare pagine WML parlando HTTP, nell'architettura si è inserito un
gateway che, con le modalità di un Proxy Internet appena descritto, possa fare
da ponte tra il Web server ed i telefonini WAP traducendo il protocollo da HTTP
a WAP e viceversa. In conclusione l'accoppiata Web server - WAP Gateway
costituisce quindi un WAP server.
L'ARCHITETTURA WAP
Il WAP Gateway non é altro che un computer che consente
l'interconnessione del sistema WAP con Internet. L'architettura WAP frutta la
tecnologia Proxy, poc'anzi descritta, per connettere i microbrowser ed il mondo
WAP compatibile con Internet. Abbiamo già detto che il linguaggio utilizzato nel
mondo WAP è il WML, l'unico in grado di essere interpretato dai telefonini. Ma
com'è possibile allora navigare su Internet visto che i siti Web sono scritti in
linguaggio HTML ed il telefonino è in grado di visualizzare solo pagine scritte
in WML? E' qui che entra in gioco il WAP Proxy o WAP Gateway. Quest'ultimo una
volta ricevuta la richiesta della pagina dal telefonino, provvede ad inoltrarla
al sito Internet. Il sito invia al WAP Gateway la pagina in HTML e quest'ultimo
provvede a convertirla nel linguaggio WML per inviarla quindi al telefonino, che
adesso è in grado di visualizzarne il contenuto. E' evidente che il sistema
automatico di conversione delle pagine (da HTML a WML) non può fare miracoli e
così i siti eccessivamente complessi o contenenti programmi particolari (Applet
Java, JavaScript, ecc.) non saranno tradotti correttamente.
I 5 PROTOCOLLI DELLO STACK WAP
L'architettura protocollare WAP è disegnata come una struttura
a livelli, in maniera analoga all'architettura protocollare di Internet. Lo
stack è diviso in cinque livelli: Application Layer, Session Layer, Transaction
Layer, Security Layer e Transport Layer.
WAE: Wireless Application Environment
E' il primo livello, il più vicino all'utente, ed è l'ambiente che contiene WML, WMLScript, Wireless Telephony Application (WTA) e Addressing Model. Del WML abbiamo già parlato; il WMLScript è basato su ECMAScript, lo stesso linguaggio su cui è basato anche Javascript. WMLScript aumenta la funzionalità di un servizio via WAP, proprio come Javascript per HTML. L'Addressing Model infine è la sintassi per il naming delle risorse memorizzate sui server; WAP esattamente come il Web utilizza Uniform Resource Locator (URL) e Uniform Resource Identifiers (URI).
WSP: Wireless Session Protocol
Il livello di sessione è una versione binaria di HTTP che definisce i messaggi che devono essere formattati e trasmessi. Il controllo dei messaggi viene destito dal WTP protocol.
WTP: Wireless Transaction Protocol
A questo protocollo spetta il compito di diminuire la complessità di alcune funzioni di transizione, affichè si renda più leggera l'operazione di up-load di deck WML.
WTLS: Wireless Transport Layer Security
Sotto lo strato di sessione si colloca il Security Layer WTLS che fornisce lo strato di trasporto sicuro tra WAP gateway e WAP client (il telefonino). Garantisce l'integrità dei dati e fornisce meccanismi per l'autenticazione del terminale. Deriva dal già esistente SSL (Secure Sockets Layer) utilizzato per Internet.
WDP: Wireless Datagram Protocol
Grazie alla versatilità di questo protocollo, lo stack WAP si adatta alle caratteristiche assai diverse dei potenziali network, ad esempio: GSM, Mobitex, DECT, TETRA, FLEX, TDMA e CDMA.