windows mobile architettura di una soluzione mobile fabio santini [email protected]
TRANSCRIPT
Windows MobileWindows MobileArchitettura di una soluzione mobileArchitettura di una soluzione mobile
Fabio SantiniFabio [email protected]@microsoft.comwww.fsantini.netwww.fsantini.nethttp://blogs.msdn.com/fabiosantinihttp://blogs.msdn.com/fabiosantini
AgendaAgenda
Perchè una soluzione mobilePerchè una soluzione mobile Scelta della tecnologia e del dispositivoScelta della tecnologia e del dispositivo DomandeDomande Strategie per la gestione dei datiStrategie per la gestione dei dati Strategie per l’installazione e Strategie per l’installazione e
l’aggiornamento dell’applicazionel’aggiornamento dell’applicazione Aspetti che si sottovalutano sempre Aspetti che si sottovalutano sempre
Perchè una soluzione mobilePerchè una soluzione mobile
Cosa si intende per soluzione mobileCosa si intende per soluzione mobile
Ci sono tre aspetti importanti che chi Ci sono tre aspetti importanti che chi sviluppa un’applicazione mobile deve sviluppa un’applicazione mobile deve tenere in considerazione:tenere in considerazione: TempoTempo
L’utente deve poter usare l’applicazione L’utente deve poter usare l’applicazione quando vuolequando vuole
SpazioSpazio L’utente deve poter utilizzare L’utente deve poter utilizzare
l’applicazione in ogni luogol’applicazione in ogni luogo CondizioneCondizione
L’utente deve poter utilizzare L’utente deve poter utilizzare l’applicazione in ogni condizionel’applicazione in ogni condizione
Quando pensare ad un’ applicazione Quando pensare ad un’ applicazione mobilemobile
Tempo+Spazio+Condizione=MobileTempo+Spazio+Condizione=Mobile A seconda del targetA seconda del target Quando le informazioni servono “sul Quando le informazioni servono “sul
campo”campo” Quando si può riutilizzare un asset già Quando si può riutilizzare un asset già
presente (es. cellulare)presente (es. cellulare)
Server Side o Smart ClientServer Side o Smart ClientDomanda principaleDomanda principale
Server Server SideSide
SmartSmartClientClient
??
Abbiamo il controllo del Abbiamo il controllo del dispositivo ?dispositivo ?
Possiamo installare e gestire Possiamo installare e gestire le nostre applicazioni sul le nostre applicazioni sul dispositivo? Ne abbiamo il dispositivo? Ne abbiamo il diritto ?diritto ?
Quanto spesso viene Quanto spesso viene utilizzata la nostra utilizzata la nostra applicazione?applicazione?
Abbiamo bisogno di Abbiamo bisogno di interfacce grafiche interfacce grafiche particolari?particolari?
La nostra applicazione deve La nostra applicazione deve funzionare anche senza funzionare anche senza connetività?connetività?
La connessione è costosa?La connessione è costosa?
Server SideServer Side
Funziona su ogni Funziona su ogni dispositivo dispositivo
Difficile gestione Difficile gestione dell’interfaccia dell’interfaccia graficagrafica
Necessita di una Necessita di una connessione connessione continuacontinua
Informazioni Informazioni trasferite > trasferite > Informazioni Informazioni necessarienecessarie
VantaggiVantaggi SvantaggiSvantaggi
Smart ClientSmart Client
Non necessita di Non necessita di una connessione una connessione continuacontinua
Ottimizzazione dei Ottimizzazione dei costi di costi di trasferimento dei trasferimento dei datidati
Permette una Permette una gestione completa gestione completa dell’interfaccia dell’interfaccia grafica grafica
Funziona solo su Funziona solo su alcuni dispositivialcuni dispositivi
Complesso il Complesso il deployment e la deployment e la manutenzione manutenzione dell’applicazionedell’applicazione
Spesso è Spesso è necessario necessario cambiare il cambiare il dispositivodispositivo
VantaggiVantaggi SvantaggiSvantaggi
eVC++eVC++ eVC++eVC++Visual Studio .NET Visual Studio .NET
with Visual C++ .NETwith Visual C++ .NET
Scegliere il dispositivo giustoScegliere il dispositivo giusto
VoiceVoice Real-time Real-time messagingmessaging SMS, MMSSMS, MMS MSN MessengerMSN Messenger
Business Business applicationsapplications Mobile OfficeMobile Office BusinessBusiness
Tablet PCTablet PC
E-MailE-Mail
Pocket PC Pocket PC Smartphone Smartphone
Visual Studio .NETVisual Studio .NET+ .NET Compact + .NET Compact
FrameworkFramework
Visual Studio .NETVisual Studio .NET+ .NET Framework+ .NET Framework
CF 2.0CF 2.0
NativeNative
ManagedManaged
Caratteristiche importantiCaratteristiche importanti
Come l’applicazione utilizza il Come l’applicazione utilizza il devicedevice
SharedShared• convive con altreconvive con altre• dialoga con le altredialoga con le altre• interfaccia consistenteinterfaccia consistente• installazione per l’utenteinstallazione per l’utente• risorse HW-SW condiviserisorse HW-SW condivise• conforme alle guidelinesconforme alle guidelines• logo-compliant? probabilelogo-compliant? probabile
DomandeDomande 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 Quanto sono importanti le informazioni che vengono
scambiate?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 Oltre al lavoro principale possono trarre ulteriori vantaggi da
un dispositivo mobile?un dispositivo mobile? Quanto “sentono” importante l’invio dei dati?Quanto “sentono” importante l’invio dei dati? ……
Chi sono i miei utentiChi sono i miei utenti Hanno confidenza con la tecnologiaHanno confidenza con la tecnologia
Impatto sull’interfaccia graficaImpatto sull’interfaccia grafica Impatto su eventuali servizi aggiuntiviImpatto su eventuali servizi aggiuntivi
Posta elettronicaPosta elettronica DocumentiDocumenti etc.etc.
Fanno un lavoro manualeFanno un lavoro manuale Impatto sull’interfaccia graficaImpatto sull’interfaccia grafica Impatto sulla scelta del dispositivoImpatto sulla scelta del dispositivo Impatto sul costo totale (ampio magazzino Impatto sul costo totale (ampio magazzino
di backup di backup ))
Quanti sonoQuanti sono
Come sono distribuiti sul territorioCome sono distribuiti sul territorio
La distribuzione sul territorio La distribuzione sul territorio condiziona la maggior parte delle condiziona la maggior parte delle scelte logistichescelte logistiche Dove e come si connettono gli utenti per Dove e come si connettono gli utenti per
inviare le informazioniinviare le informazioni Dove dare il primo supporto in caso di Dove dare il primo supporto in caso di
failurefailure hardwarehardware softwaresoftware
Come effettuare la prima installazione e Come effettuare la prima installazione e gli aggiornamenti softwaregli aggiornamenti software
Come lavorano adessoCome lavorano adesso Questo è uno degli aspetti più Questo è uno degli aspetti più
interessanti, per avere successo un interessanti, per avere successo un applicazione mobile deve essere il applicazione mobile deve essere il meno invasiva possibilemeno invasiva possibile Utilizzano materiale cartaceo o altroUtilizzano materiale cartaceo o altro Se si, gli servirà anche quando Se si, gli servirà anche quando
utilizzerano il dispositivoutilizzerano il dispositivo(es. Cataloghi prodotti)(es. Cataloghi prodotti)
Quanto il dispositivo mobile sarà Quanto il dispositivo mobile sarà percepito come un pesopercepito come un peso Gli utenti trarranno vantaggi reali Gli utenti trarranno vantaggi reali
dall’utilizzo dell’applicazione mobile o dall’utilizzo dell’applicazione mobile o è solo l’azienda che avrà un profittoè solo l’azienda che avrà un profitto difficile accettazione della soluzione difficile accettazione della soluzione
anche se perfettamente funzionanteanche se perfettamente funzionante
Tentare di aggiungere un valore Tentare di aggiungere un valore personale all’uso del dispositivopersonale all’uso del dispositivo Posta Elettronica, o AgendaPosta Elettronica, o Agenda
Che tipo di dati trattanoChe tipo di dati trattano
Quanto sono importanti le Quanto sono importanti le informazioni che vengono scambiateinformazioni che vengono scambiate La domanda che dobbiamo porci La domanda che dobbiamo porci
sempre è : sempre è : è più importante ricevere le è più importante ricevere le informazioni dalla sede centrale o informazioni dalla sede centrale o inviarle ?inviarle ? cambiano le strategie di scambio dei cambiano le strategie di scambio dei
datidati cambiano le strategie di cambiano le strategie di
connessioneconnessione
Tutti vedono tuttoTutti vedono tutto Quanti conflitti avremo durante lo Quanti conflitti avremo durante lo
scambio dei dati? Come facciamo ad scambio dei dati? Come facciamo ad assicurarci che le informazioni negli assicurarci che le informazioni negli archivi siano affidabili?archivi siano affidabili? La maggior parte delle applicazioni per La maggior parte delle applicazioni per
esperienza personale condivide una mole esperienza personale condivide una mole di dati molto piccolo, spesso inesistentedi dati molto piccolo, spesso inesistente
Se serve forzare la mano o duplicare le Se serve forzare la mano o duplicare le informazioniinformazioni
Attenzione alla privacy !!!!!Attenzione alla privacy !!!!!
Come si collegheranno alla sedeCome si collegheranno alla sede Quale tipo di connessione verrà Quale tipo di connessione verrà
utilizzata?utilizzata? LANLAN
usando per esempio schede CF Ethernetusando per esempio schede CF Ethernet
WirelessWireless ormai i dispositivi hanno il wireless integratoormai i dispositivi hanno il wireless integrato
GSM/GPRSGSM/GPRS attenzioni ai costiattenzioni ai costi
EdgeEdge ancora abbstanza giovaneancora abbstanza giovane
UMTSUMTS CableCable
Condivideranno gli stessi Condivideranno gli stessi dispositividispositivi Spesso accade che gruppi di persone Spesso accade che gruppi di persone
condividano lo stesso dispositivocondividano lo stesso dispositivo Gestione multiaccountGestione multiaccount schede di memoria più grandi (sullo schede di memoria più grandi (sullo
stesso dispositivo ci finiscono dati di più stesso dispositivo ci finiscono dati di più utenti)utenti)
attenzione alla privacy !!!!attenzione alla privacy !!!!
Lavoreranno in condizioni Lavoreranno in condizioni particolariparticolari Non pensare ad un’applicazione che Non pensare ad un’applicazione che
viene utilizzata da una scrivaniaviene utilizzata da una scrivania scarsa visibilitàscarsa visibilità ambiente osticoambiente ostico
(cantine, mansarde, all’aperto)(cantine, mansarde, all’aperto) condizioni del tempocondizioni del tempo
La scelta del dispositivo è La scelta del dispositivo è fondamentalefondamentale
L’interfaccia grafica potrebbe cambiareL’interfaccia grafica potrebbe cambiare
Hanno già un dispostivo Hanno già un dispostivo mobilemobile La difficoltà di accettare un dispositivo La difficoltà di accettare un dispositivo
mobile è molto più alta se gli utenti ne mobile è molto più alta se gli utenti ne hanno già unohanno già uno due “oggetti” da caricaredue “oggetti” da caricare più responsabilitàpiù responsabilità
Pensare alla sostituzione invece che Pensare alla sostituzione invece che all’affiancamentoall’affiancamento Phone + Palmare < Palmare Phone EditionPhone + Palmare < Palmare Phone Edition
Oltre al lavoro principale possono trarre Oltre al lavoro principale possono trarre ulteriori vantaggi da un dispositivo mobileulteriori vantaggi da un dispositivo mobile
Un buon modo di far accettare il Un buon modo di far accettare il dispositivo è quello di aggiungere alla dispositivo è quello di aggiungere alla propria applicazione altri servizi propria applicazione altri servizi Posta Posta CalendarioCalendario altro softwarealtro software
Anche se si forza l’adozione, il Anche se si forza l’adozione, il successo del progetto sarà sempre successo del progetto sarà sempre dipendente dalla volontà degli utentidipendente dalla volontà degli utenti
Quanto “sentono” Quanto “sentono” importante l’invio dei datiimportante l’invio dei dati I dati che vengono inviati dai I dati che vengono inviati dai
dispositivi verso la sede centrale sono dispositivi verso la sede centrale sono importanti per l’utenteimportanti per l’utente hanno impatto sul suo stipendio?hanno impatto sul suo stipendio?
bonus su vendite , altrobonus su vendite , altro
Se i dati sono importanti per l’utente Se i dati sono importanti per l’utente sarà disposto ad effettuare una sarà disposto ad effettuare una sincronizzazione costante ma sarà sincronizzazione costante ma sarà anche più frustrato in caso di anche più frustrato in caso di fallimentofallimento
Come sincronizzo i dati ?Come sincronizzo i dati ? Non pensate subito ad una replica Non pensate subito ad una replica
complicatacomplicata Dipende da tanti fattoriDipende da tanti fattori
ogni quanto cambianoogni quanto cambiano sono condivisisono condivisi quanto sono grandiquanto sono grandi quanto sono importantiquanto sono importanti che tipo di infrastruttura server ho a che tipo di infrastruttura server ho a
disposizionedisposizione che tipo di connettività ho a disposizioneche tipo di connettività ho a disposizione
Come sincronizzo i dati ?Come sincronizzo i dati ? Utilizzo FTPUtilizzo FTP
i dati locali possono essere gestiti in i dati locali possono essere gestiti in qualunque modoqualunque modo File di TestoFile di Testo File XMLFile XML SQL Server CESQL Server CE
i dati vengono trasferiti da e verso la sede i dati vengono trasferiti da e verso la sede tramite un semplice ftptramite un semplice ftp necessaria sempre un importazione ed necessaria sempre un importazione ed
esportazioneesportazione utilissimo quando la connessione ha una utilissimo quando la connessione ha una
banda bassa (GRPS sfrutta meglio una banda bassa (GRPS sfrutta meglio una connessione continua)connessione continua)
Come sincronizzo i dati ?Come sincronizzo i dati ? Utilizzo FTP e Web ServiceUtilizzo FTP e Web Service
Scarico i dati principali via FTPScarico i dati principali via FTP dati che cambiano raramente (elenco dati che cambiano raramente (elenco
provincie)provincie) necessaria una importazione che però risulta necessaria una importazione che però risulta
più semplice per l’assenza di gestione del più semplice per l’assenza di gestione del conflittoconflitto
Invio le modifiche tramite Web ServiceInvio le modifiche tramite Web Service Maggior controllo della sincronizzazioneMaggior controllo della sincronizzazione
Integrazione immediata dei datiIntegrazione immediata dei dati gestione degli errorigestione degli errori
Necessaria una infrastruttura pubblicaNecessaria una infrastruttura pubblica Attenzione alla sicurezza !!!Attenzione alla sicurezza !!!
Come sincronizzo i dati ?Come sincronizzo i dati ? Utilizzo Web ServiceUtilizzo Web Service
La quantità di dati da scambiare deve La quantità di dati da scambiare deve essere minimaessere minima
Tipico per attività puntualiTipico per attività puntuali Controllo completo del flusso dei datiControllo completo del flusso dei dati SicurezzaSicurezza
httpshttps autenticazioneautenticazione
Come sincronizzo i dati ?Come sincronizzo i dati ? Utilizzo RDA di SQL Server CEUtilizzo RDA di SQL Server CE
Ottimo per scarico+attività+caricoOttimo per scarico+attività+carico E’ necessario avere il minor numero di E’ necessario avere il minor numero di
conflitti possibileconflitti possibile Poche righe di codicePoche righe di codice Necessario SQL Server sul back endNecessario SQL Server sul back end Utilizza Http (molto importante)Utilizza Http (molto importante)
Come sincronizzo i dati ?Come sincronizzo i dati ? Utilizzo Replica di SQL ServerUtilizzo Replica di SQL Server
Gestione più completa dei datiGestione più completa dei dati Gestione dei conflittiGestione dei conflitti Comunque il sistema più complessoComunque il sistema più complesso
Come sincronizzo i dati ?Come sincronizzo i dati ? E’ importante avere sempre una E’ importante avere sempre una
soluzione di backup per il soluzione di backup per il trasferimento dei dati. Per esempio se trasferimento dei dati. Per esempio se si sceglie di utilizzare la si sceglie di utilizzare la sincronizzazione di SQL Server sincronizzazione di SQL Server garantire anche il trasferimento FTP garantire anche il trasferimento FTP dei datidei dati
Come installo l’applicazione ?Come installo l’applicazione ? La tecnologia scelta è importanteLa tecnologia scelta è importante
eVC eVC L’installazione è una semplice copia di fileL’installazione è una semplice copia di file Qualunque palmare con Windows CE è già Qualunque palmare con Windows CE è già
pronto per far girare applicazioni C++pronto per far girare applicazioni C++
.NET.NET Se il dispositivo ha on-board il .NET CF allora Se il dispositivo ha on-board il .NET CF allora
si tratta semplicemente di una copia altrimenti si tratta semplicemente di una copia altrimenti è necessario installare il framework (utilizzare è necessario installare il framework (utilizzare il setup presente nell’SDK)il setup presente nell’SDK)
Come installo l’applicazione ?Come installo l’applicazione ? Il sistema migliore per installare l’applicazione Il sistema migliore per installare l’applicazione
è quello di utilizzare delle schede di è quello di utilizzare delle schede di espansione come Compact Flash o Secure espansione come Compact Flash o Secure DigitalDigital Posso installare l’applicazione da zero in ogni Posso installare l’applicazione da zero in ogni
istanteistante Autorun durante l’inserimento della schedaAutorun durante l’inserimento della scheda L’installazione porta con se anche i dati iniziali (per L’installazione porta con se anche i dati iniziali (per
utente)utente) La scheda La scheda devedeve essere usata anche per essere usata anche per
memorizzare le informazionimemorizzare le informazioni Se un palmare si resetta (batteria scarica o altro) è Se un palmare si resetta (batteria scarica o altro) è
sufficiente fornire all’utente una nuova scheda di sufficiente fornire all’utente una nuova scheda di memoria (semplificazione del processo di memoria (semplificazione del processo di assistenza)assistenza)
Se l’utente non è in grado di sincronizzare i dati ma Se l’utente non è in grado di sincronizzare i dati ma è fondamentale che questi arrivino in sede ha è fondamentale che questi arrivino in sede ha sempre la possibilità di spedire la schedasempre la possibilità di spedire la scheda
Aspetti che si sottovalutano Aspetti che si sottovalutano sempre sempre Il palmare non è un pcIl palmare non è un pc E’ facile perdere la pennaE’ facile perdere la penna
Utilizzo di strumenti alternativi come Utilizzo di strumenti alternativi come cacciaviti o altro cacciaviti o altro
La batteria deve essere ricaricataLa batteria deve essere ricaricata Perdita di tutti i dati e dell’applicazionePerdita di tutti i dati e dell’applicazione
Il palmare è comunque uno strumento Il palmare è comunque uno strumento fragile (a meno di considerare l’utilizzo di fragile (a meno di considerare l’utilizzo di gusci di protezione) e quindi è gusci di protezione) e quindi è necessario pensare ad necessario pensare ad un’approvigionamento rapidoun’approvigionamento rapido
ConclusioniConclusioni
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.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.