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