WAP Parte seconda

di Luca Passani, in XML,

Nella prima parte ho delineato i concetti di base dietro a WAP e WML (l'HTML di WAP, tanto per rinfrescarvi la memoria). Adesso sto per fare il passo successivo: vedrete come ASP può essere utilizzato per integrare WAP con applicazioni esistenti.

Un modo divertente di prenotare i biglietti del cinema

Qui ad Oslo i cinema gestiscono un sistema automatico che mi permette di prenotare i biglietti del cinema per telefono. Uno strazio: occorre conoscere i codici dei film (si trovano sui giornali), seguire le istruzioni registrate e se commetto un errorino devo rifare tutto da capo.

Vi mostrerò in questo articolo una semplice applicazione che permetterebbe agli utenti di telefonini WAP di prenotare il biglietto in maniera assai più semplice. Sarebbe un successone. La gente non avrebbe bisogno di ricordarsi codici speciali, dal momento che potrebbero selezionare il film da un menù di film, di sale cinematografiche e di possibili orari, menù leggibili da umani, si intende. L'autenticazione non sarebbe necessaria, dal momento che coloro che non comprano il biglietto prenotato almeno 40 minuti prima dell'inizio del film, perdono la prenotazione.

In un futuro prossimo, sarà possibile addebitare il costo dei biglietti direttamente sulla bolletta del telefono di chi chiama.

L'applicazione tiene in considerazione il fatto che lo stesso film potrebbe essere dato da parecchi cinema contemporaneamente, e che più di un film potrebbe essere mostrato allo stesso cinema contemporaneamente (a Oslo tutti i cinema hanno parecchie sale).

Non ho curato particolarmente la gestione degli errori, dal momento che non era rilevante ai fini dell'articolo, ma nella realtà questo aspetto assorbirebbe la maggio parte delle risorse di sviluppo.

Al fine di tenere le cose semplici, ho usato un database Access 97 con conessione DSN-less. ADO naturalmente garantisce che passare ad un'altro database sarebbe facile.

Immagine

Lo schema del database

Le tabelle Movies (film) e Theater (sala cinematografica) si spiegano da sole. La tabella Show (spettacoli) tiene il conto di quanti posti siano ancora disponibili per ogni singola visione di un film. La tabella Booking (prenotazioni) tiene conto delle prenotazioni, ovvero di quanti posti sono prenotati per quel film, a quale ora e in quale cinema. Un record viene inserito ogni volta che un utente completa una prenotazione.

Un numero di prenotazione viene restituito all'utente alla fine del processo di prenotazione. Tale numero può essere utilizzato dal personale per richiamare le informazioni necessarie sui loro terminali all'atto dell'acquisto.

Come testare l'applicazione

Al fine di accedere ad un servizio WAP, avrete bisogno o di un telefonino WAP 1.1 o di un emulatore. Gli esempi sono stati testati principalmente con il Nokia Toolkit 1.2. Fate riferimento alla prima parte per i dettagli riguardo al reperimento e all'installazione dell'emulatore.

Quando avete l'emulatore, potete scaricare il codice dal link alla fine dell'articolo e riprodurre gli esempi sul vostro IIS.

Schegliere il film

Il film viene selezionato da una lista di film disponibili:

Immagine

Ecco il codice:

<!--#include file="conn.asp" --><% 

  'send the right MIME type

  Response.ContentType = "text/vnd.wap.wml" 

Per prima cosa, occhio agli spazi. L'emulatore non accetterà il WML generato, a meno che le dichiarazioni XML non siano piazzate a modino, benchè il Nokia 7110 (il primo telefonino WAP 1.1 distribuito in Europa) perdoni di più. È necessario pure che diciate al telefonino (o, più in generale, allo user agent) il tipo MIME di ciò che gli state mandando, il WML, altrimenti non funzionerà niente.

%><?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

La schermata di benvenuto mostra una figurina per 5 secondi, prima di passare al prossimo card.

Questo effetto viene raggiounto grazie ad un timer che scatta dopo 50 decimi di secondo. L'azione associata all'evento ontimer (allo scoccar del timer, per così dire) altro non è che una direttiva di navigazione ad un'altro card.

Le bitmap di WAP (WBMP, chiamarle bitmap wireless mi sembra stupido) sono un nuovo formato. Ho generato la figura dell'esempio per mezzo di un plug-in per Adobe PhotoShop che potete scaricarvi gratuitamente da Internet.

<card id="splash" ontimer="#card1" title="Welcome to">

  <timer value="50"/>

 <p >

  


  <img src="pix/logo.wbmp" alt="WAP movies"/>

 

</card>

<card id="card1" title="choose a film">

<% 

  sqlQuery = "SELECT [Movie_ID], [title] FROM Movie"

  set rsMovies = conn.Execute(SQLquery)

  :  

%>



<select name='movie'>

<%

  Do while not rsMovies.eof

   response.write("<option value='" & rsMovies("Movie_ID") & "'>" & rsMovies("title") & "</option>" & vbcrlf)

   rsMovies.MoveNext

 loop %>

</select>

Questa è la parte cruciale dell'applicazione. Gli elementi 'select' sono generati dinamicamente attraverso ASP e ADO, estraendo l'informazione dalla tabella di film disponibili.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata