2012-02-16 27 views
6

Estamos tratando de sincronizar las bases de datos SQL Lite alojadas en diferentes dispositivos Android y la base de datos SQL server alojada en un servidor central. Eliminamos el uso de un servicio web debido a una condición previa del cliente. ¿Podría haber otra manera?Sincronización entre la base de datos SQL Lite en un dispositivo android y la base de datos SQL Server

PD: Estamos autorizados a conectar los dispositivos al final del día a un servidor que puede alojar una aplicación de servicio de Windows o una aplicación de formularios de Windows para el proceso de sincronización.

Gracias

+0

¿Qué dirección (s) necesitan los datos para ser sincronizados? –

Respuesta

1

¿Cómo los conectaría a un servidor "al final del día?" Normalmente, lo que haría en este tipo de situaciones es escribir una aplicación personalizada en el dispositivo que sincronizara los datos siempre que fuera posible.

Puede hacer esto de varias formas.

La primera es escribir un servicio que se encuentra y verifica si tiene la capacidad de conectarse con un servidor web (por ejemplo, simplemente podría usar la conexión LAN y hacer una preferencia para determinar qué servidor usted quería sincronizar con), y luego sincronizar de esa manera.

Este servicio podría ser controlado por una intención. También podría escribir un script que diera comandos a adb, que hiciera las transiciones necesarias de ida y vuelta entre el dispositivo (si estuviera conectado a través de USB) para hacer la sincronización.

Creo que la mejor manera de hacerlo es creando una actividad "sincronizada" en su aplicación. Esta actividad podría tener un botón que cuando se presionó inició la sincronización con el cliente remoto a través de Internet (que dijiste que tenías, pero ¿cómo vas a conectarlo?).

+0

Gracias por su respuesta, ¿qué quiere decir con adb, gracias –

+1

adb es un daemon que se sienta y se comunica con tu dispositivo Android. Es el puente de depuración de Android. Puede emitir comandos (incluidos los intentos) a través del puente de depuración. Así que podrías escribir una aplicación que escuche intenciones y usar el puente de depuración para enviar los intentos desde la computadora al dispositivo (siempre que esté conectado a través de USB, teóricamente también es posible usar wifi) –

+0

Esta parece la mejor solución hasta ahora, gracias :) –

1

Verificar this implementation de Microsoft Sync Framework Toolkit. No estoy seguro si está listo todavía.

1

Aunque se supone que los servicios web expuestos no se utilizan, pero puede abrirse/implementarse alguna interfaz/método HTTP en el servidor que se puede llamar para que el dispositivo pase los datos. Puede ser una aplicación web dedicada escrita solo para obtenga los datos de sus dispositivos y esa aplicación se encargará de pasar el contenido al servidor sql.

Con la otra alternativa [que está enganchando el dispositivo], necesita transferir/exportar los datos del dispositivo como archivo en un formato acordado que luego puede ser consumido por la aplicación de servicio/formulario de Windows.

+1

sí, la única forma es mucho trabajo, uso http rest y una última columna de creación/modificación en cada tabla para ahorrar ancho de banda – max4ever

Cuestiones relacionadas