Windows Mobile Architettura di una soluzione mobile Fabio Santini [email protected] www.fsantini.net http://blogs.msdn.com/fabiosantini Agenda Perchè una soluzione mobile Scelta della tecnologia e del dispositivo Domande Strategie per la gestione dei dati Strategie per l’installazione e l’aggiornamento dell’applicazione Aspetti che si sottovalutano sempre Perchè una soluzione mobile Cosa si intende per soluzione mobile Ci sono tre aspetti importanti che chi sviluppa un’applicazione mobile deve tenere in considerazione: Tempo Spazio L’utente deve poter usare l’applicazione quando vuole L’utente deve poter utilizzare l’applicazione in ogni luogo Condizione L’utente deve poter utilizzare l’applicazione in ogni condizione Quando pensare ad un’ applicazione mobile Tempo+Spazio+Condizione=Mobile A seconda del target Quando le informazioni servono “sul campo” Quando si può riutilizzare un asset già presente (es. cellulare) Server Side o Smart Client Domanda principale Server Side ? Smart Client Abbiamo il controllo del dispositivo ? Possiamo installare e gestire le nostre applicazioni sul dispositivo? Ne abbiamo il diritto ? Quanto spesso viene utilizzata la nostra applicazione? Abbiamo bisogno di interfacce grafiche particolari? La nostra applicazione deve funzionare anche senza connetività? La connessione è costosa? Server Side Vantaggi Svantaggi Funziona su ogni dispositivo Difficile gestione dell’interfaccia grafica Necessita di una connessione continua Informazioni trasferite > Informazioni necessarie Smart Client Vantaggi Non necessita di una connessione continua Ottimizzazione dei costi di trasferimento dei dati Permette una gestione completa dell’interfaccia grafica Svantaggi Funziona solo su alcuni dispositivi Complesso il deployment e la manutenzione dell’applicazione Spesso è necessario cambiare il dispositivo Scegliere il dispositivo giusto Voice Real-time messaging SMS, MMS MSN Messenger Smartphone Managed Native E-Mail Business applications Mobile Office Business Pocket PC Tablet PC CF 2.0 Visual Studio .NET + .NET Compact Framework Visual Studio .NET + .NET Framework eVC++ eVC++ Visual Studio .NET with Visual C++ .NET Caratteristiche importanti Come l’applicazione utilizza il device Shared • convive con altre • dialoga con le altre • interfaccia consistente • installazione per l’utente • risorse HW-SW condivise • conforme alle guidelines • logo-compliant? probabile Domande Chi sono i miei utenti? Quanti sono? Come sono distribuiti sul territorio? Come lavorano adesso? Quanto il dispositivo mobile sarà percepito come un peso? Che tipo di dati trattano? Quanto sono importanti le informazioni che vengono scambiate? Tutti vedono tutto ? Come si collegheranno alla sede? Condivideranno gli stessi dispositivi? Lavoreranno in condizioni particolari? Hanno già un dispostivo mobile? Oltre al lavoro principale possono trarre ulteriori vantaggi da un dispositivo mobile? Quanto “sentono” importante l’invio dei dati? … Chi sono i miei utenti Hanno confidenza con la tecnologia Impatto sull’interfaccia grafica Impatto su eventuali servizi aggiuntivi Posta elettronica Documenti etc. Fanno un lavoro manuale Impatto sull’interfaccia grafica Impatto sulla scelta del dispositivo Impatto sul costo totale (ampio magazzino di backup ) Quanti sono Come sono distribuiti sul territorio La distribuzione sul territorio condiziona la maggior parte delle scelte logistiche Dove e come si connettono gli utenti per inviare le informazioni Dove dare il primo supporto in caso di failure hardware software Come effettuare la prima installazione e gli aggiornamenti software Come lavorano adesso Questo è uno degli aspetti più interessanti, per avere successo un applicazione mobile deve essere il meno invasiva possibile Utilizzano materiale cartaceo o altro Se si, gli servirà anche quando utilizzerano il dispositivo (es. Cataloghi prodotti) Quanto il dispositivo mobile sarà percepito come un peso Gli utenti trarranno vantaggi reali dall’utilizzo dell’applicazione mobile o è solo l’azienda che avrà un profitto difficile accettazione della soluzione anche se perfettamente funzionante Tentare di aggiungere un valore personale all’uso del dispositivo Posta Elettronica, o Agenda Che tipo di dati trattano Quanto sono importanti le informazioni che vengono scambiate La domanda che dobbiamo porci sempre è : è più importante ricevere le informazioni dalla sede centrale o inviarle ? cambiano le strategie di scambio dei dati cambiano le strategie di connessione Tutti vedono tutto Quanti conflitti avremo durante lo scambio dei dati? Come facciamo ad assicurarci che le informazioni negli archivi siano affidabili? La maggior parte delle applicazioni per esperienza personale condivide una mole di dati molto piccolo, spesso inesistente Se serve forzare la mano o duplicare le informazioni Attenzione alla privacy !!!!! Come si collegheranno alla sede Quale tipo di connessione verrà utilizzata? LAN Wireless attenzioni ai costi Edge ormai i dispositivi hanno il wireless integrato GSM/GPRS usando per esempio schede CF Ethernet ancora abbstanza giovane UMTS Cable Condivideranno gli stessi dispositivi Spesso accade che gruppi di persone condividano lo stesso dispositivo Gestione multiaccount schede di memoria più grandi (sullo stesso dispositivo ci finiscono dati di più utenti) attenzione alla privacy !!!! Lavoreranno in condizioni particolari Non pensare ad un’applicazione che viene utilizzata da una scrivania scarsa visibilità ambiente ostico (cantine, mansarde, all’aperto) condizioni del tempo La scelta del dispositivo è fondamentale L’interfaccia grafica potrebbe cambiare Hanno già un dispostivo mobile La difficoltà di accettare un dispositivo mobile è molto più alta se gli utenti ne hanno già uno due “oggetti” da caricare più responsabilità Pensare alla sostituzione invece che all’affiancamento Phone + Palmare < Palmare Phone Edition Oltre al lavoro principale possono trarre ulteriori vantaggi da un dispositivo mobile Un buon modo di far accettare il dispositivo è quello di aggiungere alla propria applicazione altri servizi Posta Calendario altro software Anche se si forza l’adozione, il successo del progetto sarà sempre dipendente dalla volontà degli utenti Quanto “sentono” importante l’invio dei dati I dati che vengono inviati dai dispositivi verso la sede centrale sono importanti per l’utente hanno impatto sul suo stipendio? bonus su vendite , altro Se i dati sono importanti per l’utente sarà disposto ad effettuare una sincronizzazione costante ma sarà anche più frustrato in caso di fallimento Come sincronizzo i dati ? Non pensate subito ad una replica complicata Dipende da tanti fattori ogni quanto cambiano sono condivisi quanto sono grandi quanto sono importanti che tipo di infrastruttura server ho a disposizione che tipo di connettività ho a disposizione Come sincronizzo i dati ? Utilizzo FTP i dati locali possono essere gestiti in qualunque modo File di Testo File XML SQL Server CE i dati vengono trasferiti da e verso la sede tramite un semplice ftp necessaria sempre un importazione ed esportazione utilissimo quando la connessione ha una banda bassa (GRPS sfrutta meglio una connessione continua) Come sincronizzo i dati ? Utilizzo FTP e Web Service Scarico i dati principali via FTP dati che cambiano raramente (elenco provincie) necessaria una importazione che però risulta più semplice per l’assenza di gestione del conflitto Invio le modifiche tramite Web Service Maggior controllo della sincronizzazione Integrazione immediata dei dati gestione degli errori Necessaria una infrastruttura pubblica Attenzione alla sicurezza !!! Come sincronizzo i dati ? Utilizzo Web Service La quantità di dati da scambiare deve essere minima Tipico per attività puntuali Controllo completo del flusso dei dati Sicurezza https autenticazione Come sincronizzo i dati ? Utilizzo RDA di SQL Server CE Ottimo per scarico+attività+carico E’ necessario avere il minor numero di conflitti possibile Poche righe di codice Necessario SQL Server sul back end Utilizza Http (molto importante) Come sincronizzo i dati ? Utilizzo Replica di SQL Server Gestione più completa dei dati Gestione dei conflitti Comunque il sistema più complesso Come sincronizzo i dati ? E’ importante avere sempre una soluzione di backup per il trasferimento dei dati. Per esempio se si sceglie di utilizzare la sincronizzazione di SQL Server garantire anche il trasferimento FTP dei dati Come installo l’applicazione ? La tecnologia scelta è importante eVC L’installazione è una semplice copia di file Qualunque palmare con Windows CE è già pronto per far girare applicazioni C++ .NET Se il dispositivo ha on-board il .NET CF allora si tratta semplicemente di una copia altrimenti è necessario installare il framework (utilizzare il setup presente nell’SDK) Come installo l’applicazione ? Il sistema migliore per installare l’applicazione è quello di utilizzare delle schede di espansione come Compact Flash o Secure Digital Posso installare l’applicazione da zero in ogni istante Autorun durante l’inserimento della scheda L’installazione porta con se anche i dati iniziali (per utente) La scheda deve essere usata anche per memorizzare le informazioni Se un palmare si resetta (batteria scarica o altro) è sufficiente fornire all’utente una nuova scheda di memoria (semplificazione del processo di assistenza) Se l’utente non è in grado di sincronizzare i dati ma è fondamentale che questi arrivino in sede ha sempre la possibilità di spedire la scheda Aspetti che si sottovalutano sempre Il palmare non è un pc E’ facile perdere la penna La batteria deve essere ricaricata Utilizzo di strumenti alternativi come cacciaviti o altro Perdita di tutti i dati e dell’applicazione Il palmare è comunque uno strumento fragile (a meno di considerare l’utilizzo di gusci di protezione) e quindi è necessario pensare ad un’approvigionamento rapido Conclusioni Gli strumenti ci sono….si tratta solo di usarli nel modo corretto © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.