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