SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Cara melakukan instalasi sistem operasi Windows dan Linux .docx
Cara melakukan instalasi sistem operasi Windows dan Linux .docxCara melakukan instalasi sistem operasi Windows dan Linux .docx
Cara melakukan instalasi sistem operasi Windows dan Linux .docxKartikaJaya3
 
Makalah set instruksi
Makalah set instruksiMakalah set instruksi
Makalah set instruksiratna46
 
Komponen pasif elektronika
Komponen pasif elektronikaKomponen pasif elektronika
Komponen pasif elektronikaIlham Khoir
 
Struktur class dalam java
Struktur class dalam javaStruktur class dalam java
Struktur class dalam javaDewa Yudhi
 
ATP Informatika Siti Maesaroh Fase F.docx.pdf
ATP Informatika Siti Maesaroh Fase F.docx.pdfATP Informatika Siti Maesaroh Fase F.docx.pdf
ATP Informatika Siti Maesaroh Fase F.docx.pdfssusere67dbc
 
Mapa conceptual archivos en java
Mapa conceptual archivos en javaMapa conceptual archivos en java
Mapa conceptual archivos en javaK Manuel TN
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++Fabiola Cortes
 
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filter
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filterRangkaian penyearah gelombang penuh dengan kapasitor sebagai filter
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filterAhmad Mukholik
 
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptx
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptxBAB 6 - ALGORITMA PEMROGRAMAN OK.pptx
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptxFardianFardian4
 
Pembangkit Listrik Tenaga Angin
Pembangkit Listrik Tenaga AnginPembangkit Listrik Tenaga Angin
Pembangkit Listrik Tenaga Anginprihase
 
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...Ivan Petrlik
 
Dasar pembangkit dan pengukuran teknik tegangan tinggi
Dasar pembangkit dan pengukuran teknik tegangan tinggiDasar pembangkit dan pengukuran teknik tegangan tinggi
Dasar pembangkit dan pengukuran teknik tegangan tinggiIndra S Wahyudi
 
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdf
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdfMODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdf
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdfZiraWhiter
 
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...Walid Umar
 

Tendances (20)

Cara melakukan instalasi sistem operasi Windows dan Linux .docx
Cara melakukan instalasi sistem operasi Windows dan Linux .docxCara melakukan instalasi sistem operasi Windows dan Linux .docx
Cara melakukan instalasi sistem operasi Windows dan Linux .docx
 
Makalah set instruksi
Makalah set instruksiMakalah set instruksi
Makalah set instruksi
 
Komponen pasif elektronika
Komponen pasif elektronikaKomponen pasif elektronika
Komponen pasif elektronika
 
Struktur class dalam java
Struktur class dalam javaStruktur class dalam java
Struktur class dalam java
 
ATP Informatika Siti Maesaroh Fase F.docx.pdf
ATP Informatika Siti Maesaroh Fase F.docx.pdfATP Informatika Siti Maesaroh Fase F.docx.pdf
ATP Informatika Siti Maesaroh Fase F.docx.pdf
 
3 way handshake
3 way handshake3 way handshake
3 way handshake
 
Mapa conceptual archivos en java
Mapa conceptual archivos en javaMapa conceptual archivos en java
Mapa conceptual archivos en java
 
1 mikrokontroler-avr1
1  mikrokontroler-avr11  mikrokontroler-avr1
1 mikrokontroler-avr1
 
Sintaxis funciones c++
Sintaxis funciones c++Sintaxis funciones c++
Sintaxis funciones c++
 
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filter
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filterRangkaian penyearah gelombang penuh dengan kapasitor sebagai filter
Rangkaian penyearah gelombang penuh dengan kapasitor sebagai filter
 
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptx
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptxBAB 6 - ALGORITMA PEMROGRAMAN OK.pptx
BAB 6 - ALGORITMA PEMROGRAMAN OK.pptx
 
Topologi jaringan Komputer
Topologi jaringan KomputerTopologi jaringan Komputer
Topologi jaringan Komputer
 
Pembangkit Listrik Tenaga Angin
Pembangkit Listrik Tenaga AnginPembangkit Listrik Tenaga Angin
Pembangkit Listrik Tenaga Angin
 
Kriptografi
KriptografiKriptografi
Kriptografi
 
Makalah Perakitan PC
Makalah Perakitan PCMakalah Perakitan PC
Makalah Perakitan PC
 
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...
 
Dasar pembangkit dan pengukuran teknik tegangan tinggi
Dasar pembangkit dan pengukuran teknik tegangan tinggiDasar pembangkit dan pengukuran teknik tegangan tinggi
Dasar pembangkit dan pengukuran teknik tegangan tinggi
 
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdf
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdfMODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdf
MODUL AJAR INFORMATIKA 1 - BERPIKIR KOMPUTASIONAL.pdf
 
#1 PENGENALAN PYTHON
#1 PENGENALAN PYTHON#1 PENGENALAN PYTHON
#1 PENGENALAN PYTHON
 
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...
MODUL AJAR ADMINISTRASI INFRASTRUKTUR JARINGAN - SWITCHING & ROUTING (PPG TKI...
 

En vedette

Conexion a servidor desde android
Conexion a servidor desde androidConexion a servidor desde android
Conexion a servidor desde androidJose Pablo Ovalle
 
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...Meison Chirinos
 
Escaner para smartphone y tableta.
Escaner para smartphone y tableta.Escaner para smartphone y tableta.
Escaner para smartphone y tableta.Julio Gómez
 
Introducción a TypeScript
Introducción a TypeScriptIntroducción a TypeScript
Introducción a TypeScriptPablo Bouzada
 
TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?TypeScript, ¿la solución definitiva?
TypeScript, ¿la solución definitiva?Pablo Bouzada
 
Arduino y series de datos
Arduino y series de datosArduino y series de datos
Arduino y series de datosVíctor R. Ruiz
 
Antipatrones de desarrollo de software
Antipatrones de desarrollo de softwareAntipatrones de desarrollo de software
Antipatrones de desarrollo de softwarePablo Bouzada
 
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/2017Pablo Ariel Di Loreto
 
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 tristesMicael Gallego
 
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 PHPDavid J. Brenes
 
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 browserMicael Gallego
 

En vedette (20)

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
 
El gran libro de android
El gran libro de androidEl gran libro de android
El gran libro de android
 

Similaire à Sincronización de BD SQLite con MySQL en Android

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 CassandraWladimir Cabarcas
 
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 MirandaSpanishPASSVC
 
base de datos en la web
base de datos en la web base de datos en la web
base de datos en la web luis cedeño
 
Big data y las apis
Big data y  las apis Big data y  las apis
Big data y las apis CloudAppi
 
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 PlatformDQSconsulting
 
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 nivelImanol Iza Martin
 
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 proyectoAptitud Emprendedora
 
Base de datos
Base de datosBase de datos
Base de datosAz
 
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)Blas 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 bancarioDavid Gil Sánchez
 
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 AndroidRicardo Monagas Medina
 
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-2011Gisela Torres
 
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.0Astrid Sanchez Zumaeta
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nubeDAISYQUILLIGANA
 

Similaire à 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