2010-08-16 16 views
12

Actualmente estoy desarrollando una aplicación Field-Service que almacena datos en la base de datos sqlite local en un dispositivo Android. En algún momento, generalmente después de completar las rondas de recolección de datos, el archivo sqlite local db se sincronizará con un servidor sql remoto db en el servidor, también tengo que actualizar alguna tabla local desde el servidor sql db.conéctese al servidor sql desde android

¿Alguna sugerencia acerca de cómo esto podría lograrse o diseñarse como una solución? O incluso mejor, ¿hay alternativas a la sincronización de datos en una aplicación de este tipo?

+0

Incluso estoy haciendo el mismo proyecto, avíseme si obtiene el código funcionando – VenomVendor

Respuesta

18

Creo que lo mejor es utilizar un intermediario como servicios web o su propia capa de lógica basada en TCP para su aplicación que se conectaría al servidor SQL y ejecutaría las solicitudes de su aplicación. No intente conectarse a su servidor SQL directamente desde Android. Puede escribir algún código de back-end en su servidor (o servicio web) y luego llamar a esos métodos de código desde su dispositivo Android utilizando Http.

Y también hay muchos temas en stackoverflow como tu:

acerca de cómo escribir servicios web. Es una gran pregunta, y debes elegir la tecnología, hay muchas bibliotecas, marcos y plataformas que te ayudan a simplemente escribir un servicio web. Debe elegir el protocolo de comunicación, puede ser SOAP, WSDL o tal vez eliminar el procedimiento de llamada, puede ser una aplicación de descanso. Si utiliza la pila de Java, hay algunos marcos populares en este momento:

Se puede empezar por la lectura de lo que es un servicio web es:

también algunos enlaces que proporcionan ejemplo de acceder a los servicios web desde Android:

+1

No estoy seguro de lo que el OP estaba buscando, pero esperaba algunos consejos sobre cómo diseñar un proyecto similar. Intenté usar SOAP pero no pude obtener el análisis XML para trabajar en el marco de Android. Todas las bibliotecas que traté de usar eran difíciles de manejar o dependían de cosas que no podía importar. – Yamikuronue

+0

@Yamikuronue IMHO SOAP es demasiado lento. Estoy utilizando con éxito [Apache Thrift] (http://thrift.apache.org/) en un proyecto SQLite <-> PostgreSQL de sincronización de bases de datos remotas y funciona como un encanto. – m0skit0

0

que tendría que mantener a un servidor en línea de nivel medio. Que puede comunicarse entre su aplicación y MSSQL db. Puede ser servlet o un controlador de solicitud que se sincroniza entre el SQLite y SQL Server db.

0

Otro enfoque mucho más sencillo es utilizar un controlador JDBC virtual que confíe en una arquitectura segura de tres niveles: su código JDBC se envía a través de HTTP a un Servlet remoto que filtra el código JDBC (configuración & de seguridad) antes de pasarlo al controlador MySql JDBC. El resultado se envía de vuelta a través de HTTP.

Existen algunos programas gratuitos que utilizan esta técnica. Solo busque "Controlador JDBC de Android a través de HTTP".

Cuestiones relacionadas