Actualizando una base de datos local desde un servidor remoto - Parte I

















Introducción 

En este artículo vamos a ver como actualizar una base de datos local descargándola de un servidor Web remoto.

Lo primera pregunta es ¿donde utilizar este enfoque? 

En ocasiones tenemos una aplicación mobile que utiliza una base de datos en modo de solo lectura. Es decir, los usuarios no actualizan la información contenida en la base de datos, solo la consumen.

Esta base de datos a lo largo de la vida de la aplicación, tiene una información que se actualiza con el tiempo.

Pongamos el ejemplo de una lista de los 10 mejores restaurantes de la ciudad de Madrid. Esta perfectamente claro que aunque alguien haga el ranking de los mejores restaurantes , el llevar esta información a una aplicación de móvil cumple con las siguientes características:

  • El usuario no decide cuál es el mejor restaurante, quien elabora el ranking asume esa responsabilidad
  • El listado de los mejores restaurantes solo se puede consultar, no se puede modificar ni borrar
  • El ranking de los mejores restaurantes se elabora siguiendo una serie de posibles criterios que transcurren en el tiempo (calidad de la comida, decoración, ambiente, calidad del servicio, etc.) Esto quiere decir que no es probable que esta lista cambie ni diaria ni semanalmente. Como mínimo para que sea seria deberíamos elaborarla o actualizarla todos los meses
  • La base de datos que contenga la lista de restaurantes, será actualizada todos los meses en todos los terminales móviles que ejecuten nuestra aplicación
El uso de una base de datos local actualizada de manera remota tiene una serie de importantes ventajas prácticas:

  • La información puede ser consultada de manera offline. Cuando no estamos conectados, los usuarios pueden ver en zonas sin cobertura (haciendo un picnic en el campo o en una estación de metro) a que restaurante van a cenar hoy por la noche.
  • Disminuye el tráfico de red. Solo descargamos la información una vez al mes o cuando haga falta actualizarla. Si lo hacemos mensual, el ancho de banda contratado solo se afecta una vez. Por ejemplo si tenemos una base de datos de 100 MB y un contrato de 1 GB (1024 MB) de transferencia mensual, esta aplicación consumiría esta cantidad una vez al mes dejando unos 924 MB para el resto de las aplicaciones.
  • Velocidad en las consultas. Las consultas a la información guardada son muy rápidas porque solo dependen de la potencia del terminal donde se está ejecutando nuestra aplicación. Muchos smartphones de última generación incluyen procesadores de 2 ó 4 núcleos y más de 512 MB de memoria operativa, más que suficientes para una aplicación de base de datos.
 Entre las desventajas de este enfoque están:
  •  La información no tiene una actualización inmediata. Si un restaurante cierra hoy o cambia de nombre o de dueño, los cambios no se reflejan hasta la próxima actualización de la base de datos
  • Pérdida de rendimiento.Si el volumen de información es muy grande, el rendimiento de la base de datos local puede malo al intentar recuperar datos entre miles o millones de registros
  • Descargas muy grandes que consumen mucho ancho de banda.La descarga de bases de datos locales muy grandes puede obligarnos a solo descargarlas conectados a una red Wi-Fi (muchas aplicaciones y juegos ya nos obligan a ello por el tamaño de los datos que se descargan en local)
En este artículo, y perdonando los rankings oficiales o de preferencia de muchos usuarios, utilicé una lista de los mejores restaurantes de Madrid tomada de la página http://worldtop7.com/best-restaurants/Madrid/Spain/Europe a día de hoy.

Lo importante es disponer de una información que no varíe mucho, que pueda actualizarse mensualmente y desplegarse en una base de datos dentro de una aplicación mobile.

0 comentarios:

Publicar un comentario

Entrada más reciente Entrada antigua Inicio