2010-08-16 26 views
12

Attualmente sto sviluppando un'applicazione Field-Service che memorizza i dati nel database sqlite locale su un dispositivo Android. Ad un certo punto, di solito dopo aver completato i round di raccolta dei dati, il db sqlite locale deve essere sincronizzato con un db server SQL remoto sul server, anch'io ho bisogno di aggiornare alcune tabelle locali da sql server db.connettersi a SQL Server da Android

Qualche suggerimento su come questo potrebbe essere realizzato o progettato come soluzione? O ancora meglio, ci sono alternative alla sincronizzazione dei dati in tale applicazione?

+0

Anche sto facendo lo stesso progetto, fammi sapere se il codice funziona – VenomVendor

risposta

18

Penso che il meglio sia utilizzare un intermediario come i servizi Web o il proprio livello logico basato su TCP per l'applicazione che si connetterebbe al server SQL ed eseguirà le richieste della vostra applicazione. Non provare a connettersi al tuo server SQL direttamente da Android. Puoi scrivere qualche codice di backend sul tuo server (o servizio web) e quindi chiamare quei metodi di codice dal tuo dispositivo Android usando Http.

e inoltre ci sono molti temi in StackOverflow come la vostra:

su come scrivere i servizi web. È una grande domanda, e devi scegliere la tecnologia, ci sono molte librerie, framework e piattaforme che ti aiutano semplicemente a scrivere un servizio web. È necessario scegliere il protocollo di comunicazione, potrebbe essere SOAP, WSDL o forse rimuovere la procedura di chiamata, potrebbe essere l'applicazione di riposo. Se si utilizza Java stack, ci sono alcuni quadri popolari al momento:

Si può iniziare dalla lettura di ciò che un servizio web è:

anche alcuni link che forniscono esempio di accesso ai servizi web da Android:

+1

Non so cosa l'OP cercasse, ma speravo in qualche consiglio su come progettare un progetto simile. Ho provato a utilizzare SOAP ma non sono riuscito a ottenere l'analisi XML per funzionare nel framework Android? Tutte le librerie che ho provato a usare erano ingombranti o dipendevano da cose che non potevo importare. – Yamikuronue

+0

@Yamikuronue IMHO SOAP è troppo lento. Sto utilizzando con successo [Apache Thrift] (http://thrift.apache.org/) in un progetto di sincronizzazione del DB remoto PostgreSQL SQLite SQLite <-> e funziona come un incantesimo. – m0skit0

0

sarebbe necessario mantenere un server on-line di livello intermedio. Che può comunicare avanti e indietro tra la tua applicazione e MSSQL db.May essere servlet o un gestore di richieste che si sincronizza tra il db SQLite e SQL Server.

0

altro e molto più facile approccio è quello di utilizzare un driver JDBC virtuale che relys su un assicurato un'architettura a tre livelli: il codice JDBC viene inviato attraverso HTTP a un Servlet remota che filtra il codice JDBC (configurazione & sicurezza) prima di passarlo al driver JDBC MySql. Il risultato ti viene restituito tramite HTTP.

Ci sono alcuni software gratuiti che utilizzano questa tecnica. Solo Google "Driver JDBC Android su HTTP".

Problemi correlati