sulla direzione progettazione del sistema: Prima se non v'è alcuna reale necessità di non creare 2 diverse applicazioni GWT uno e l'altro iPhone crearne uno ma ben scritto GWT app. Funzionerà fuori linea senza problemi e gestirà i tuoi dati usando HTML feature -- offline application cache Se è necessario creare 2 app separate almeno risparmi te stesso e non scrivere server due volte, come se si usasse l'accesso standard GWT, si fallirebbe quasi sicuramente per parlare con il server da app stand-alone (è compresso JSON su HTTP con alcune intestazioni difficili ...) o scriverà le cose twise quindi guardate allo RestLet library ben supportato dal GAE.
Informazioni sul modo di mantenere la sincronizzazione con la commutazione offline/online: Ci sono diversi approcci da considerare e tutti non sono perfetti. Quindi, quando ti consederti, la tua mente pensa a quello che ti aspetti ... Non essere Microsoft Word, non cercare di superare in astuzia l'utente. Se esiste almeno uno scenario nei casi d'uso che richiedono l'intervento dell'utente per unire le modifiche (e ce ne sarà - portarlo in banca) - di quello che si avrà implementando l'interfaccia utente per questo - che ci sia una buona ragione per usarlo spesso - l'utente si abituerà ad esso. è meglio di quanto lo vedrà da un po 'da quando ha iniziato a usare l'app perché una necessità è rara perché hai implementato una logica di fusione super duper che chiede all'utente solo in casi molto speciali ... Non farlo. bilancia lo sforzo. Perché il casino che un bug in tale codice introdurrà all'utente è molto più doloroso del beneficio di tutti insieme.
quindi il COME: L'unico modo è Do-UnDo. Mentre non in linea - mantieni il log delle azioni eseguite dall'utente sui dati in ordine di orario, l'utente li ha fatti non appena ti sei connesso: invia al server ed eseguili. Lo stesso da server a client. Funzionerà bene nella maggior parte dei casi, purché non si scriva un tipo di software Photoshop con enormi quantità di dati per operazione. Chiamato anche Pattern di azione da GangOfFour.
Un altro modo è un modo di controllo della sorgente. - Versioni e potrebbero anche essere serrature. molto dipendente dall'applicazione. DBMS internamente alcune volte lo usa per implementazioni di transazioni.
E c'è sempre la possibilità di essere letto solo quando ofline :-)
fonte
2010-06-06 23:39:09
Penso che la tua domanda è più a che fare con problemi di sincronizzazione generale (chi è il padrone, modifiche locali sull'iPhone o sul backend gwt) giusto? Sarei interessato anche a questo. – EightyEight
questo è esattamente quello che mi interessa. Sincronizzare le modifiche locali con un set di dati master su un server web. – reflog