2013-02-19 10 views
5

Sto sviluppando un'app Contatti personalizzata che memorizzerà i dati sul dispositivo in un database SQLite. È molto importante che questo database dispositivi possa essere sincronizzato con un database cloud, per alcuni motivi:Una soluzione cloud per sincronizzare il database delle app in Android

Gli utenti possono disporre di più di un dispositivo e desiderano che i propri dati delle applicazioni siano aggiornati su tutti i dispositivi; Gli utenti possono accedere a questi dati da un'applicazione Web; Poiché questa app memorizzerà molte immagini, la memoria del dispositivo non sarà sufficiente per contenere tutti i dati e sarà disponibile un'opzione di archiviazione per mantenere i dati solo nel database cloud. L'archivio nel cloud verrà eseguito automaticamente per i record precedenti. Un'opzione di ripristino sarà disponibile per scaricare i dati per i record quando necessario. Come si può vedere, il database del dispositivo manterrà i contatti per un utente e il database del cloud sarà un db simile ma conserverà i dati per tutti gli utenti. Quindi, c'è una logica in questa sincronizzazione. Non è solo una questione o copiare l'intero file SQLite DB su e giù. Deve essere una sincronizzazione a livello di riga/colonna.

Mi chiedo quale tipo di soluzione posso utilizzare per realizzare questo? È possibile utilizzare Google Cloud o App Engine per implementare il lato server? Cosa posso fare sul lato del dispositivo? Qualche idea?

Apprezzo davvero qualsiasi risposta.

Grazie.

+0

Lungo il tempo ho trovato alcune soluzioni anche se non risolvono interamente il mio problema: Dropbox Datastore, Couchbase Lite + Sync Gateway, ... – Ecil

risposta

3

È possibile utilizzare qualsiasi servizio Web basato su "cloud" che si desidera, si ha a disposizione tutta la potenza di Java e di solide librerie http sul telefono. È certamente possibile creare un'app/webservice su una piattaforma come Amazon EC2 o App Engine e quindi chiamarlo direttamente dalla tua app, gestendo la sicurezza, l'archiviazione e la sincronizzazione da solo.

Personalmente, nella mia esperienza, utilizzo Django/Python su EC2 (insieme a una varietà di servizi dati AWS) e funziona alla grande.

Separatamente, so che ci sono una varietà di startup che creano soluzioni out-of-the-box per il tuo scenario - cioè SDK speciali e servizi di back-end destinati esclusivamente agli sviluppatori di dispositivi mobili. Non ho alcuna esperienza con questi, ma qui ci sono due di cui sono a conoscenza (senza riconoscimento alcuno, solo link): https://www.parse.com/ https://www.stackmob.com/

+0

[Parse è morto, o sarà il 28 gennaio 2017] (http://blog.parse.com/announcements/moving-on/). E [il talentuoso team di StackMob è entrato in PayPal] (http://stackmob.com/default.html). – IInspectable

2

posso raccomandare vivamente di considerare di usare Google Cloud Messaging, e altro ancora nello specifico. Il modello "Invia alla sincronizzazione".

Per quanto riguarda le specifiche del record di rilevamento, le modifiche e la sincronizzazione, non posso offrire un buon consiglio se non per dire che questa funzione è fatta da molti sistemi di database, quindi potresti voler vedere come risolverlo. I più comuni includono timestamp e numeri di versione.

link di riferimento: Google sessione di I/O sul GCM (Trovo che questo sia un bel intro per iniziare il GCM) http://www.youtube.com/watch?v=YoaP6hcDctM&list=PL4C6BCDE45E05F49E&index=9

documentazione Google Cloud Messaging (link diretto per inviare per la sincronizzazione) http://developer.android.com/google/gcm/adv.html#s2s

Problemi correlati