“Analisi e sviluppo di una applicazione su Pocket Pc per la

Facoltà di Ingegneria
CdL Ingegneria informatica e dell’automazione
“Analisi e sviluppo di una
applicazione su Pocket Pc per la
sincronizzazione dati con un server
aziendale”
Relatore:
Prof. Sauro Longhi
Tesi di:
Roberto Borsini
Correlatore:
Dott. Alessandro Olivi
Anno Accademico: 2004/05
INDICE
1. Introduzione ......................................................................................................... 3
2. Mobile – Pocket Pc................................................................................................ 5
2.1.
Palmari: cosa sono e a che cosa servono .................................................................. 5
2.2. Storia dei sistemi Windows Mobile .............................................................................. 7
2.3. I dispositivi Windows Mobile ....................................................................................... 9
2.4. Caratteristiche dei sistemi Windows Mobile............................................................... 11
3. Ambiente di sviluppo ........................................................................................... 12
3.1. Visual Studio .NET ..................................................................................................... 12
3.2. .NET Compact Framework.......................................................................................... 13
3.3. Linguaggio C# ............................................................................................................. 14
3.4. Microsoft SQL Server 2000 ........................................................................................ 14
3.5. SQL Server CE ............................................................................................................ 15
3.6. Dataport Wizard .......................................................................................................... 16
3.7. Web Service (SOAP)................................................................................................... 16
12. Possibili Migliorie............................................................................................... 19
Conclusioni.............................................................................................................. 20
Riferimenti ............................................................................................................... 21
Ringraziamenti ................................................. Errore. Il segnalibro non è definito.
2
1. Introduzione
Lo scopo di questa tesi è illustrare il mondo mobile, le motivazioni che ne
stanno decretando lo sviluppo e più in dettaglio le problematiche della
sincronizzazione dati tra i dispositivi mobili e le altre unità fisse. Il lavoro di ricerca
e sviluppo è stato effettuato presso l’azienda General Impianti del gruppo Loccioni
in occasione del tirocinio di fine corso di laurea.
La General Impianti nasce nel 1971 operando nel campo dell'impiantistica
elettrica e matura la sua esperienza presso grandi gruppi industriali grazie ai quali
si evolve tecnologicamente verso settori di attività ad alto valore aggiunto. Oggi le
aree
di
business
di
GENERAL
IMPIANTI
sono
l'automazione,
le
telecomunicazioni, il monitoraggio ambientale, l'impiantistica, cui si aggiungono
l’area componenti integrati e l’area Service. Il vero cuore della GENERAL
IMPIANTI e fattore differenziante è formato dai giovani tecnici (laureati e diplomati)
che operano in team nella progettazione dei sistemi integrando competenze
multidisciplinari, prodotti e tecnologie innovative per realizzare progetti efficaci e
su misura del cliente. Nei settori di interesse dell’azienda è di vitale importanza
essere al passo con le nuove tecnologie: per essere sempre competitivi, per
risparmiare tempo e per essere in grado di soddisfare le richieste della clientela.
Questo implica l’impiego di risorse nella fase di ricerca e integrazione con il mondo
universitario, come nel caso del sottoscritto.
Nel progetto in questione l’attenzione è stata rivolta verso il mondo mobile,
settore ancora giovane, ma in fase di grande sviluppo. Con questo tirocinio
l’azienda si è prefissa lo scopo di creare un background di conoscenze e
competenze nella realizzazione di progetti per dispositivi mobili. Questo aspetto ha
influenzato notevolmente tutto il lavoro svolto perché non avendo una commessa
reale con delle specifiche dettagliate c’è stato il bisogno di inventarne una fittizia
3
che comprendesse le tipiche problematiche di un sistema distribuito con dispositivi
mobili. Essendo un progetto di ricerca durante quasi tutto lo sviluppo
dell’applicazione si è cercato di fare scelte generali e non dipendenti dalla
problematica in esame a discapito dell’ottimizzazione, ma a vantaggio della
riusabilità del codice in altri progetti.
Il primo possibile impiego dei dispositivi mobili che ci è venuto in mente è
quello del commesso viaggiatore. Abbiamo immaginato di dover creare un sistema
distribuito per un’azienda di commercio basata su dei punti di vendita fissi (negozi)
e su dei punti di vendita mobili (agenti di commercio). Si è supposto che tale
azienda abbia un database centrale contenente informazioni sugli agenti, sui
clienti, sui prodotti e sulle vendite effettuate da ogni agente. L’obiettivo principale è
condividere le informazioni tra tutti gli utenti, anche se non connessi fisicamente al
database centrale, mantenendo il grado di consistenza dei dati il più alto possibile.
I dispositivi mobili presi in considerazione sono i palmari date le loro proprietà
fisiche (dimensione e peso). Il progetto è stato sviluppato con tecnologie Microsoft
utilizzando palmari di tipo Pocket Pc. Per quanto riguarda i database è stato
utilizzato SQL Server per il server e SQL CE 2.0 per i client. Tutto il codice è stato
scritto in C# sotto la piattaforma .NET framework e .NET Compact framework per i
palmari.
4
2. Mobile – Pocket Pc
2.1. Palmari: cosa sono e a che cosa servono
Grazie al continuo miglioramento dell’elettronica nelle prestazioni e la
miniaturizzazione degli elementi è ormai possibile racchiude grandi potenzialità di
calcolo e memorizzazione dati in apparecchi portatili di piccole dimensioni a prezzi
ragionevoli. Questa evoluzione rappresenta una straordinaria opportunità per
quanti trascorrono parte della loro vita o del loro lavoro in movimento. Consente di
avere sempre in tasca le proprie informazioni insieme a un potente strumento
informatico che può svolgere una quantità incredibile di funzioni.
I palmari sono nati con la funzionalità di agenda elettronica, ma poi si sono
evoluti e sono state inserite al loro interno altre funzionalità come editor di testo e
fogli elettronici avvicinandoli sempre più hai normali computer. Di fianco a questo
tipo di applicativi, le case costruttrici corredano i loro apparecchi anche di
particolari software per il trasferimento di file, tramite filo, dal dispositivo mobile a
quello fisso e viceversa. Questo tipo di connettività è essenziale, ma talvolta non è
sufficiente allora sono stati integrati nei palmari anche altri protocolli di
comunicazione (wifi – bluetooth – GPRS - GSM) che sfruttano mezzi trasmessivi
wireless. Di pari passo, i telefoni cellulari, concepiti all’inizio solo come strumenti di
comunicazione, si sono evoluti e migliorato i propri sistemi operativi inserendo
nuove funzionalità avvicinandosi sempre di più ai palmari stessi. Oramai la linea
che divide i palmari dai cellulari si è assottigliata, addirittura nei dispositivi come
smartphone o pocket Pc phone si può dire che non esiste più.
Il mondo dei palmari è suddiviso tra diversi concorrenti ed ognuno propone la
propria soluzione per venire incontro alle esigenze dei clienti. Il mercato ad oggi, è
suddiviso tra due grandi sistemi: Palm, che distribuisce palmari con il proprio
marchio e Pocket Pc realizzati da Casio, Compaq, Qtek, I-Mate ed altri grandi
produttori mondiali. Ognuno dei due sposa una diversa teoria: Palm lavora e
concentra le forze sulle dimensioni del terminale, l'economicità della batteria e
quindi la portabilità dell'oggetto; Pocket Pc invece, sulla potenza di calcolo e quindi
del software disponibile. Il primo, in genere più economico, sfrutta un sistema
5
operativo proprietario: Palm Os, mentre il secondo utilizza Microsoft Windows
(nella versione appunto per Pocket Pc).
Palm Tungsten T5
(Palm OS)
Pocket Loox 720
(Pocket Pc)
All’inizio la Palm era in leggero vantaggio sulla Microsoft per quote di mercato;
ma attualmente, come si può vedere facilmente anche dalle vetrine dei negozi
informatici, i Pocket Pc sono i più venduti e usati. Questa espansione nel mercato
e la rapidità di sviluppo consentita da Visual Studio hanno condizionato la scelta
dell’utilizzo dei Pocket Pc per questo progetto. Come già detto i palmari di oggi
hanno prestazioni di poco inferiori a quelle di un computer, con il vantaggio delle
dimensioni e dell’accessibilità ai propri dati in qualsiasi momento e ovunque, ma
hanno lo svantaggio dell’input e output di questi. Infatti, se un palmare risulta
particolarmente utile per consultare un catalogo o la posta elettronica, allo stesso
modo risulta ostico scrivere e-mail o visualizzare immagini a causa delle ridotte
dimensioni dello schermo. Per migliorare l’inserimento del testo sono disponibili
diverse soluzioni (tastiera hardware a scorrimento, tastiera visualizzata sullo
schermo, software di riconoscimento della calligrafia, tastiera laser virtuale), ma
risulta comunque scomodo scrivere con un palmare. Anche lo schermo
rappresenta un limite a causa delle sue dimensioni e della sua delicatezza; un uso
non
corretto
del
dispositivo
o
urti
accidentali
possono
danneggiare
irrimediabilmente lo schermo e di conseguenza il palmare. In fase di progettazione
di un sistema distribuito, considerazioni sul tipo di input e output, sull’ambiente
lavorativo e sul target degli utenti sono fondamentali per la scelta del dispositivo
più idoneo.
6
2.2. Storia dei sistemi Windows Mobile
La prima versione di Windows per i dispositivi palmari è apparsa nel 1996 con
il nome Windows CE ed equipaggiava delle agende elettroniche evolute
(organizer), che possedevano schermi con risoluzione di 480 o 640 pixel per 240
ed una piccola tastiera. A fine 1998 furono presentati i primi modelli di una nuova
classe di sistemi Windows CE con dimensioni e caratteristiche simili a quelli di un
mini laptop, dotati di schermi VGA o super VGA e tastiere con meccaniche
tradizionali. Questi dispositivi, denominati Handheld Pc, fornivano circa 8-10 ore di
autonomia ed erano dotati di una versione migliorata della suite Microsoft Pocket
Office.
HP 300 LX
(Handheld PC – WinCE 1.0)
Nell’aprile del 2000 Microsoft introdusse il primo Pocket Pc, questa piattaforma
si basava su Windows CE 3.0 che, rispetto alla versione precedente, offriva una
nuova interfaccia utente ad una nuova home page (schermata Today), nonché il
supporto di nuovi processori molto più potenti. Un anno dopo il Pocket Pc è stato
aggiornato e ribattezzato Pocket Pc 2002. In aggiunta alla versione base è stata
inoltre rilasciata la Pocket Pc Phone Edition per dispositivi che integrano un
telefono cellulare, consentendo così una connettività GSM e GPRS.
7
DELL Axim X5
(Microsoft Pocket PC 2002)
Casio E-200I
(Microsoft Pocket PC 2002)
Nel 2002 è apparso il primo dispositivo equipaggiato con Microsoft
Smartphone 2002, una versione di Windows CE 3.0 appositamente progettata per
i telefoni cellulari.
Qtek 7070 (Canary)
(SmartPhone 2002)
Nella primavera del 2003 è stata la volta di Pocket Pc 2003 basata su
Windows CE 4.2, marchio successivamente abbandonato a favore di Windows
Mobile 2003. Per fine 2005 è infine attesa la versione 5.0 di Windows CE che sarà
in grado di gestire meglio i contenuti multimediali e la grafica 3D.
8
2.3. I dispositivi Windows Mobile
Esistono oggi sei categorie di dispositivi Windows Mobile:
•
Pocket Pc
anche chiamati Personal Digital Assistano
(PDA), apparecchi che stanno nel palmo di
una mano alimentati da una batteria
ricaricabile. Sono dotati di schermi sensibili
al tatto (touch screen) e dispongono di uno
stilo per interagire con il video.
•
Acer N50
(Pocket Pc 2003 SE)
Pocket Pc Phone
un Pocket Pc con un telefono cellulare
integrato
che
consente
di
effettuare
chiamate (GSM) e di connettersi a servizi
wireless (GPRS). In aggiunta ai programmi
compresi con Windows Mobile questi
apparecchi possiedono un’applicazione per
Asus P505
(Pocket Pc Phone)
comporre i numeri telefonici.
•
Smartphone
un telefono cellulare con funzionalità di
Personal
Digital
Assistano
(PDA).
A
differenza dei Pocket Pc Phone, gli
Smartphone
hanno
l’aspetto
e
le
funzionalità di un cellulare ed i programmi
di un Pocket Pc, anche se ottimizzati per
Sagem myS-7
(SmartPhone)
questo formato.
9
•
Handheld
un mini notebook con apertura a cerniera
ed una tastiera. Questi dispositivi sono
corredati
dalle
stesse
applicazioni
Microsoft che si trovano nei Pocket Pc, ma
sono ottimizzati per sfruttare la maggiore
Acer Travel Mate C200
(Handheld PC)
dimensione dello schermo e la presenza
della tastiera.
•
Sistemi per uso industriale
dei Pocket Pc progettati per questi scopi;
possiedono
tastiere
numeriche
o
alfanumeriche, lettori di codici a barre,
connettività di rete o telefonica. Alcuni
modelli sono inoltre dotati di involucri
particolarmente robusti e a tenuta d’acqua
per poter essere utilizzati in ambienti
polverosi,
umidi
e
con
Computer Palmare CF-P1
(Palmare industriale)
temperature
estreme, nonché per assorbire urti e
cadute accidentali.
•
Portable Media Center
un dispositivo un po’ più largo di un Pocket
Pc
progettato
riprodurre
audio
per
e
memorizzare
video.
e
Questi
apparecchi, di recente introduzione sul
mercato, possiedono un display a colori
più ampio di quelli dei Pocket Pc e un hard
disk da 20, 40 o 60 Gb per memorizzare
file multimediali.
Creative Zen Vision
(Portable Media Center)
9
La scelta del dispositivo più idoneo è di vitale importanza per il successo del
progetto perché può far risparmiare tempo e denaro o viceversa decretarne
l’insuccesso anche a fronte di un ottimo software. Innanzi tutto bisogna individuare
il target di utenza dell’applicativo: chi e in quanti lo utilizzeranno, come sono
dislocati gli utenti nel territorio, come lavoravano prima del mobile e sapere se già
possiedono un altro dispositivo portatile. L’ambiente lavorativo invece influisce
nella scelta dell’involucro di protezione e del tipo di connettività. Anche il tipo di
dati trattati è determinante per quanto riguarda la connettività e la sicurezza di
essi.
10
2.4. Caratteristiche dei sistemi Windows Mobile
I sistemi Windows Mobile non sono soltanto più piccoli e leggeri di qualsiasi
altro apparecchio con sistema operativo Windows, primi tra tutti i computer
portatili, ma possiedono anche alcune caratteristiche hardware originali che li
differenziano in modo significativo.
La prima importante diversità è il tempo di accensione. Grazie al fatto che il
sistema operativo e le applicazioni fornite con questi dispositivi risiedono in una
memoria ROM, il tempo che intercorre tra la pressione del pulsante di avvio e la
disponibilità del sistema è quasi istantaneo. E’ leggermente più lungo nei Pocket
Pc Phone e negli Smartphone, in cui la SIM del telefono integrato deve, in modo
del tutto simile a quanto avviene con i cellulari, connettersi con la rete telefonica
ed essere autenticata. Tale caratteristica rende questi dispositivi idonei ad un uso
occasionale, ad esempio se è necessario accedere istantaneamente ai dati di
un’applicazione o eseguire velocemente un calcolo. A differenza di un computer
portatile o da tavolo in cui il caricamento del sistema operativo richiede diversi
minuti, i sistemi Windows Mobile sono sempre pronti all’uso.
Una caratteristica meno nota di questi dispositivi è la volatilità della memoria
principale (RAM). A differenza dei computer tradizionali la memoria RAM serve,
per archiviare programmi e dati, esclusi quelli forniti con Windows Mobile che sono
preinstallati nella ROM. Nell’eventualità in cui le batterie si scarichino del tutto si
ha la cancellazione totale del suo contenuto, inclusi file e database.
L’assenza di una tastiera tradizionale, sostituita nella maggior parte dei Pocket
Pc dallo schermo touch screen e dalla stilo per interagire con esso, rende questi
dispositivi poco adatti per inserire grandi quantità di testo. Le modalità di scrittura
disponibili sono infatti costituite da una tastiera virtuale visualizzata sullo schermo
(con tasti molto piccoli) e da tre differenti sistemi per il riconoscimento della
calligrafia. Esistono alcuni modelli di Pocket Pc dotati di una piccola tastiera
integrata che agevola questo compito ma le ridotte dimensioni di questa non
consente comunque una comoda e veloce digitazione.
11
3. Ambiente di sviluppo
3.1. Visual Studio .NET
Visual Studio.NET è un ambiente di sviluppo integrato (Integrated development
environment) realizzato da Microsoft. Nelle sue ultime versioni, da quando è nata
la piattaforma .NET, supporta diversi linguaggi di programmazione tra cui C#,
Visual Basic.Net e C++. A differenza dei compilatori classici, quello disponibile col
.NET Framework converte il codice sorgente (Visual Basic .NET, C#, ecc.) in
codice IL (Intermediate Language). IL è un nuovo linguaggio progettato per essere
convertito in modo efficiente in codice macchina nativo su differenti tipi di
dispositivi. Intermediate Language è un linguaggio di livello più basso rispetto a
Visual Basic o C#, ma è a un livello di astrazione più alto rispetto ai linguaggi
assembly di macchina.
La versione da noi utilizzata è Visual Studio .NET 2003, chiamata anche
Visual Studio 7.1, basata su .NET Framework 1.1 e incorpora anche il .NET
Compact Framework (per dispositivi portatili). .NET Framework è l'ambiente per la
creazione, la distribuzione e l'esecuzione di tutti gli applicativi che supportano .Net
siano essi Servizi Web o altre applicazioni. Esso è composto da compilatori per i
principali linguaggi supportati da Microsoft, un ambiente di esecuzione Common
Language Runtime o CLR e da una libreria di classi. Il Common Language
Runtime è il motore d'esecuzione della piattaforma .Net esegue cioè codice IL
(Intermediate Language) compilato con compilatori che possono avere come
target il CLR.
12
3.2. .NET Compact Framework
.NET Compact Framework costituisce un ambiente indipendente dall'hardware
per l'esecuzione di programmi su dispositivi di elaborazione con risorse limitate
che comprendono PDA (Personal Data Assistant) quali i Pocket PC, telefoni
cellulari, set-top box, dispositivi di elaborazione del settore automobilistico e
dispositivi incorporati a progettazione personalizzata, creati con il sistema
operativo Windows CE .NET.
.NET Compact Framework, che rappresenta un sottoinsieme della libreria di classi
.NET Framework, contiene anche classi appositamente progettate per il mobile.
Eredita interamente l'architettura .NET Framework per Common Language
Runtime e l'esecuzione di codice gestito. In .NET Compact Framework vengono
fornite le seguenti funzionalità principali:
•
Esecuzione di programmi indipendenti dall'hardware e dai sistemi operativi.
•
Supporto di protocolli di rete comuni e di facile connessione con servizi
Web XML.
•
Disponibilità per gli sviluppatori di un modello che consente di progettare
applicazioni e componenti per una vasta gamma di dispositivi oppure per
una categoria specifica.
•
Vantaggi a livello di progettazione e ottimizzazione delle limitate risorse di
sistema.
•
Prestazioni ottimali nella generazione di codice nativo mediante la
compilazione JIT (Just-In-Time).
13
3.3. Linguaggio C#
C# è un nuovo linguaggio di programmazione ideato per realizzare un'ampia
gamma di applicazioni aziendali che vengono eseguite su .NET Framework. C#, è
un linguaggio semplice, moderno, type-safe e orientato a oggetti. Il codice scritto
con C# viene compilato come codice gestito e si avvale dei vantaggi dei servizi di
Common Language Runtime. Tali servizi comprendono intercambiabilità del
linguaggio, procedure di Garbage Collection, protezione avanzata e supporto
migliorato per la gestione delle versioni.
Il linguaggio C# è presente nella suite Visual Studio .NET con il nome Visual C#. Il
supporto per C# include modelli di progetto, finestre di progettazione, pagine delle
proprietà, creazioni guidate di codice, un modello a oggetti e altre funzionalità
dell'ambiente di sviluppo.
3.4. Microsoft SQL Server 2000
Microsoft Sql Server 2000 è un relational database management system
(RDBMS) ad alte prestazioni progettato per gestire altissimi volumi di operazioni
transazionali
in
ambienti
multiutente.
Un
relational
database
(database
relazionale) è un insieme di dati organizzati in tabelle a due dimensioni costitute
da righe e colonne; la gestione dei dati avviene attraverso un linguaggio standard
(Sql) che permette la relazione tra le tabelle raggruppate all’interno del database,
al fine di creare procedure dette query o viste
Microsoft SQL Server 2000 permette di avere prestazioni, scalabilità e affidabilità
richieste dagli ambienti web e line-of-business più esigenti a livello enterprise. La
versione da noi utilizzata è l’Enterprise Edition, la versione completa di Sql Server.
Offre caratteristiche di scalabilità ed affidabilità oltre alle funzionalità di analisi
avanzate (OLAP).
14
3.5. SQL Server CE
Microsoft SQL Server CE Edition (SQL Server CE) versione 2.0 è il sistema
compatto di gestione di database, che consente di sviluppare rapidamente
applicazioni capaci di estendere ai dispositivi mobili le funzionalità di gestione dei
dati aziendali. Si tratta di un potente strumento che semplifica lo sviluppo di
applicazioni mobili grazie al supporto della sintassi SQL (Structured Query
Language) e di un modello di sviluppo e API coerenti con SQL Server. SQL Server
CE rende disponibile un insieme essenziale di funzionalità di database relazionale,
tra cui un ottimizzatore per le query (Query Optimizer) e il supporto per transazioni
e tipi di dati diversi, pur mantenendo doti di eccezionale compattezza che
consentono di preservare preziose risorse di sistema. SQL Server CE è la
soluzione ideale per ambienti mobili e wireless.
SQL Server CE 2.0 è progettato per integrarsi con Microsoft .NET Compact
Framework tramite Microsoft Visual Studio® .NET, semplificando in tal modo lo
sviluppo di applicazioni di database per dispositivi intelligenti. Utilizzando il nuovo
provider di dati di SQL Server CE per gestire il codice tramite Common Language
Runtime, gli sviluppatori di applicazioni mobili possono infatti realizzare
applicazioni altamente estensibili dotate di funzionalità di gestione dati off-line.
Anche quando il dispositivo è fuori dalla portata di ricezione di una rete wireless o
non sono disponibili connessioni di rete via cavo, sarà comunque possibile
continuare a utilizzare l'applicazione basata su SQL Server CE per archiviare e
gestire i dati presenti nel database locale del dispositivo. Questi dati potranno
essere sincronizzati in un secondo tempo, quando sarà possibile ristabilire la
connessione con il sistema centrale. Nonostante i rapidi progressi compiuti dalla
tecnologia dei dispositivi, le risorse di sistema (ad esempio la memoria disponibile)
sono spesso carenti, pertanto è fondamentale che un database relazionale sia il
più compatto possibile, pur disponendo di tutte le funzionalità essenziali. SQL
Server CE soddisfa pienamente questi requisiti, rendendo disponibili preziose
funzionalità in appena 1 megabyte (MB) di memoria. Ottimizzato anche nelle
prestazioni grazie al Query Processor, supporta un'ampia gamma di tipi di dati che
assicurano la massima flessibilità. La crittografia a 128 bit fornita sul dispositivo
garantisce infine la protezione dei file di database.
15
3.6. Dataport Wizard
Nonostante Sql Server CE abbia notevoli potenzialità, nella versione 2.0
presenta il limite di non supportare la conversione di database dal formato SQL
Server 2000 a .sdf, cioè il formato del database Sql Server CE. La creazione di
database può avvenire soltanto in due modi: il primo tramite stesura di codice SQL
e il secondo tramite Query Analyzer. La prima soluzione può essere adottata nel
caso di database poco articolati contenenti poche tabelle, ma poi eventuali
modifiche successive risulterebbero scomode. La seconda soluzione consiste in
un tool (Query Analyzer) che viene installato da SQL Server CE nel palmare, il
quale consente di creare tabelle a design e di testare query. In questo modo la
creazione del database è leggermente velocizzata, ma poi non è più possibile
apportare modifiche alle tabelle a meno di eliminarle per crearle di nuovo. E’
evidente che per la progettazione di database di medio-grandi dimensioni le
soluzioni sopraccitate non sono percorribili, per questo motivo abbiamo utilizzato il
software di conversione “DataPort Wizard” realizzato dalla Primeworks. DataPort
Wizard permette di convertire un database progettato in SQL Server 2000 o
Microsoft Access nel formato sdf per SQL Server CE e viceversa. Durante la
conversione l’intero database viene copiato mantenendo i vincoli di integrità
referenziale, le Primari Key e gli indici. Con la nuova versione di Visual Studio
.NET 2005 e SQL 2005 la funzione di conversione è integrata e quindi non sarà
più necessario utilizzare tool di terze parti.
3.7. Web Service (SOAP)
Un Web Service (servizio web) è un sistema software progettato per
supportare l'interoperabilità tra diversi elaboratori su di una medesima rete.
Caratteristica fondamentale di un Web Service è quella di offrire un'interfaccia
software, attraverso la quale altri sistemi possono interagire con il Web Service
stesso. Le operazioni descritte nell'interfaccia sono attivabili tramite appositi
"messaggi" inclusi in una "busta" SOAP: tali messaggi sono, solitamente,
trasportati tramite il protocollo HTTP e formattati secondo lo standard XML.
16
Tramite un'architettura basata sui Web Service, applicazioni software scritte
in diversi linguaggi di programmazione e implementate su diverse piattaforme
hardware possono tranquillamente dialogare grazie alle interfacce che queste
"espongono" pubblicamente e mediante l'utilizzo delle funzioni che sono in grado
di effettuare (i "servizi" che mettono a disposizione) per lo scambio di informazioni.
La ragione principale per la creazione e l'utilizzo di Web Service è il
"disaccoppiamento" tra il sistema utente ed il Web Service stesso: le modifiche
sono “trasparenti” all’interfaccia dei due sistemi. Tale flessibilità consente la
creazione di software complessi costituiti da componenti svincolati l'uno dall'altro e
consente una forte riusabilità di codice ed applicazioni già sviluppate.
Il crescente successo dei Web Service è dovuto anche al protocollo di
trasporto utilizzato: HTTP "over" TCP sulla porta 80. Tale porta è, normalmente,
una delle poche (se non l'unica) lasciata "aperta" dai sistemi firewall al traffico di
entrata ed uscita dall'esterno verso i sistemi aziendali e ciò in quanto su tale porta
transita il traffico HTTP dei web browser. Ciò consente l'utilizzo dei Web Service
senza modifiche sulle configurazioni di sicurezza dell'azienda (un aspetto che se
da un lato è positivo solleva preoccupazioni concernenti la sicurezza).
Come già detto, i Web Service si appoggiano al protocollo SOAP (acronimo
di Simple Object Access Protocol). La parola object manifesta che l'uso del
protocollo si effettua secondo il paradigma della programmazione orientata agli
oggetti. SOAP si basa sul metalinguaggio XML e la sua struttura segue la
configurazione Head-Body, analogamente ad HTML. Il segmento opzionale
Header contiene meta-informazioni come quelle che riguardano il routing, la
sicurezza e le transazioni. Il segmento Body trasporta il contenuto informativo e
talora viene detto payload. Questo deve seguire uno schema definito dal
linguaggio XML Schema.
17
11. Diagramma UML del programma
18
12. Possibili Migliorie
Durante la fase di test dell’applicativo sono stati riscontrati problemi di lentezza
dovuti alle prestazioni dell’hardware del palmare e a quelle del software.
L’applicativo di sincronizzazione proposto in questa tesi è stato implementato
seguendo passo per passo le logiche di sincronizzazione individuate in fase di
progettazione senza fare particolare attenzione alle sue prestazioni. La fase
successiva di ottimizzazione del software è stata saltata per ovvi motivi di durata
del tirocinio. Nel caso specifico è possibile riadattare il codice raggruppando
scorrimenti di tabelle e righe nell’intento di velocizzare la sincronizzazione.
Ulteriori miglioramenti delle prestazioni si possono ricavare mappando il livello
di accesso ai dati specificatamente al database in uso, scrivendo le query di
inserimento e update a mano, anziché crearle automaticamente con il
commandBuilder().
Problemi di lentezza si sono verificati anche durante visualizzazioni di form
senza ulteriori carichi di lavoro sui dati per la CPU, per accelerare il caricamento
degli oggetti grafici bisogna andare a modificare il codice autogenerato dal Visual
Studio. Quando si aggiunge da design un oggetto grafico alla form, il framework
produce automaticamente codice di questo tipo
cioè aggiunge alla form l’oggetto btnSinc. Sostituendolo con il seguente
cioè assegnando la form al parametro Parent del bottone, si ottengono tempi di
visualizzazione più brevi a scapito della perdita del supporto di design fornito da
Visual Studio durante lo sviluppo dell’applicativo.
Con l’avvento di Visual Studio 2005 e del sistema operativo Windows Mobile
5.0 verranno introdotte nuove funzionalità al framework per l’accesso ai dati e di
visualizzazione grafica che renderanno i programmi di questo genere più veloci e
più facili da usare per l’utente. Inoltre ci sarà anche la possibilità di catturare e
gestire un numero maggiore di eventi.
19
Conclusioni
Il progetto illustrato in questa tesi è stato interamente realizzato durante lo
svolgimento del tirocinio in azienda. Dai test effettuati con il software completo,
abbiamo accertato che l’applicativo risponde correttamente a tutti i casi
contemplati in fase di progettazione. Bisogna però dire che le simulazioni
effettuate in azienda comprendevano al massimo quattro client, quantità
sufficiente per trovare e testare la quasi totalità delle problematiche, ma
probabilmente con un numero più elevato di dispositvi si sarebbero potute stimare
in maniera accurata le performance a pieno carico. Il programma può essere
ampliato aggiungendo nuove utility per l’inserimento e visualizzazione dei dati.
Oltre che per la realizzazione dello specifico software, questo lavoro è stato
utile per creare un background di conoscenze nel mondo della programmazione
mobile. Sin dall’inizio si sono incontrate, affrontate e risolte problematiche
specifiche. La maggior parte di esse derivano dalla giovinezza di questa
tecnologia, ma attraverso assidue ricerche in rete sono state tutte superate.
Questo tirocinio mi ha dato l’opportunità di confrontarmi con l’ambiente
aziendale fatto di scadenze, lavoro di gruppo e spirito di iniziativa. Inoltre è stato
possibile approfondire e mettere in pratica concetti studiati soltanto in teoria
all’interno dell’Università come la programmazione ad oggetti e la progettazione di
database. Si è rilevato particolarmente interessante l’utilizzo di Visual Studio
insieme al .NET Framework, strumento per me nuovo, che mi ha permesso di
sviluppare tutto il codice velocemente e in maniera efficace.
In conclusione posso affermare che questo progetto è stato stimolante e
formativo permettendomi di acquisire competenze e conoscenze che mi hanno
fatto crescere dal punto di vista tecnico ed umano, sicuramente mi saranno utili in
futuro.
20
Riferimenti
[1] M. Mangia. “Windows Mobile : Guida Pratica” - Mondadori
Informatica
[2]
A. Silberschatz. “Sistemi Operativi” - Addison Wesley
[3]
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. “Basi di dati” - Mc
Graw Hill
[4]
S. Del Furia, P. Meozzi. “Programmare con il .NET Framework –
Volume 3” – Mondadori Informatica
[5]
Microsoft – http://www.microsoft.com
[6]
.net Compact Framework QuickStart Tutorial –
http://samples.gotdotnet.com
[7]
SQL Server CE – http://www.microsoft.com/sql/ce
[8]
The Code Project – http://www.codeproject.com
[9]
Think Mobile – http://www.thinkmobile.it
[10] Dot Net Hell – http://www.dotnethell.it
[11] User Group Italiano dot Net – http://www.ugidotnet.it
[12] DataPort Wizard – http://primeworks.pt
[13] Gruppo Loccioni – http://www.loccioni.com
21