Progetto e sviluppo di un tool di
sincronizzazione personalizzato tra
un server database e un palmare
Relatore
prof. Sonia Bergamaschi
Correlatore
Candidato
ing. Massimiliano Malaguti
Andrea Sita
Tesi realizzata presso:
Inquadramento del progetto
 Utilizzo dei palmari
come dispositivi di
scansione e
riconoscimento delle
parti
 Registrazione
dell’operazione svolta
dall’utente
 Sincronizzazione tra il
server e il palmare
Sincronizzazione
 Avviene ogni volta che l’operatore
inserisce il palmare nella sua base
 L’applicativo aggiorna il database
remoto
 Cancella e ricrea quello locale
 Popola il database locale leggendo
da quello remoto
Specifiche di progetto
 Riconoscimento di una parte tramite
lettura del codice a barre
 Aggiornamento dello stato di una parte
movimentata
 Interfaccia grafica essenziale e semplice
 Nessuna risoluzione di errori delegata
all’utente
 Aggiornamento il più immediato possibile
 Sincronizzazione in qualsiasi momento
Ambiente di sviluppo
 Il cliente è partner Microsoft
 Ambiente di sviluppo: Microsoft Visual
Studio .NET 2003
 Piattaforma: .NET Compact Framework
 Linguaggio: C#
 Accesso ai dati: - MS SQL Server 2000
- MS SQL Server CE
(sul palmare)
Interfaccia grafica
 Essenziale e chiara
 Controlli disattivati
 Sfondo rosso
durante la
sincronizzazione
 Sfondo giallo
quando è in attesa
 Tasto refresh per
forzare la
sincronizzazione
Transazione sql
Sincronizzazione tra palmare e server
Server
Palmare
Inizio Transazione SQL
Lettura dati
Aggiornamento DB
Commit
Aggiornamento
DB locale
Database remoto
Database locale
Trasferimento di XML
Sincronizzazione tra palmare e server
Palmare
Server
Scritturafile
fileXML
XML
Lettura
Aggiornamento
DB remoto
Aggiornamento
DB locale
Database remoto
Database locale
Sincronizzazione tra palmare e server
Analisi
dei tempi
totale sincronizzazione
XML
SQL
tempo guadagnato
(percentuale)
prima volta
05:13,0
02:41,0
48,56%
primo refresh
04:42,0
02:49,0
40,07%
secondo refresh
05:16,0
02:35,0
50,95%
terzo refresh
04:46,0
02:53,0
39,51%
quarto refresh
04:42,0
02:41,0
42,91%
Media
04:55,8
02:43,8
44,62%
Tempo totale
 Transazione
05:45,6
04:19,2
02:52,8
01:26,4
XML
SQL
00:00,0
SQL
XML
1
2
3
4
5
SQL più
veloce
 Più sicura
Gestione degli errori più comuni
 Errori generati dall’utente
-
-
errore durante l’aggiornamento
del DB remoto
→ Rollback
errore durante la lettura del DB
remoto
→ Form non abilitato
→ Richiesta sincronizzazione
Gestione degli errori più comuni
 Errori di sistema
-
-
errata lettura di setup.ini
errore durante l’apertura della
connessione
errore in lettura o scrittura del
DB remoto
errore di popolamento DB locale
mancato riconoscimento della
presenza di rete
Test dell’applicazione
 Problemi tecnici dovuti ai limiti della
piattaforma:
- connessione USB tra desktop e
palmare (utilizzata per
l’installazione dell’applicativo)
- chiusura dei thread
- metodo per la verifica della
connessione di rete (problema di
cache)
Test dell’applicazione presso il cliente
 Primo test
-
-
problemi nella connessione
utilizzando DHCP
modifiche all’interfaccia
grafica (sfondo del form rosso e
nuovo form per le informazioni)
introduzione dell’implementazione con XML
Test dell’applicazione presso il cliente
 Secondo test
-
-
ancora problemi nella
connessione utilizzando DHCP (il
palmare non comunica il suo
hostname al server)
→ problema non risolto: limite
del sistema operativo
colore di sfondo giallo ad ultimata
sincronizzazione
Conclusioni
Durante il periodo di stage svolto è stato
sviluppato un software di circa 2000 righe
che implementa il tool di sincronizzazione
Il tool realizzato permette di:
 Rendere più semplice ed efficiente il
lavoro dei magazzinieri
 Ridurre gli errori di spedizione più comuni
 Monitorare costantemente e in tempo
reale la posizione della merce
Grazie
dell’attenzione