all’autista dal camion , in modo da velocizzare tutta la procedura e liberare una persona,
riutilizzabile in altri contesti aziendali.
(fig. 1.1 OAMT - Rapporto di Viaggio)
Queste sono state le prime scintille che hanno acceso il desiderio di intraprendere questa
strada, ma da questo punto in poi sono iniziate ad arrivare altre idee implementative
direttamente dagli autotrasportatori. Questi ultimi hanno fatto notare che un aspetto
molto importante era la tracciabilità del mezzo, per poter vedere in tempo reale, dove si
trovavano i mezzi della propria flotta viaggiante, nonché uno storico dei viaggi effettuati
dagli automezzi per poterli riprendere ed eventualmente analizzare. Un altro aspetto utile
per un sistema di questo genere, è la possibilità di poter comunicare in modo efficiente e
tempestivo dalla sede al camion o viceversa qualsiasi tipo di messaggio, come ad
esempio una variazione del viaggio già pianificato. Le considerazioni che ho fino a qui
introdotto, sono state quelle che hanno portato alla realizzazione di questo progetto.
1.2 Ricerca sul Web
Prima comunque di realizzare un prodotto software che permetta di ottenere le
funzionalità sopra descritte, è stato necessario fare un’accurata ricerca per verificare che
non esistano in commercio prodotti che realizzino le funzioni pensate per questo
progetto. E’ stata fatta quindi una ricerca nel mondo di internet, per analizzare i vari
servizi esistenti proposti dalle software house. Sono state trovate molte soluzioni per la
localizzazione satellitare dei mezzi, ma ad una attenta analisi ci si è accorti che sono poco
efficienti e hanno costi di gestione piuttosto elevati. Un prodotto interessante è sembrato
quello proposto dalla KFT S.p.a. (Infoflotta) in collaborazione con Omnitel, il quale
consente di risolvere le problematiche relative alla localizzazione tramite un dispositivo
GPS e l’invio della posizione alla centralina tramite GSM, utilizzando messaggi SMS. Il
tutto è un sistema dedicato, nel quale sono presenti dispositivi elettronici creati
appositamente per i mezzi della flotta ed anche con la creazione di una centralina
aziendale; come si può ben immaginare i costi di una soluzione di questo genere, sono
molto elevati e l’accuratezza della posizione del mezzo va sicuramente a scapito delle
risorse economiche, in quanto ogni volta che vogliamo conoscere la posizione del nostro
veicolo, viene inviato un SMS da quest’ultimo alla centralina. Quello che ci proponiamo
noi invece è di realizzare un prodotto accessibile sia a livello di costo ed anche
soprattutto dal punto di vista dell’attrezzatura utilizzata, infatti per il nostro progetto
abbiamo deciso di utilizzare apparecchiature facilmente reperibili sul mercato ed
eventualmente riutilizzabili in altri contesti.Un altro servizio interessante, che si è trovato
sul web è sicuramente quello di GEOSAT, che è molto simile a quello precedente, se non
fosse per la centralina aziendale, che in questo caso è stata sostituita da un server internet
che riceve i messaggi SMS. Per poter quindi visionare il luogo in cui si trova il mio
automezzo, dovrò accedere al sito internet della loro società, e dopo essere stato
autenticato potrò vedere la mia flotta. Noi al contrario, vorremmo realizzare un sistema
in cui i dati riguardanti i miei veicoli rimangano esclusivamente sul server aziendale.
Dopo aver riscontrato queste incompletezze nei prodotti esistenti e tenuto soprattutto
conto del fatto che questo sistema è stato pensato inizialmente per interfacciarsi con
OAM Trasporti e Spedizioni, si è deciso di continuare nella realizzazione del progetto.
1.3 Descrizione del Prodotto
La società presso la quale è stato svolto questo lavoro di tesi è proprietaria del marchio
OAM (Office Automation Manager), che identifica una linea di prodotti software
scalabili e modulari nati per soddisfare specifiche esigenze di piccole e medie aziende
che adottano o intendono adottare piattaforme Windows. Le applicazioni consistono in
moduli, ognuno dei quali è dotato di un’interfaccia gradevole ed intuitiva che si integra
con l’ambiente operativo ed i programmi più comuni. In questo contesto, si è deciso di
chiamare OAMCE il software che girerà sul dispositivo mobile, mentre invece, le
applicazioni che verranno eseguite su postazioni fisse si è deciso di chiamarle MOB, che
sta per mobile. Il sistema realizzato si basa su un’architettura client/server, che si
compone di tre elementi fondamentali, chiamati MOB Server, MOB Console e OAMCE,
i quali comunicano tra di loro attraverso internet (protocollo TCP/IP) utilizzando dei
socket. Analizziamo ora separatamente queste tre applicazioni per capire meglio com’è
stato realizzato il sistema.
1.3.1 Modulo: MOB Server
MOB Server è un servizio che deve girare sul server aziendale, e si occupa
dell’acquisizione dei dati provenienti dalle periferiche viaggianti, grazie ad un canale
virtuale aperto tra questi dispositivi ed il server; le informazioni che vengono inviate
riguardano principalmente il punto in cui si trova l’automezzo, ma anche tutto ciò che
entrerà a far parte del rapporto di viaggio, come ad esempio le soste effettuate. Vorrei far
notare, che anche se fino ad ora non si è detto, la comunicazione avviene in modo
bidirezionale, ed è quindi anche possibile inviare messaggi di testo dalla sede alle
attrezzature mobili e viceversa.
Questo servizio, oltre ad occuparsi delle connessioni con i vari dispositivi, permette
anche la memorizzazione dei dati provenienti da questi ultimi in un database per essere
utilizzati al momento opportuno; è presente anche un’interfaccia utente per il controllo
delle periferiche connesse e per l’invio di eventuali messaggi di testo.
1.3.2 Modulo: OAMCE
OAMCE rappresenta il cuore del sistema, l’applicazione viene eseguita su di una
apparecchiatura mobile (Es. Pocket PC) utilizzante il sistema operativo Windows CE, si
occupa di catturare la posizione dal GPS in modo trasparente all’utente, di acquisire i dati
riguardanti il rapporto di viaggio, gestire l’invio e la ricezione di messaggi , ed infine
invia tutte queste informazioni al server attraverso la rete internet. Per potersi connettere
a quest’ultima si è deciso di utilizzare il mezzo più efficace che la tecnologia ci mette
oggi a disposizione, il GPRS. Se questo mezzo non è disponibile, è tuttavia prevista una
connessione alternativa tramite GSM. Per ogni automezzo della flotta viaggiante dovrà
quindi essere previsto un dispositivo palmare, utilizzabile dall’autista; l’applicazione è
stata realizzata in modo da richiedere il minimo intervento da parte di quest’ultimo e mai
durante la marcia del trattore, per non distrarlo dallo svolgimento del suo lavoro.
1.3.3 Modulo: MOB Console
MOB Console parla direttamente con il server e mai con le periferiche, elabora i dati
immagazzinati da quest’ultimo per renderli visibili all’utente finale. In particolare, grazie
all’interfacciamento con MS MapPoint, che mette a disposizione la cartina dettagliata di
tutte le strade europee, ho la possibilità di visionare il punto in cui si trovano tutti gli
automezzi della flotta. La posizione del veicolo, è tracciabile in tempo reale, ma è anche
possibile visualizzare la strada percorsa in un lasso di tempo specificato, ottenendo in
questo modo lo storico dell’automezzo. Anche dalla console, come dal server è possibile
inviare messaggi di testo alle periferiche. Questa applicazione si occupa anche di inserire
i dati dei vari rapporti di viaggio all’interno del database del programma OAM Trasporti
& Spedizioni 3.0 (Programma pre-esistente per la gestione di un’azienda di
autotrasporto).
1.4 Strumenti Utilizzati
Il progetto è stato eseguito utilizzando gli ambienti di sviluppo forniti dall’ambiente
Microsoft Windows; in particolare si è utilizzato Microsoft Visual Basic 6.0 per la
realizzazione del server e della console,in quanto rappresenta un buon linguaggio di
programmazione object-oriented e velocizza notevolmente lo sviluppo da parte del
programmatore. Microsoft Access 2002 è stato usato per la realizzazione della base dati
sul server ,è stato preferito a MS SQL Server almeno nella fase iniziale, in quanto ogni
procedura è notevolmente semplificata. La migrazione al database appena citato è
un’evoluzione naturale del nostro progetto, e per questo se ne è tenuto conto in fase di
realizzazione. Si è utilizzato Microsoft MapPoint 2002 per la visualizzazione delle
cartine presentate dalla console, in quanto espone le sue classi ed è quindi
programmabile; un altro aspetto di questo software che ci ha spinto al suo utilizzo è il
costo contenuto del pacchetto, se avessimo voluto utilizzare altre cartine avremmo
dovuto pagare delle royalty, il che avrebbe fatto lievitare a livelli improponibili i costi di
realizzazione.
Per quanto riguarda OAMCE sono stati utilizzati Microsoft Embedded Visual Basic e
Visual C++ 3.0 per la realizzazione del codice e Microsoft Windows Platform SDK for
Pocket PC 2002 per creare gli eseguibili per il dispositivo palmare, ed inoltre grazie alla
presenza al suo interno di un emulatore, ha reso lo sviluppo del progetto più facile. I
software di tipo Embedded sono simili alle versioni desktop per quanto riguarda la
semplicità di utilizzo,ma purtroppo hanno un set di istruzioni molto più limitato. Faccio
notare, che questi ambienti di sviluppo sono stati realizzati da poco tempo e quindi molte
volte si sono incontrati bug, che hanno messo a dura prova il lavoro del programmatore.
Si è inoltre utilizzato il linguaggio XML per lo scambio dei dati tra i vari moduli di
questo sistema. L’ XML non è un linguaggio di programmazione, bensì un meta-
linguaggio di markup per la rappresentazione di documenti, che contengono informazioni
strutturate, allo scopo di permettere uno scambio di informazioni ottimizzato su internet.
Per quanto riguarda invece i dispositivi hardware utilizzati sui mezzi viaggianti, si è
deciso di utilizzare il Pocket PC Compaq iPAQ H3850 che incorpora il sistema operativo
MS Pocket PC 2002, ma voglio ricordare che l’applicazione funziona su qualsiasi
dispositivo basato su Windows CE. Come telefono da applicare all’iPAQ si è utilizzato
GSM/GPRS Expansion Pack sempre della stessa casa produttrice. Ed infine per la
localizzazione si è scelto Pharos iPAQ GPS Kit, ma è utilizzabile a priori qualsiasi GPS
conforme allo standard NMEA.
2. Il sistema
2.1 Descrizione Generale
Nel primo capitolo, è stato analizzato il progetto dal punto di vista generale, per entrare
all’interno del progetto in modo graduale; arrivati a questo punto, ed avendo quindi alle
spalle un’idea di massima di cosa sia stato realizzato, procediamo passo per passo ad
esaminare in dettaglio le varie componenti di questo sistema. Come penso abbiate ormai
capito, la soluzione è costituita da tre applicazioni, MOB Server, MOB Console ed
OAMCE, queste ultime due rappresentano il lato client di un sistema client/Server ,
mentre l’altro lato, com’è facilmente intuibile, è rappresentato dalla prima applicazione
che ho citato. Questa realizzazione, per poter funzionare, necessita che le applicazioni
possano comunicare tra di loro come si può vedere dall’immagine seguente (fig. 2.1).
(fig. 2.1 Il Sistema)
Tutte le comunicazioni avvengono attraverso il protocollo TCP/IP utilizzando dei socket,
è previsto un collegamento di tipo LAN tra OAM Trasporti e Spedizioni e MOB
Console, ma anche tra quest’ultimo e MOB Server, mentre per il collegamento tra le
periferiche (sulle quali gira OAMCE) e quest’ultimo la connessione avviene attraverso
internet. Ovviamente, perché tutto ciò sia possibile, il server aziendale dovrà essere
configurato per esporre un servizio web pubblico, così facendo da tutte le
apparecchiature mobili, attaccate ad internet, sarà possibile collegarsi a MOB Server
richiamando l’IP. Vorrei inoltre ricordare che come si vede dall’immagine, MOB
Console è l’unica applicazione che parla direttamente con OAM Trasporti e Spedizioni,
il quale è un programma già esistente sviluppato dalla stessa software house in cui è stato
realizzato questo progetto, e che si occupa della gestione dei viaggi e della pianificazione
di un’azienda di autotrasporti; se questo software non fosse installato nel sistema,
sarebbe possibile utilizzare le sole funzionalità di localizzazione e di scambio di
messaggi. Sempre guardando l’immagine, salta all’occhio, che l’unica applicazione che
colloquia direttamente con il database è MOB Server, in esso sono contenute le
informazioni riguardanti le periferiche abilitate alla ricezione e tutti i messaggi
riguardanti la posizione che provengono dalle periferiche viaggianti. Quando questi dati
servono a MOB Console, li dovrà richiedere al programma server, il quale si occuperà
della loro estrazione dal database.
Lo scambio di dati tra le varie applicazioni avviene attraverso messaggi diretti, ma ci
sono alcuni casi, ad esempio in presenza di notevoli quantità di dati, che si è preferito
scambiare questi ultimi attraverso file XML, come vedremo nei paragrafi successivi. Un
caso particolare è ad esempio il seguente, in condizioni normali di esecuzione, OAMCE
invia la posizione dell’automezzo a MOB Server attraverso internet, ma cosa succede se
la connessione ad internet non è realizzabile, ad esempio per un calo della copertura
GPRS ? In tal caso, l’informazione riguardante la posizione non è arrivata al server ma è
comunque presente sul palmare, in quanto si è deciso di salvare tutti i dati che vengono
inviati in sede anche all’interno di un file XML sulla periferica. Non ci rimaneva che
decidere come poter mandare i dati al server senza una connessione ad internet, e si è
scelto di sincronizzarli direttamente in azienda al termine del viaggio grazie al software
Microsoft ActiveSync che inserirà il file all’interno di una directory prefissata per essere
poi interpretato da MOB Server, e quest’ultimo inserirà i dati mancanti all’interno del
database, successivamente analizzerò più in dettaglio questo aspetto; ricordiamoci che
questa cosa è indispensabile soltanto quando il cliente richiede lo storico dei viaggi
effettuati. Se al contrario l’informazione mancante è quella del GPS, ad esempio a causa
di una galleria, non ci sarà nulla da fare.
2.2 Funzionalità di Base
All’interno di questo sistema vi sono parecchie funzionalità, alcune di carattere generale,
che andremo ora ad esaminare, ma oltre a queste vi sono anche quelle specifiche di ogni
applicazione, che verranno prese in considerazione nei capitoli successivi, dedicati ai vari
componenti del sistema. Le caratteristiche principali sono, la localizzazione del mezzo, lo
scambio di messaggi tra i dispositivi, il rapporto di viaggio ed il percorso del viaggio.
2.2.1 Localizzazione del Mezzo
Questo è decisamente l’aspetto più interessante e complesso di tutta la soluzione, infatti
tutti gli elementi intervengono nella realizzazione di questa funzionalità. Le periferiche
viaggianti inviano la posizione che ricavano dal ricevitore GPS, attraverso internet
direttamente a MOB Server, quest’ultimo immagazzina i dati della posizione di ogni
periferica nel database. Quando l’utente finale vuole controllare la posizione di un
automezzo della sua flotta viaggiante, non deve far altro che lanciare MOB Console e
specificare a quest’ultimo le periferiche che vuole visualizzare sulla mappa messa a
disposizione da MapPoint, in questo modo verranno richiesti al server i dati sulle
posizioni dei dispositivi indicati e quest’ultimo li rimanderà alla console, la quale si
occuperà della presentazione delle posizioni degli automezzi sulla cartina.
2.2.2 Scambio di Messaggi tra Dispositivi
Questa caratteristica, abbastanza semplice nel concetto, è risultata molto utile nella
pratica, e apprezzata soprattutto dai clienti per la semplicità di utilizzo ed immediatezza
nelle comunicazioni. Ai giorni nostri esistono parecchi metodi per comunicare tra i mezzi
viaggianti e la sede aziendale, come ad esempio il cellulare, dispositivi radio, ecc...
Il nostro sistema, non vuole certo sostituirli, ma vuole soltanto dare una possibilità
ulteriore di comunicazione, infatti per lunghe comunicazioni sono preferibili i mezzi
tradizionali, mentre per messaggi brevi ed immediati risulta molto interessante anche il
nostro sistema, a costo praticamente nullo. E’ possibile infatti mandare messaggi dalla
sede aziendale alle periferiche e viceversa, come si invierebbe semplicemente un SMS
tra cellulari, il tutto direttamente dall’applicazione che si sta utilizzando.
2.2.3 Rapporto di Viaggio
Questa funzionalità, a differenza delle precedenti, che esistono nel sistema senza
componenti aggiuntivi, necessita di OAM Trasporti e Spedizioni per poter funzionare.
Infatti i dati riguardanti il rapporto di viaggio sono immagazzinati nel database di questo
software, sarà MOB Console,a colloquiare direttamente con esso ed inserire i dati in
quest’ultimo. La compilazione del rapporto di viaggio, che prima della realizzazione di
questo sistema era fatta in azienda, ora è svolta direttamente sul mezzo dall’autista al
termine del viaggio. OAMCE invierà quindi le informazioni inserite al server, il quale le
girerà alla console per essere inserite nel database sopra citato. Questa caratteristica può
sembrare superflua a prima vista, ma al contrario risulta essere quella più utile dopo la
localizzazione, in quanto non sarà più necessaria una persona che al termine di tutti i
viaggi di giornata inserisca i rapporti all’interno del software di gestione.
2.2.4 Percorso del Viaggio
Analogamente alla caratteristica precedente, anche questa per poter essere a disposizione
dell’utente si deve appoggiare ad OAM Trasporti e Spedizioni, in quanto la definizione
dei carichi e degli scarichi che dovrà svolgere l’automezzo sul quale è montata la
periferica, sono contenuti all’interno del suo database. Queste informazioni saranno
passate ad OAMCE attraverso MOB Server, sotto forma di file XML, in questo modo
saranno visualizzabili dall’autista sul palmare. Quest’ultimo potrà quindi controllare il
suo percorso di giornata, ed alla fine confermare l’avvenuto carico o scarico. La
comunicazione dell’effettuazione di ogni attività verrà inviata in sede, in questo modo
potremo sapere lo stato di avanzamento delle operazioni del viaggio.
2.3 Implementazione e Strutture di Dati
In questo paragrafo vedremo l’implementazione che è stata realizzata per rendere
possibile lo svolgimento delle funzionalità di base, il tutto preso dal punto di vista del
sistema in generale, in quanto i dettagli delle singole applicazioni li vedremo nei capitoli
a loro dedicati. Gli argomenti trattati di seguito riguarderanno: il protocollo di
comunicazione, lo scambio dei dati attraverso XML e la sincronizzazione dei dati
attraverso ActiveSync.