Workshop sobre sincronización de bd SQLlte - MySQL en el ADTG Open Lima.
Las fuentes del proyecto realizado la pueden encontrar aquí :
https://github.com/ameison/kurmi
2. ADTG Open Lima
Caso Práctico de Sincronización
de BD SQLite con MySQL
Armando Meison Chirinos Paredes
mason.xp@gmail.com
@ameison
http://abcdroid.net
Hashtag: #gdevperu
ADTGs - Academic Developer Technology Groups |
3. Sincronización de BD SQLite con MySQL
Objetivos de la sesión:
● Comprender el mecanismo básico del proceso de sincronización.
● Diseñar e implementar una solución básica que nos permita
implementar una solución más compleja.
4. Sincronización de BD SQLite con MySQL
Agenda:
● Caso Práctico: Librería Arco Iris.
● Análisis y Diseño
● Backend (RESTful Web service con Jersey y Tomcat)
○ Creación de la capa de datos.
○ Implementación de RESTful WS, Test
● Frontend (Android)
○ Creación de la capa de datos.
○ Consumiendo WS, Sincronización.
● Ronda de preguntas.
5. Sincronización de BD SQLite con MySQL
Librería Arco Iris: Caso Práctico
La librería Arco Iris (Kurmi en Aymara) en el afán de donar
libros a los colegios más necesitados del país, programa
una campaña de recolección de libros con una duración
de 2 semanas usando como medio el sorteo de un Auto.
En este sorteo participa todo el Perú y el único requisito para poder
participar es donar un libro.
La forma de inscripción es personal, un grupo de apoyo irá de puerta en
puerta invitando al sorteo y en caso la persona acepte la invitación, se le
solicitará el numero de DNI para registrarlo previa entrega del libro.
6. Sincronización de BD SQLite con MySQL
Librería Arco Iris: Caso Práctico
Para lograr el objetivo la librería busca una solución que le permita recibir
en su BD central, la relación de libros registrados por día en c/u de las
provincias del Perú (Es importante que sea enviado lo mas antes).
Desea que sea lo más ágil posible por lo que
considera el uso de un cliente en tablet para
manejar el registro de estos libros.
Considera la posibilidad de trabajar sin internet debido
a las caminatas por parte del equipo de invitación al
sorteo, por ello debe poder almacenarse en una base de
datos dentro del dispositivo móvil.
Considera la posibilidad de que los dispositivos
puedan editar los libros que tiene almacenado
por lo que es necesario posea capacidad de sincronización.
7. Sincronización de BD SQLite con MySQL
Análisis y Diseño :
De la historia descrita anteriormente podemos resaltar:
1. Forma de comunicación, tenemos básicamente 2 opciones a seguir:
Soap o Rest, para nuestro caso elegiremos Rest por :
a. Su sencillez.
b. Para el cliente en android no será necesario el uso de librerías.
2. Sincronización, para mantener sincronizada la tabla, agregaremos los
siguientes campos extras :
a. idDevice : Que representa el identificador único del dispositivo,
con esto sabremos que Tablet creó el registro.
b. idversion: Como si se tratará de un SCV, cada registro mantendrá
un identificador de versión para saber en todo momento si se
tiene la última versión.
c. idMySQL en SQLite y idSQLite en MySQL para saber donde
sincronizar.
10. Sincronización de BD SQLite con MySQL
Backend : Deploy !
Para deployar nuestra app me he apoyado
en CloudBees : http://www.cloudbees.com/
CloudBees es una plataforma como servicio
(Paas) que abarca tanto los servicios de de-
sarrollo como de producción para java, y es
gratuito para proyectos Open Source como
el caso nuestro de la librería Arco Iris (Kurmi).
.