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