Servizi a
valore aggiunto
per Terminali WAP compatibili
Progetto di : Reti di Calcolatori
Professore : Antonio Corradi
Realizzato da : Antonio Tozzi
Matricola : 2148/52361
E-mail : tozzi_antonio@hotmail.com
Indice
1. Introduzione
2. Scopo
3. Requisiti
7. Prestazioni dellarchitettura
1. Introduzione
Le informazioni reperibili attraverso Internet sono ormai incommensurabili ed accessibili con linee sempre più veloci e meno costose. Il passo successivo, è quello di creare un meccanismo che permetta di rendere raggiungibile, da terminali wireless come telefonini cellulari e Personal Digital Assistant (PDA), la grandissima quantità di informazioni di Internet e linsieme di servizi ad essa correlati.
Studi portati avanti dai più importanti produttori di telefonia cellulare mondiale, Ericsson, Nokia e Motorola (che coprono il 75% del mercato mondiale) prevedono che la richiesta di servizi messi a disposizione dalle capacità multimediali dei telefonini, tra le quali laccesso alle informazioni wireless da Internet/intranet e la possibilità di scambio di e-mail, seguirà landamento del grafico riportato nella figura 1.
Il mercato attuale propone due grandi linee guida: la telefonia cellulare ed Internet, ed ormai la convergenza è una realtà. Nel giugno del 1997, Nokia, Motorola, Ericsson e Unwired Planet si sono unite nel Wap forum (http://www.wapforum.com) con lintento di creare uno standard utilizzabile da tutti, il cui obiettivo principale è la standardizzazione del modo con cui i dispositivi wireless come cellulari e PDA, utilizzano Internet. Il protocollo WAP (Wireless Application Protocol), rende possibile reperire direttamente dal proprio terminale qualsiasi informazione da Internet. Questo nuovo protocollo permette a tutti i telefonini compatibili WAP non solo di navigare in Internet, ma di ottenere ogni sorta di servizio e di informazione direttamente sul display del proprio telefono. Allo stesso modo di Internet, chiunque potrà fornire un servizio e tutti potranno riceverlo sul proprio terminale.
Il protocollo WAP, nasce con precise caratteristiche:
Il protocollo WAP va inteso come un protocollo di trasmissione a tutti gli effetti, che non viene però utilizzato per trasmettere dellHTML, ma per trasmettere "pagine" WML (Wireless Markup Language), il linguaggio sviluppato ad hoc per la telefonia cellulare. Il WML è un linguaggio interpretato, ottimizzato per la trasmissione via WAP ed è strutturato per essere visualizzato sui piccoli display dei telefonini cellulari. Sul protocollo WAP, insieme al WML si può anche trasmettere codice WML Script, che è un linguaggio di scripting contenente alcune istruzioni particolari per la gestione di funzioni client side. Il commercio mobile o la possibilità di effettuare transazioni diventano in questo modo possibili.
Il modello di implementazione di applicazioni WAP è un modello Client/Server a tre stadi, come mostrato nella figura 2:
Sul Client (Terminale WAP), girano applicazioni WML e WML Script, una richiesta quando viene inoltrata utilizza il protocollo di trasporto WTP per giungere al WAP Gateway. Il WAP Gateway, sul quale gira un WML e WML Script decoder/encoder, riceve la richiesta e la trasmette al WEB Server utilizzando il protocollo HTTP. Il WEB Server riceve la richiesta, la elabora, e genera una risposta che viene ritrasmessa al WAP Gateway, che la codifica per essere ritrasmessa al Client (Terminale WAP) per essere visualizzata.
Figura 2
Un fattore importante da sottolineare è che la comunicazione tra Client (Terminale WAP) e WAP Gateway (e viceversa) avviene come comunicazione codificata, quindi compito del WAP Gateway è anche quello di decodificare e codificare le varie chiamate.
Questo settore è in continua evoluzione e si prevede in futuro anche linserimento della JVM (Java Virtual Machine) allinterno dei dispositivi wireless per sfruttare appieno le potenzialità del linguaggio Java.
2. Scopo
Lo scopo del progetto è quello di acquisire conoscenza sul nuovo standard di comunicazione WAP (Wireless Application Protocol), per terminali wireless ed in particolare vedere come questo si colloca ed interagisce con il tradizionale standard di comunicazione TCP/IP di Internet.
I possibili scenari che si possono presentare ad un potenziale utente WAP sono:
Un qualsiasi utente, configurando opportunamente il proprio terminale può eseguire una normale chiamata dati al proprio ISP, via Internet raggiungere il gateway pubblico (via WDP), il gateway rimette i dati sulla rete in formato HTTP, permettendo di giungere ai comuni server web, appositamente preparati a gestire contenuti WML.
Vantaggi
Svantaggi
Essendo gestiti direttamente dalloperatore, lo standard di qualità è garantito dalla competitività delloperatore stesso e dalla concorrenza con gli altri operatori.
Vantaggi
Svantaggi
In un panorama aziendale, dove lutilizzo dei servizi WAP è prevalentemente orientato al contatto ed alla collaborazione tra le varie componenti dellazienda è senzaltro più produttiva la scelta di un gateway privato, collegato alla intranet aziendale.
Vantaggi
Svantaggi
Lobiettivo del progetto allora è quello di realizzare un servizio a valore aggiunto per utenti WAP ed in particolare una transazione da effettuarsi su dei Server connessi alla rete (Internet/intranet) utilizzando un terminale WAP compatibile. La transazione potrebbe essere ad es. il pagamento del taxi o la prenotazione di un film presso una sala cinematografica; nel nostro caso la transazione consiste semplicemente in una richiesta di una operazione di incremento/decremento di un contatore posto su un Server remoto.
3. Requisiti
Le parti che si mettono in gioco nel progetto sono molteplici, ed in particolare un Client (Terminale WAP) che effettua la richiesta di esecuzione della transazione, un WAP Gateway (Server WAP) che ha lo scopo di ricevere la richiesta dal Client e di smistarla opportunamente su dei Server, dei Server (Server Primario e Secondario ) che si coordinano per la corretta esecuzione della transazione. La transazione deve essere un servizio reliable, cioè deve essere garantito il corretto esito della risposta fornita al Terminale WAP e di conseguenza allutente. Per realizzare ciò bisogna avere una comunicazione affidabile tra le varie parti dellarchitettura, sia sulla rete wireless sia sulla rete Internet/intranet. Larchitettura per ovviare a problemi di guasto (quindi con relativo ripristino della consistenza dei dati) e di bilanciamento del carico prevede una replicazione per quanto riguarda i Server, quindi di conseguenza la transazione (operazione) deve essere eseguita in maniera atomica su entrambe i Server, che devono controllarsi e coordinarsi tra di loro. Larchitettura è fortemente centralizzata dalla presenza del Server WAP che ha la funzione di gateway tra la rete wireless e la rete Internet/intranet e ha il compito di smistare le richieste che arrivano dai Terminali WAP, in modo da tenere bilanciato il carico in ingresso ai due Server. Per ovviare ai problemi che una struttura fortemente centralizzata può comportare, si può, o replicare anche il Server WAP (con relativo protocollo di controllo e coordinamento), oppure, fare in modo che sia un componente con un grado di affidabilità maggiore rispetto ai due Server.
La realizzazione deve essere in grado di :
I problemi che possono verificarsi durante la transazione sono:
4. Architettura e coordinamento
Terminale WAP
Il Terminale WAP effettua la richiesta della transazione al WAP Server (1) e riceve lesito del servizio (6).
WAP Server
Il WAP Server è in attesa di richieste di servizio da parte dei Terminali WAP, una volta giunta una richiesta di servizio, deve richiedere lesecuzione delloperazione ad uno dei Server (Primario (2) o Secondario (2)), bilanciando il carico in ingresso, adottando una politica di Load Sharing e deve anche inviare lesito delloperazione al Terminale WAP (6).
Server Primario/Secondario
I due Server sono in attesa di richieste di esecuzione delloperazione da parte del WAP Server, che adottando una politica di bilanciamento del carico Load Sharing, smista le richieste su i due Server in maniera alternata. Il Server, che riceve la richiesta dal WAP Server (ad es. (2)) diventa il Server Primario e ha il carico di coordinarsi con laltro Server (4), che diventa il Server Secondario. Loperazione viene eseguita prima dal Server Secondario che restituisce lesito al Server Primario (5), solo a questo punto, se lesito delloperazione sul Server Secondario è positivo, il Server Primario esegue loperazione e restituisce lesito al WAP Server (3).
Coordinamento richiesta/risposta
Il modello di richiesta della transazione è un modello client/server a tre stadi come illustrato nella figura 3.
5. Fallimento della transazione (Recovery)
Le cause prese in considerazione, che possono portare al fallimento della transazione possono essere sintetizzate in due casi fondamentali :
1. Errori di accesso al file system locale del Server che sta eseguendo loperazione:
2. Crash di uno dei due Server (ipotesi di guasto singolo):
Per la realizzazione e simulazione del progetto sono stati utilizzati degli strumenti messi a disposizione gratuitamente dalla Nokia ed in particolare un emulatore di Terminale WAP (Nokia Toolkit versione 1.3beta) ed un Server WAP (Nokia WAP Server versione 1.0.1). Come linguaggio di programmazione per limplementazione dei Server Primario e Secondario è stato utilizzato un linguaggio ad oggetti ed in particolare la versione 2 di Java, che con il suo modello a processi leggeri (thread) si presta molto bene alla realizzazione di Server concorrenti e paralleli ed anche per la realizzazione di Servlet. Per la comunicazione tra il Server WAP ed i Server Primario e Secondario si è utilizzata una comunicazione con connessione (protocollo a livello di trasporto TCP), per avere una certa garanzia di continuità e affidabilità.
Un Terminale WAP (cellulare o PAD) è dotato delle seguenti caratteristiche:
Esistono, inoltre, altre limitazioni legate alla tipologia di rete cellulare:
Tutte queste caratteristiche fanno sì, che un Terminale WAP sia sostanzialmente diverso da un PC collegato in rete.
Per la realizzazione del progetto, come detto si è utilizzato un emulatore di Terminale WAP fornito gratuitamente dalla Nokia, che riesce a simulare abbastanza fedelmente le caratteristiche di un cellulare, permettendo anche di scegliere se effettuare un servizio con un collegamento con connessione o senza connessione come è stabilito dal protocollo WAP. Un Terminale WAP dispone di un microbrowser ovvero di una applicazione in grado di interpretare del codice WML, (linguaggio per i microbrowser dei dispositivi wireless) ed del codice WMLScript, (linguaggio che permette di dare un minimo di dinamicità alle pagine visualizzate sul microbrowser). Prima di trasmettere, il Terminale WAP effettua una codifica in formato binario dei dati, così da snellire i dati da trasmettere. Di seguito, figura 4, è mostrato il confronto tra il numero di pacchetti necessari ad una transazione effettuata da un browser che usa HTTP 1.0 e la stessa query originata da un microbrowser WAP. Il protocollo WAP utilizza un numero inferiore di pacchetti per consegnare lo stesso contenuto.
Nella figura 5 è rappresentato lo schema di comunicazione fra il Terminale WAP ed il Server WAP, con relativo scambio di parametri.
Come Server WAP si è utilizzata una versione messa a disposizione gratuitamente (30 giorni) dalla Nokia. La caratteristica di questa versione è che può essere utilizzata sia da Server WAP che da WAP Gateway, ma la cosa più importante, è quella di fornire la possibilità di realizzare dei servizi personalizzati che possono essere montati sul Server come dei semplici moduli, che vengono implementati con delle Servlet Java. Il Server WAP (Servlet Java) è implementato come un Server concorrente e parallelo, e questo lo si ottiene in maniera estremamente semplice con le Servlet Java. Limplementazione delle Servlet Java è realizzata, in maniera tale che per ogni richiesta di servizio proveniente da un Client (Terminale WAP) venga generato un thread in cui viene messo in esecuzione il metodo service() (nel nostro caso doGet()), in questo modo si riescono a gestire richieste concorrenti di più Client. Nel nostro caso, il Server WAP (Servlet Java) ha lobbligo, oltre ad inviare al Terminale WAP lesito della transazione (allinterno del codice WML), di tenere bilanciato il carico delle richieste in ingresso ai due Server che si trovano a valle. Uno schema, di come lavora il Server WAP ed in particolare della Servlet Java, che rappresenta il servizio fornito allutente è rappresentato in figura 6.
Il ruolo giocato dai due Server a valle è quello di portare a compimento la transazione in maniera atomica, in modo che lo stato dei due sia sempre consistente anche in caso di eventuali problemi come quelli considerati precedentemente. Lo schema di implementazione dei due Server è identico, entrambe sono composti di due processi che attendono una connessione, uno dallesterno, dal Server WAP ed uno dallinterno, dallaltro Server. Il Server che accetta la connessione dal Server WAP (dallesterno), tra i due, diventa il Server Primario e ha il carico di effettuare la connessione (interna) con laltro Server, il Secondario, per richiedere lesecuzione delloperazione. Uno schema dellarchitettura dei due Server è mostrata in figura 7.
Solamente se lesito delloperazione sul Server Secondario è andata a buon fine, il Server Primario effettua loperazione e invia il risultato al Server WAP. Questo schema simmetrico dei due Server, con una connessione interna incrociata è stato realizzato per mantenere bilanciato il carico in ingresso ai due Server, che arriva dallesterno, dal Server WAP. Il sistema deve essere in grado di gestire più richieste contemporaneamente quindi, come per il Server WAP, anche qui il modello dei due Server è concorrente e parallelo e viene realizzato sfruttando i processi leggeri (threads) messi a disposizione dal linguaggio di implementazione Java. La sequenza delle azioni sul Server Primario e sul Server Secondario, allarrivo di una richiesta di servizio proveniente dal Server WAP è mostrata nella figura 8.
Il Server Primario, accettata la connessione esterna dal Server WAP, genera un nuovo processo (thread) che ha il compito di gestire la richiesta e di connettersi con il Server Secondario per richiedere lesecuzione delloperazione. Il Server Secondario, accettata la connessione dal Server Primario, genera un nuovo processo (thread) che gestisce la richiesta, da questo momento in poi la comunicazione tra il Server Primario ed il Server Secondario avviene attraverso i due processi (threads) generati. I due Server sono realizzati in modo che abbiano un minimo di stato, perché devono essere in grado, in caso di crash di uno dei due, di accorgersene e quindi comportarsi di conseguenza attivando un protocollo di recovery. Un limite a questa architettura è dato dal numero di processi (thread) che il sistema permette di creare e di gestire con una certa efficienza.
7. Prestazioni dellarchitettura
La catena di richiesta/risposta messa in gioco in questa architettura, porta a considerare una serie di fattori che sono più o meno importanti per quelle che sono le prestazioni stesse del sistema. Lo schema di base per analizzare le prestazioni del sistema è riportato in figura 9.
Abbiamo detto in precedenza che la caratteristica del servizio è che deve essere un servizio reliable, cioè deve essere garantita allutente la correttezza della risposta, però un fattore che non deve essere trascurato è anche il tempo di risposta al servizio. Ad influenzare questo tempo di risposta al servizio, ci sono tutta una serie di fattori che dipendono sia dalla infrastruttura di comunicazione, sia da come sono implementati i vari Server.
Tempo di comunicazione
Per quanto riguarda linfrastruttura di comunicazione, i tempi che vengono messi in gioco sono quelli della comunicazione sulla rete wireless e quelli sulla rete Internet/intranet:
Tc = 2*Tc (rete wireless) + 4*Tc (rete Internet/intranet)
Per la comunicazione sulla rete wireless è possibile avere comunicazione con connessione o senza connessione, quindi si avranno tempi diversi a seconda della scelta, se con garanzia di affidabilità o meno. Per la comunicazione sulla rete Internet/intranet si è scelta una comunicazione con connessione (protocollo a livello trasporto TCP), per avere una certa garanzia di affidabilità. Questo inevitabilmente porta a dei tempi di comunicazione maggiori a causa delle due connessioni che si devono instaurare (protocollo di connessione a tre fasi) tra il Server WAP ed il Server Primario e tra il Server Primario ed il Server Secondario.
Per quanto riguarda i Server, i tempi che vengono messi in gioco sono molteplici e dipendono anche dalla particolare implementazione dei Server stessi.
Tempo di servizio
E il tempo che il Server impiega per effettuare il servizio :
Ts = Ts_wap (Server WAP) + Ts_I° (Server I°) + Ts_II° (Server II°)
Tempo di accodamento
E un tempo che dipende dal numero di richieste (traffico) che il Server si trova e gestire in un determinato istante :
Tq = Tq_wap (Server WAP) + Tq_I° (Server I°) + Tq_II° (Server II°)
I due tempi successivi dipendono dal fatto che i Server sono implementati con un modello concorrente e parallelo, quindi, con la generazione di un processo (thread) per ogni richiesta effettuata dal client (Terminale WAP).
Tempo di generazione
E un tempo che si ha nella fase di generazione dei processi (thread) per la gestione delle singole richieste dei client (Terminali WAP):
Tg = Tg_wap (Server WAP) + Tg_I° (Server I°) + Tg_II° (Server II°)
Tempo di interleaving
Questo è un tempo che va ad influire positivamente sul tempo di risposta al servizio, per es. nei casi in cui ci sono delle attese per I/O :
Ti = Ti_wap (Server WAP) + Ti_I° (Server I°) + Ti_II° (Server II°)
Quindi, il Tempo di risposta al servizio è caratterizzato dalla somma dei seguenti termini:
Trs = Tc + Ts + Tq + Tg + T i
Il Nokia WAP Server fornisce un interessante parametro che è lintervallo di tempo trascorso dallarrivo della richiesta di servizio, allinvio della risposta al Terminale WAP. Quindi è possibile effettuare delle simulazioni del sistema e vedere quali sono i tempi di risposta del servizio su i tre Server.
Transazione con esito positivo
N° Terminali WAP | Prova 1 (ms) | Prova 2 (ms) | Prova 3 (ms) | Prova 4 (ms) |
1 | 1162 | 1112 | 1162 | 1111 |
2 | 1422 | 1422 | 1181 | 1132 |
2344 | 1562 | 1462 | 1212 | |
3 | 1192 | 1101 | 1161 | 1122 |
1923 | 1142 | 1532 | 1152 | |
2923 | 2364 | 2684 | 1422 |
Transazione con esito negativo
N° Terminali WAP | Prova 1 (ms) | Prova 2 (ms) | Prova 3 (ms) | Prova 4 (ms) |
1 | 1101 | 1092 | 1092 | 1081 |
N° Terminali WAP | Prova 1 (ms) | Prova 2 (ms) | Prova 3 (ms) | Prova 4 (ms) |
1 | 1112 | 1132 | 1132 | 1111 |
N° Terminali WAP | Prova 1 (ms) | Prova 2 (ms) | Prova 3 (ms) | Prova 4 (ms) |
1 | 2103 | 2052 | 2033 | 2093 |
N° Terminali WAP |
Prova 1 (ms) |
Prova 2 (ms) |
Prova 3 (ms) |
Prova 4 (ms) |
1 |
3255 |
3375 |
3305 |
3225 |