SlideShare una empresa de Scribd logo
1 de 29
Manejo de
Persistencia
UNIDAD 2
¿Qué es persistencia?
Retos de la persistencia en móviles
¿Cómo diseñar la persistencia de datos?
Índice
¿Qué es persistencia?
Retos de la persistencia en móviles
¿Cómo diseñar la persistencia de datos?
Índice
Almacenar los datos de la aplicación
para que estén disponibles al reiniciar
el software
Conceptos básicos
¿Qué es la persistencia?
Las aplicaciones se reinician
La RAM es limitada
Conceptos básicos
¿Por qué es necesaria?
Conceptos básicos
¿Es importante?
La persistencia suele ser imprescindible
para el correcto funcionamiento de las
aplicaciones
Conceptos básicos
¿Es LO MÁS importante?
NO. Lo más importante son las reglas
de negocio de los usuarios/clientes
¿Entonces por qué muchas veces empezamos
diseñando e implementando la base de datos?
Conceptos básicos
¿Cómo persistir los datos?
Al usuario/cliente probablemente no le interese
BBDD NoSQL
BBDD
Relacionales
Archivos
Binarios
XML
CSV
Almacenamiento Cloud
Servicios Web
Conceptos básicos
¿Cómo persistir los datos?
¿Cómo podemos persistir en Android?
 Preferencias
 Parejas: clave -> valor
 Configuraciones, recordar acciones, etc.
 Almacenamiento de archivos
 Almacenamiento interno o externo
 Archivos arbitrarios (imágenes, json, xml, texto, binarios, etc.)
 Datos estructurados
 Base de datos SQL
 Colecciones de datos estructurados y relacionados
Tipo de Persistencia
¿Cómo realizar la persistencia en móvil?
 Almacenamiento en el propio móvil
 Especio limitado. Acceso rápido. Alto coste consultas complejas
1.- Local
Tipo de Persistencia
¿Cómo realizar la persistencia en móvil?
 El móvil sólo muestra datos, que lee de un servidor
 Cada acceso a datos requiere un consulta
 Alta latencia. Muy sensible a desconexiones
2.- Remota en un servidor
Tipo de Persistencia
¿Cómo realizar la persistencia en móvil?
 Copia local de alguna información del servidor
 Comunicación con el servidor para sincronizar
 Funcional (más o menos) desconectado. Latencia según acierto.
3.- Mix (Cacheo/Hoarding)
¿Qué es persistencia?
Retos de la persistencia en móviles
¿Cómo diseñar la persistencia de datos?
Mecanismos de persistencia de datos en Android
SQLite
ORMLite
Parse
Servicios REST
Índice
Retos
Espacio limitado
Almacenamiento local
 Memoria interna/Memoria externa
 Varios GB (no está mal)
Seleccionar datos a persistir
Retos
Computación y memoria limitada
Consultas complejas lentas
 Mejor preprocesar datos en el servidor
 Desnormalizar BBDD si es posible
Alto consumo de batería
Retos
Restricciones de comunicación
Dificultad para sincronizar
 Minimizar número de conexiones
 Sólo datos relevantes para la aplicación
 Sólo modificaciones a los datos
 Preprocesar datos
Retos
Desconexiones habituales
Modo off-line. ¿Qué ocurre?
 No funciona nada
 Funcionamiento limitado (sólo lectura)
 Funcionamiento completo (conflictos)
Recuperación conexión
 Sincronización de datos
 Resolución de conflictos
¿Qué es persistencia?
Retos de la persistencia en móviles
¿Cómo diseñar la persistencia de datos?
Índice
El camino sin reflexionar
Diseñar y crear la BBDD
Escribir SQL donde haga falta leer o modificar datos
Utilizar cursores para recorrer los resultados
Con el paso del tiempo
¿Y si cambio el nombre o tipo de una columna?
¿Y si añado una tabla nueva?
¿Y si cambio BBDD local por servicios web externos?
Diseño de la persistencia
Originario del ámbito J2EE
Aplicable a cualquier tipo de software OO
Patron DAO
Data Access Object
Patrón DAO
¿Qué es?
Interfaz con métodos de persistencia para Bussiness Objects
Independiente del mecanismo de persistencia (BBDD, XML, Servicios
Web, etc.)
Sólo entran y salen Bussiness Objects y tipos primitivos
Excepciones independientes de la persistencia
Patrón DAO
¿Qué es?
Entran y salen objetos, pero la lógica de la aplicación no
sabe cómo se guardan
Patrón DAO
Beneficios e Inconvenientes
Beneficios
Separación lógica aplicación y gestión persistencia
Evolución/Migración persistencia sin cambiar lógica aplicación
Centralización de las tareas de persistencia (mejor mantenimiento)
Inconvenientes
Capa extra quizá innecesaria en aplicaciones pequeñas
Mueve objetos enteros -> Sobrecarga (si no se diseña bien)
Dificulta integración con frameworks ActiveRecord u ORM
Patrón DAO
Estructura habitual
Un objeto DAO por Bussiness Object/Tabla
Métodos habituales en el interfaz
List<BO> getAll() / findAll()
BO getById(Long id) / findById(Long id)
insert(BO theObject)
delete(BO
theObject)
update(BO
theObject)
Y todos los que hagan falta….
Patrón DAO
Métodos Genéricos vs Métodos Específicos
Ejemplo: Aplicación tipo Google Calendar (vista calendario + vista detalle)
Métodos genéricos
List<Event> getAllEvents()
Event insertEvent(Event e)
Event updateEvent(Event e)
Métodos genéricos
List<Event> getAllEventsWithScheduleInfo()
updateScheduleInfo(long eventId, Date start, Date end)
Event insertEvent(String title, Date start, Date
end)
Event getEventWithDetailnfo()
Event updateEvent(Event e)
DAO permite varias persistencias. ¿Para qué?
Conectado vs Desconectado
Desarrollo vs Producción
Lite vs Premium
Conexión rápida vs Conexión lenta
¿Cómo cambiar entre persistencias?
UsuariosDAO usuariosDAO = new UsuariosSQliteDAO();
UsuariosDAO usuariosDAO = new UsuariosRESTDAO();
¡Disperso por toda la aplicación!
¿Cómo cambiar de persistencia?
Patrón DAO
Abstract Factory Pattern
Factoría -> encargado de crear objetos
Agrupar y encapsular factorías individuales (una por DAO)
Patrón DAO
Abstract Factory Pattern
La persistencia es un detalle (importante)
Varias opciones/tecnologías de implementación
Elija una, pero no hipoteques tu futuro
Mecanismos de Persistencia en Android
Conclusiones

Más contenido relacionado

Similar a Manejo persistencia

Bases de Datos - Parte 1/10 Introducción
Bases de Datos - Parte 1/10 IntroducciónBases de Datos - Parte 1/10 Introducción
Bases de Datos - Parte 1/10 IntroducciónCarlos Castillo (ChaTo)
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datosmanuel
 
Disponibilidad de datos
Disponibilidad de datosDisponibilidad de datos
Disponibilidad de datosUTN
 
Fundamentos de los Gestores de Bases de Datos
Fundamentos de los Gestores de Bases de DatosFundamentos de los Gestores de Bases de Datos
Fundamentos de los Gestores de Bases de DatosManuel Picazo
 
Bd conceptos basicos
Bd conceptos basicosBd conceptos basicos
Bd conceptos basicoslorenargdl
 
Base de datos de aldo estrada torres
Base de datos de aldo estrada torresBase de datos de aldo estrada torres
Base de datos de aldo estrada torresAldo Estrada Torres
 
Base de Datos
Base de DatosBase de Datos
Base de DatosKathev
 
Introducción a ORMs
Introducción a ORMsIntroducción a ORMs
Introducción a ORMsmaxfontana90
 
Informatica Base de datos
Informatica Base de datosInformatica Base de datos
Informatica Base de datosPaula Ramirez
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
Introduccion bases de datos
Introduccion bases de datosIntroduccion bases de datos
Introduccion bases de datosUTN
 
MySql, ¿Por qué, cuándo y cómo?
MySql, ¿Por qué, cuándo y cómo?MySql, ¿Por qué, cuándo y cómo?
MySql, ¿Por qué, cuándo y cómo?Emilio Garcia
 
Bases de datos.docx kethy
Bases de datos.docx kethyBases de datos.docx kethy
Bases de datos.docx kethyKethyVasquez
 
Ensayo bases de datos DAMARIS
Ensayo bases de datos DAMARISEnsayo bases de datos DAMARIS
Ensayo bases de datos DAMARISliliananaa
 

Similar a Manejo persistencia (20)

Bases de Datos - Parte 1/10 Introducción
Bases de Datos - Parte 1/10 IntroducciónBases de Datos - Parte 1/10 Introducción
Bases de Datos - Parte 1/10 Introducción
 
Tipos de Bases de Datos
Tipos de Bases de DatosTipos de Bases de Datos
Tipos de Bases de Datos
 
Modelado de datos
Modelado de datosModelado de datos
Modelado de datos
 
Disponibilidad de datos
Disponibilidad de datosDisponibilidad de datos
Disponibilidad de datos
 
Fundamentos de los Gestores de Bases de Datos
Fundamentos de los Gestores de Bases de DatosFundamentos de los Gestores de Bases de Datos
Fundamentos de los Gestores de Bases de Datos
 
Bd conceptos basicos
Bd conceptos basicosBd conceptos basicos
Bd conceptos basicos
 
Base de datos de aldo estrada torres
Base de datos de aldo estrada torresBase de datos de aldo estrada torres
Base de datos de aldo estrada torres
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Introducción a ORMs
Introducción a ORMsIntroducción a ORMs
Introducción a ORMs
 
Informatica Base de datos
Informatica Base de datosInformatica Base de datos
Informatica Base de datos
 
Concepto de bd
Concepto de bdConcepto de bd
Concepto de bd
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
Clase 1
Clase 1Clase 1
Clase 1
 
bases de datos
bases de datosbases de datos
bases de datos
 
Introduccion bases de datos
Introduccion bases de datosIntroduccion bases de datos
Introduccion bases de datos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
MySql, ¿Por qué, cuándo y cómo?
MySql, ¿Por qué, cuándo y cómo?MySql, ¿Por qué, cuándo y cómo?
MySql, ¿Por qué, cuándo y cómo?
 
Bases de datos.docx kethy
Bases de datos.docx kethyBases de datos.docx kethy
Bases de datos.docx kethy
 
1. introducción
1. introducción1. introducción
1. introducción
 
Ensayo bases de datos DAMARIS
Ensayo bases de datos DAMARISEnsayo bases de datos DAMARIS
Ensayo bases de datos DAMARIS
 

Más de Fernando Solis

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
BÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CBÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CFernando Solis
 
Almacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraAlmacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraFernando Solis
 
Entrada y salida de datos
Entrada y salida de datosEntrada y salida de datos
Entrada y salida de datosFernando Solis
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y ConcatenacionFernando Solis
 
Lectura de datos de cadena
Lectura de datos de cadenaLectura de datos de cadena
Lectura de datos de cadenaFernando Solis
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Fernando Solis
 
Archivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoArchivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoFernando Solis
 
DEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSDEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSFernando Solis
 
Declaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaDeclaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaFernando Solis
 
Comparacion de arreglos Strings
Comparacion de arreglos StringsComparacion de arreglos Strings
Comparacion de arreglos StringsFernando Solis
 
Acceso en tipos de datos abstractos
Acceso en tipos de datos abstractosAcceso en tipos de datos abstractos
Acceso en tipos de datos abstractosFernando Solis
 
Arreglo Orden Seleccion
Arreglo  Orden SeleccionArreglo  Orden Seleccion
Arreglo Orden SeleccionFernando Solis
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de BusquedaFernando Solis
 

Más de Fernando Solis (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
AULA INVERTIDA.pdf
AULA INVERTIDA.pdfAULA INVERTIDA.pdf
AULA INVERTIDA.pdf
 
Subcadenas-en-C
Subcadenas-en-CSubcadenas-en-C
Subcadenas-en-C
 
BÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN CBÚSQUEDA DE SUBCADENAS EN C
BÚSQUEDA DE SUBCADENAS EN C
 
Almacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructuraAlmacenamiento de informacion en una estructura
Almacenamiento de informacion en una estructura
 
Entrada y salida de datos
Entrada y salida de datosEntrada y salida de datos
Entrada y salida de datos
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y Concatenacion
 
Lectura de datos de cadena
Lectura de datos de cadenaLectura de datos de cadena
Lectura de datos de cadena
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
 
Archivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de TextoArchivos Binarios vs Archivos de Texto
Archivos Binarios vs Archivos de Texto
 
DEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGSDEFINICION DE CADENAS O STRINGS
DEFINICION DE CADENAS O STRINGS
 
Declaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadenaDeclaración e inicialización de variables de tipo cadena
Declaración e inicialización de variables de tipo cadena
 
Conversion de Strings
Conversion de StringsConversion de Strings
Conversion de Strings
 
Comparacion de arreglos Strings
Comparacion de arreglos StringsComparacion de arreglos Strings
Comparacion de arreglos Strings
 
Cadenas y/o strings
Cadenas y/o stringsCadenas y/o strings
Cadenas y/o strings
 
Asignacion
AsignacionAsignacion
Asignacion
 
Acceso en tipos de datos abstractos
Acceso en tipos de datos abstractosAcceso en tipos de datos abstractos
Acceso en tipos de datos abstractos
 
Arreglo Orden Seleccion
Arreglo  Orden SeleccionArreglo  Orden Seleccion
Arreglo Orden Seleccion
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...JAVIER SOLIS NOYOLA
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 

Último (20)

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 

Manejo persistencia

  • 2. ¿Qué es persistencia? Retos de la persistencia en móviles ¿Cómo diseñar la persistencia de datos? Índice
  • 3. ¿Qué es persistencia? Retos de la persistencia en móviles ¿Cómo diseñar la persistencia de datos? Índice
  • 4. Almacenar los datos de la aplicación para que estén disponibles al reiniciar el software Conceptos básicos ¿Qué es la persistencia?
  • 5. Las aplicaciones se reinician La RAM es limitada Conceptos básicos ¿Por qué es necesaria?
  • 6. Conceptos básicos ¿Es importante? La persistencia suele ser imprescindible para el correcto funcionamiento de las aplicaciones
  • 7. Conceptos básicos ¿Es LO MÁS importante? NO. Lo más importante son las reglas de negocio de los usuarios/clientes ¿Entonces por qué muchas veces empezamos diseñando e implementando la base de datos?
  • 8. Conceptos básicos ¿Cómo persistir los datos? Al usuario/cliente probablemente no le interese BBDD NoSQL BBDD Relacionales Archivos Binarios XML CSV Almacenamiento Cloud Servicios Web
  • 9. Conceptos básicos ¿Cómo persistir los datos? ¿Cómo podemos persistir en Android?  Preferencias  Parejas: clave -> valor  Configuraciones, recordar acciones, etc.  Almacenamiento de archivos  Almacenamiento interno o externo  Archivos arbitrarios (imágenes, json, xml, texto, binarios, etc.)  Datos estructurados  Base de datos SQL  Colecciones de datos estructurados y relacionados
  • 10. Tipo de Persistencia ¿Cómo realizar la persistencia en móvil?  Almacenamiento en el propio móvil  Especio limitado. Acceso rápido. Alto coste consultas complejas 1.- Local
  • 11. Tipo de Persistencia ¿Cómo realizar la persistencia en móvil?  El móvil sólo muestra datos, que lee de un servidor  Cada acceso a datos requiere un consulta  Alta latencia. Muy sensible a desconexiones 2.- Remota en un servidor
  • 12. Tipo de Persistencia ¿Cómo realizar la persistencia en móvil?  Copia local de alguna información del servidor  Comunicación con el servidor para sincronizar  Funcional (más o menos) desconectado. Latencia según acierto. 3.- Mix (Cacheo/Hoarding)
  • 13. ¿Qué es persistencia? Retos de la persistencia en móviles ¿Cómo diseñar la persistencia de datos? Mecanismos de persistencia de datos en Android SQLite ORMLite Parse Servicios REST Índice
  • 14. Retos Espacio limitado Almacenamiento local  Memoria interna/Memoria externa  Varios GB (no está mal) Seleccionar datos a persistir
  • 15. Retos Computación y memoria limitada Consultas complejas lentas  Mejor preprocesar datos en el servidor  Desnormalizar BBDD si es posible Alto consumo de batería
  • 16. Retos Restricciones de comunicación Dificultad para sincronizar  Minimizar número de conexiones  Sólo datos relevantes para la aplicación  Sólo modificaciones a los datos  Preprocesar datos
  • 17. Retos Desconexiones habituales Modo off-line. ¿Qué ocurre?  No funciona nada  Funcionamiento limitado (sólo lectura)  Funcionamiento completo (conflictos) Recuperación conexión  Sincronización de datos  Resolución de conflictos
  • 18. ¿Qué es persistencia? Retos de la persistencia en móviles ¿Cómo diseñar la persistencia de datos? Índice
  • 19. El camino sin reflexionar Diseñar y crear la BBDD Escribir SQL donde haga falta leer o modificar datos Utilizar cursores para recorrer los resultados Con el paso del tiempo ¿Y si cambio el nombre o tipo de una columna? ¿Y si añado una tabla nueva? ¿Y si cambio BBDD local por servicios web externos? Diseño de la persistencia
  • 20. Originario del ámbito J2EE Aplicable a cualquier tipo de software OO Patron DAO Data Access Object
  • 21. Patrón DAO ¿Qué es? Interfaz con métodos de persistencia para Bussiness Objects Independiente del mecanismo de persistencia (BBDD, XML, Servicios Web, etc.) Sólo entran y salen Bussiness Objects y tipos primitivos Excepciones independientes de la persistencia
  • 22. Patrón DAO ¿Qué es? Entran y salen objetos, pero la lógica de la aplicación no sabe cómo se guardan
  • 23. Patrón DAO Beneficios e Inconvenientes Beneficios Separación lógica aplicación y gestión persistencia Evolución/Migración persistencia sin cambiar lógica aplicación Centralización de las tareas de persistencia (mejor mantenimiento) Inconvenientes Capa extra quizá innecesaria en aplicaciones pequeñas Mueve objetos enteros -> Sobrecarga (si no se diseña bien) Dificulta integración con frameworks ActiveRecord u ORM
  • 24. Patrón DAO Estructura habitual Un objeto DAO por Bussiness Object/Tabla Métodos habituales en el interfaz List<BO> getAll() / findAll() BO getById(Long id) / findById(Long id) insert(BO theObject) delete(BO theObject) update(BO theObject) Y todos los que hagan falta….
  • 25. Patrón DAO Métodos Genéricos vs Métodos Específicos Ejemplo: Aplicación tipo Google Calendar (vista calendario + vista detalle) Métodos genéricos List<Event> getAllEvents() Event insertEvent(Event e) Event updateEvent(Event e) Métodos genéricos List<Event> getAllEventsWithScheduleInfo() updateScheduleInfo(long eventId, Date start, Date end) Event insertEvent(String title, Date start, Date end) Event getEventWithDetailnfo() Event updateEvent(Event e)
  • 26. DAO permite varias persistencias. ¿Para qué? Conectado vs Desconectado Desarrollo vs Producción Lite vs Premium Conexión rápida vs Conexión lenta ¿Cómo cambiar entre persistencias? UsuariosDAO usuariosDAO = new UsuariosSQliteDAO(); UsuariosDAO usuariosDAO = new UsuariosRESTDAO(); ¡Disperso por toda la aplicación! ¿Cómo cambiar de persistencia?
  • 27. Patrón DAO Abstract Factory Pattern Factoría -> encargado de crear objetos Agrupar y encapsular factorías individuales (una por DAO)
  • 29. La persistencia es un detalle (importante) Varias opciones/tecnologías de implementación Elija una, pero no hipoteques tu futuro Mecanismos de Persistencia en Android Conclusiones