SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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 |
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.
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.
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.
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.
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.
Sincronización de BD SQLite con MySQL


Backend : Tabla 'Libros' en MySQL

.
Sincronización de BD SQLite con MySQL


Backend : Estructura de directorios

.
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).




.
Sincronización de BD SQLite con MySQL


Frontend: Tabla 'Libros' en SQLite

.
Sincronización de BD SQLite con MySQL


Frontend : Estructura de directorios

.
Sincronización de BD SQLite con MySQL


    ●   Frontend : Interfaz de Usuario
         ○ Agregar Libro
         ○ Lista de Libros




.
Sincronización de BD SQLite con MySQL




             ¿Preguntas?


.
Mi blog : http://abcdroid.net

Mais conteúdo relacionado

Mais procurados

Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Sergio Sanchez
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
laura1352
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Estructura de la E/S
Estructura de la E/SEstructura de la E/S
Estructura de la E/S
caltamirano
 
Protocolo de enrutamiento
Protocolo de enrutamientoProtocolo de enrutamiento
Protocolo de enrutamiento
Stuart Guzman
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
Daniela Velasquez
 

Mais procurados (20)

Modelo osi
Modelo osiModelo osi
Modelo osi
 
RMI
RMIRMI
RMI
 
Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1Arquitecturas de software - Parte 1
Arquitecturas de software - Parte 1
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Trazabilidad En Proyectos De Software
Trazabilidad En Proyectos De SoftwareTrazabilidad En Proyectos De Software
Trazabilidad En Proyectos De Software
 
Seguridad en los Sistemas Distribuidos
Seguridad en los Sistemas DistribuidosSeguridad en los Sistemas Distribuidos
Seguridad en los Sistemas Distribuidos
 
Application layer protocol - Electronic Mail
Application layer protocol - Electronic MailApplication layer protocol - Electronic Mail
Application layer protocol - Electronic Mail
 
Computación Grid (PRP)
Computación Grid (PRP)Computación Grid (PRP)
Computación Grid (PRP)
 
Ingenieria software ejemplo
Ingenieria software ejemploIngenieria software ejemplo
Ingenieria software ejemplo
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Estructura de la E/S
Estructura de la E/SEstructura de la E/S
Estructura de la E/S
 
Cryptographic Security
Cryptographic SecurityCryptographic Security
Cryptographic Security
 
Arquitectura de Software
Arquitectura de SoftwareArquitectura de Software
Arquitectura de Software
 
Protocolo de enrutamiento
Protocolo de enrutamientoProtocolo de enrutamiento
Protocolo de enrutamiento
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
 
Protocolos de la capa de transporte
Protocolos de la capa de transporteProtocolos de la capa de transporte
Protocolos de la capa de transporte
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
20101014 seguridad perimetral
20101014 seguridad perimetral20101014 seguridad perimetral
20101014 seguridad perimetral
 

Destaque

Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScript
Pablo Bouzada
 
TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
Pablo Bouzada
 

Destaque (20)

CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...CONEXION A  LA BASE DE DATOS  SQLITE A TRAVES DE UNA APLICACION  MOVIL  ANDRO...
CONEXION A LA BASE DE DATOS SQLITE A TRAVES DE UNA APLICACION MOVIL ANDRO...
 
Conexion a servidor desde android
Conexion a servidor desde androidConexion a servidor desde android
Conexion a servidor desde android
 
Web sql
Web sqlWeb sql
Web sql
 
Introducción al desarrollo de aplicaciones móviles con Android enfocado a emp...
Introducción al desarrollo de aplicaciones móviles con Android enfocado a emp...Introducción al desarrollo de aplicaciones móviles con Android enfocado a emp...
Introducción al desarrollo de aplicaciones móviles con Android enfocado a emp...
 
Escaner para smartphone y tableta.
Escaner para smartphone y tableta.Escaner para smartphone y tableta.
Escaner para smartphone y tableta.
 
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-GenymotionInstalacion-y-Configuracion-de-Android-Studio-con-Genymotion
Instalacion-y-Configuracion-de-Android-Studio-con-Genymotion
 
Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScript
 
TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?
 
Json short manual
Json short manualJson short manual
Json short manual
 
Easy Program with AppInventor and MySQL
Easy Program with AppInventor and MySQLEasy Program with AppInventor and MySQL
Easy Program with AppInventor and MySQL
 
Arduino y series de datos
Arduino y series de datosArduino y series de datos
Arduino y series de datos
 
Antipatrones de desarrollo de software
Antipatrones de desarrollo de softwareAntipatrones de desarrollo de software
Antipatrones de desarrollo de software
 
Visual Studio | Lanzamiento VS2017 en Buenos Aires - 11/03/2017
Visual Studio | Lanzamiento VS2017 en Buenos Aires - 11/03/2017Visual Studio | Lanzamiento VS2017 en Buenos Aires - 11/03/2017
Visual Studio | Lanzamiento VS2017 en Buenos Aires - 11/03/2017
 
Primer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android StudioPrimer Ejemplo de Proyecto en Android Studio
Primer Ejemplo de Proyecto en Android Studio
 
The Motives for a Mob
The Motives for a MobThe Motives for a Mob
The Motives for a Mob
 
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristesTypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Cero a app en una hora
Cero a app en una horaCero a app en una hora
Cero a app en una hora
 
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browserTypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
TypeScript para Javeros. Por fin un lenguaje 'de verdad' en el browser
 

Semelhante a Sincronización de BD SQLite con MySQL en Android

Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011
Gisela Torres
 

Semelhante a Sincronización de BD SQLite con MySQL en Android (20)

Descubriendo windows azure
Descubriendo windows azureDescubriendo windows azure
Descubriendo windows azure
 
NoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache CassandraNoSQL: Un Cambio de Paradigma - Apache Cassandra
NoSQL: Un Cambio de Paradigma - Apache Cassandra
 
Escalando con SQL Server hasta la nube, un trayecto necesario - Adrian Miranda
Escalando con SQL Server hasta la nube, un trayecto necesario - Adrian MirandaEscalando con SQL Server hasta la nube, un trayecto necesario - Adrian Miranda
Escalando con SQL Server hasta la nube, un trayecto necesario - Adrian Miranda
 
base de datos en la web
base de datos en la web base de datos en la web
base de datos en la web
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis
 
Agiliza tus procesos de negocio con Microsoft Power Platform
Agiliza tus procesos de negocio con Microsoft Power PlatformAgiliza tus procesos de negocio con Microsoft Power Platform
Agiliza tus procesos de negocio con Microsoft Power Platform
 
Tema 5
Tema 5Tema 5
Tema 5
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
Arquitectura De Versant
Arquitectura De VersantArquitectura De Versant
Arquitectura De Versant
 
La importancia del frontend y backend en un proyecto
La importancia del frontend y backend en un proyectoLa importancia del frontend y backend en un proyecto
La importancia del frontend y backend en un proyecto
 
Base de datos
Base de datosBase de datos
Base de datos
 
Administracion de base de datos (blas gianpierre balarezo renteria)
Administracion de base de datos   (blas gianpierre balarezo renteria)Administracion de base de datos   (blas gianpierre balarezo renteria)
Administracion de base de datos (blas gianpierre balarezo renteria)
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
 
CouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones AndroidCouchDB y el desarrollo de aplicaciones Android
CouchDB y el desarrollo de aplicaciones Android
 
Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011Descubriendo Windows Azure Platform 16-02-2011
Descubriendo Windows Azure Platform 16-02-2011
 
Presentación taller aplicaciones
Presentación  taller aplicacionesPresentación  taller aplicaciones
Presentación taller aplicaciones
 
SGBD - Tecnologias usadas por aplicaciones web 2.0
SGBD - Tecnologias usadas por aplicaciones web 2.0SGBD - Tecnologias usadas por aplicaciones web 2.0
SGBD - Tecnologias usadas por aplicaciones web 2.0
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Especialista Web J4
Especialista Web   J4Especialista Web   J4
Especialista Web J4
 

Sincronización de BD SQLite con MySQL en Android

  • 1.
  • 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.
  • 8. Sincronización de BD SQLite con MySQL Backend : Tabla 'Libros' en MySQL .
  • 9. Sincronización de BD SQLite con MySQL Backend : Estructura de directorios .
  • 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). .
  • 11. Sincronización de BD SQLite con MySQL Frontend: Tabla 'Libros' en SQLite .
  • 12. Sincronización de BD SQLite con MySQL Frontend : Estructura de directorios .
  • 13. Sincronización de BD SQLite con MySQL ● Frontend : Interfaz de Usuario ○ Agregar Libro ○ Lista de Libros .
  • 14. Sincronización de BD SQLite con MySQL ¿Preguntas? .
  • 15. Mi blog : http://abcdroid.net