6
Qui si colloca il progetto Simple Mobile Services; il suo obiettivo è di
rendere disponibili su dispositivi mobili quali palmari, cellulari ed affini i
servizi di comune comodità che avranno come caratteristica principale
appunto la semplicità di consultazione per gli utenti e di erogazione per i
fornitori.
Nel progetto SMS i servizi, e più in generale le informazioni, sono
rappresentate da una entità chiamata MEM(Mobile Electronic Memo); i
MEMs oltre a definire le classi di servizi offerti, possono contenere
informazioni personali di vario genere. Risulta di vitale importanza fornire
sistemi di sicurezza nella comunicazione tra dispositivi mobili nell’ambito
del progetto SMS, in modo tale da garantire integrità e sicurezza dei
MEMs.
La tesi si sviluppa attorno a questo concetto, fornendo nei capitoli 1 e 2 una
descrizione sul mondo SMS e sulla struttura dei MEM; nel capitolo 3 si
passa da una prima descrizione degli strumenti che il linguaggio JAVA
mette a disposizione per la sicurezza delle informazioni, per poi nel
capitolo 4 fornire una soluzione alla implementazione della sicurezza dei
MEMs. Elemento fondamentale per la sicurezz è la Certification
Authority, di cui si fornisce nel capitolo 5 una approfondita trattazione; nel
capitolo 6 viene descritto il concetto delle pagine web dinamiche(in
7
paticolare JSP) utili alla realizzazione di una interfaccia web-based per la
gestione degli utenti SMS, descritta nel capitolo 7.
Il progetto Simple Mobile Services
8
1. IL PROGETTO SIMPLE MOBILE
SERVICES
1.1 INTRODUZIONE A SIMPLE MOBILE SERVICES
L’obiettivo del progetto Simple Mobile Services(SMS) [1]è di creare una
serie di strumenti innovativi che rendano possibile realizzare una classe di
servizi di nuova concezione, indirizzati a specifiche necessità dei mobile
users, garantendo inoltre a singoli individui e piccole aziende di essere allo
stesso tempo utilizzatori e produttori/fornitori dei servizi stessi.
Infatti SMS fornisce strumenti e supporti per la semplice creazione,
pubblicazione e dismissione di mobile services.
Gli utenti con un background non tecnico sono in grado di agire come
sviluppatori/providers e di estendere servizi esistenti per la creazione di
nuovi servizi che saranno personalizzati per le loro specifiche necessità.
In qualche modo quindi, viene ribaltato il classico modello di Web-
Services
1
in cui il fornitore del servizio ed il consumatore sono entità
1
Web-Service: sistema software progettato per supportare l’interoperabilità tra elaboratori di una medesima rete
Il progetto Simple Mobile Services
9
distinte, rendendolo simile al paradigma del Web 2.0
2
dove l’utente è sia
consumatore che fornitore di servizi.
Come il Web, i mobile services per raggiungere il loro scopo devono essere
semplici da trovare, semplici da usare, facili da configurare e sicuri; ma
diversamente dai Web Services, essi hanno come target una specifica classe
di utenti che hanno specifiche necessità.
2
Web 2.0: insieme di tutte le applicazioni online che permettono uno spiccato livello di interazione sito-utente
Il progetto Simple Mobile Services
10
1.2 SMS COME SEMPLICITA’
Il concetto guida che caratterizza l’approccio SMS verso gli utenti e gli
sviluppatori di servizi, è la semplicità.
SMS è [1]:
ξ semplice da trovare: ogni servizio SMS è legato al contesto, ovvero
per l’utente non è necessario cercare il sevizio che si desidera ma ha
già disponibili un insieme di opzioni che lo interessano secondo il
suo attuale contesto e profilo utente. Invece di effettuare una ricerca
su tutta la rete, come avviene nel classico approccio sul web con il
PC, in SMS è disponibile un insieme ristretto ed aggiornato in tempo
reale di servizi, selezionati in base al contesto, cioè dove si trova
l’utente sia in termini di localizzazione fisica e sia in termini di
attività in corso, ed anche in base alle sue preferenze specificate nel
profilo dell’utente stesso.
La contestualizzazione legata alla locazione è un punto focale
poiché, la richiesta di servizi in mobilità in una vasta serie di
situazioni e luoghi, è strettamente legata all’ambiente circostante e
all’attività in corso.
Il progetto Simple Mobile Services
11
ξ semplice da usare: autenticazione e configurazione dei terminali
sono automatiche; una volta in esecuzione, SMS si configura e
fornisce una interfaccia utente pensata per dispositivi mobili.
I servizi SMS sono completamente indipendenti dai terminali e dalla
rete sottostante, proprio per garantire l’automatica configurazione,
autenticazione e personalizzazione dell’applicazione.
ξ sicuro: fornisce affidabili standard end-to-end per identificazione,
autenticazione e crittografia dei dati sia su terminale che durante la
trasmissione
ξ semplice da gestire: gestione e pubblicazione dei servizi in SMS è
alla portata di tutti. SMS fonda le sue basi su tools di sviluppo e
pubblicazione per servizi mobili sviluppati su standard aperti, in
modo tale che l’utente senza approfondite conoscenze tecniche può
realizzare con semplicità dei servizi. Per gli sviluppatori esperti
invece sono disponibili una serie di strumenti avanzati ed un insieme
di librerie ed API
3
per interfacciarsi con la piattaforma SMS.
3
API: Apllication Programming Interface insieme di procedure disponibili al programmatore
Il progetto Simple Mobile Services
12
1.3 IL CLIENT MOBILE
La piattaforma di esecuzione SMS ha un “client-side” potenzialmente
costituito da tutti i terminali mobili che supportano la tecnologia Java 2
Micro Edition(J2ME), la versione per dispositivi mobile ed embedded di
Java 2 Standard Edition(J2SE
4
).
L’utilizzo di Java porta vantaggi in termini di portabilità del codice,
utilizzo di un unico linguaggio per la programmazione di applicazioni,
flessibilità nell’uso dei servizi mobili, possibilità di sfruttare il processore
del dispositivo mobile per l’esecuzione di applicazioni scaricabili dalla rete
e capacità di sfruttare le caratteristiche addizionali del dispositivo (WiFi,
Bluethoot, fotocamera, GPS…) . Con J2ME è possibile creare delle
MIDlet, ossia applicazioni di ridotte dimensioni che seguono la filosofia
“compila una volta esegui ovunque”, tipica del linguaggio Java; queste
applicazioni sfruttano un runtime ottimizzato per terminali mobili e
vengono eseguite da da una KVM (Kernel Virtual Machine), ovvero il
motore software che esegue le applicazioni equivalente alla JVM
5
di J2SE.
4
J2SE: Java2 Platform, Standard Edition versione della Virtual Machine del linguaggio di programmazione Java;
contiene le parti basilari della piattaforma Java
5
JVM: Java Virtual Machine macchina virtuale che esegue i programmi compilati da un sorgente Java
Il progetto Simple Mobile Services
13
J2ME può essere utilizzato per sviluppare applicazioni per una ampia
gamma di apparati identificati da diversi profili, a loro volta riferiti a
diverse configurazioni. Ci sono due configurazioni principali:
• CDC (Connected Device Configuration) per dispositivi con buona
potenza di calcolo, come i PDA
6
.
• CLDC (Connected Limited Device Configuration) per dispositivi
meno potenti, come i telefoni cellulari.
6
PDA (Personal Digital Assistant): computer di ridotte dimensioni con schermo sensibile al tocco capaci di
sicronizzarsi e scambiare dati con i personal computer tramite collegamento a infrarossi e Bluetooth.
Il progetto Simple Mobile Services
14
1.4 MOVE: IL CLIENT MOBILE OPEN & VERY EASY
L’architettura di SMS si basa su applicazioni che funzionano su dispositivi
mobili, i quali uniscono le componenti software locali e remote.
Il J2ME MIDP 2.0/CLDC 1.1[2] è stato scelto come la piattaforma di
sviluppo del client SMS su dispositivo mobile; come detto in precedenza,
questa scelta fornisce una piattaforma trasparente e disponibile per una
grande varietà di dispositivi, sia basati su Symbian
7
che Windows Mobile
8
.
Il client J2ME è denominato MOVE (Mobile Open & Very Easy),
rappresenta la principale applicazione SMS in esecuzione su dispositivi
mobili.
Il MOVE può essere definito come browser di servizio che permette agli
utenti di trovare ed accedere a servizi mobili; esso è visto come un set di
“pagine”, che possono essere:
• Embedded nel codice sorgente del client MOVE
• Generate dinamicamente dal client MOVE
• Richiamate da un repository locale
• Richiamate dinamicamente su un server
7
Symbian: sistema operativo per dispositivi mobili(Smartphone) prodotto da Symbian Ltd; appartiene a Nokia,
Ericsson, Panasonic, Siemens AG, Samsung e Sony Ericsson
8
Windows Mobile: sistema operativo compatto della Microsoft
Il progetto Simple Mobile Services
15
Il MOVE offre una interfaccia utente grafica che permette l’interazione
dell’utente stesso con i servizi offerti da SMS; a tale scopo è utilizzato un
motore di renderizzazione basato su Thinlet, una tecnologia per la
visualizzazione di interfacce utente descritte in pagine realizzate con una
semplice sintassi descrittiva analoga a XUL
9
.
La pagina principale del MOVE può essere facilmente personalizzabile
dall’ utente mostrando i suoi servizi preferiti, che possono cambiare
dinamicamente secondo le informazioni di contesto dell’utente ( per
esempio posizione attuale dell’utente o operazione in corso dell’utente).
Ad oggi i servizi resi disponibili dal client MOVE sono:
• Interazione con l’utente: come detto in precedenza, basata su
tecnologia Thinlet
• Indoor navigator: permette all’utente di ottenere direzioni ed
informazioni negli ambienti interni quali aeroporti, centri
commerciali, ospedali, città universitarie, ecc..; può informare e
guidare gli utenti verso i punti di interesse, che sono organizzati
come MEMs.
• Outdoor navigator: è destinato ad essere simile ai sistemi di
navigazione GPS nelle automobili; può mostrare i programmi di
9
XUL: Xml User Interface Language linguaggio per definire interfacce grafiche
Il progetto Simple Mobile Services
16
via, trovare gli indirizzi ed i commerci mostrando l’itinerario
verso le destinazioni. La posizione dell’utente può essere ottenuta
collegandosi ad un ricevitore GPS ( anche esterno via Bluetooth).
I dati utilizzati da questo componente sono forniti da un proxy
10
,
che fornisce uno strato di astrazione per servizi generici di
mappa/navigazione e permette di utilizzare fornitori di servizio
differenti quali Google Maps, Yahoo Maps o MSN Live Local
• Trovare amici: questa componente permette di conoscere la
posizione dei propri amici ed è completamente integrata con
Indoor e Outdoor navigator, in modo tale da essere in grado di
poterli raggiungere.
• Gestione dei MEMs: è possibile visualizzare il contenuto dei
MEMs in una modalità comprensibile e significativa per l’utente(
che consente di riconoscere immediatamente le informazioni
necessaie), catalogare i MEMs e crearne di nuovi.
Una descrizione più ampia dei MEMs è rimandata al capitolo
successivo
10
Proxy: programma che si interpone nella comunicazione tra client e server