El 80% del tiempo que un usuario pasa conectado lo hace a través de su dispositivo móvil. ¿La consecuencia? Que las empresas han cambiado su concepción de negocio y han tenido que destinar más esfuerzo en movilidad para adaptarse a estos cambios de consumo, para no quedarse atrás y satisfacer con éxito las necesidades de sus clientes.

Parte de este esfuerzo se dirige al almacenamiento y explotación de los datos que cada usuario genera con cada acción que realiza desde su dispositivo. Esto nos obliga a pensar en mejores soluciones que sincronicen a los usuarios con su propia información. Y aquí es donde las bases de datos NoSQL pueden ayudarnos.

Si has afrontado este reto, sabrás que los sistemas móviles más comunes (iOS, Android o Windows Phone) ofrecen soluciones orientadas a diseñar el producto y que no han evolucionado tan rápido como el mercado o las necesidades de los propios clientes.

Algo muy similar ocurre con tecnologías híbridas, como Apache Cordova, basadas en HTML 5 y sus sistemas de almacenamiento local. Nos obligan a mantener una gestión activa de los datos añadiendo complejidad y esfuerzo en tiempo de desarrollo.

¿Qué soluciones podemos adoptar?

Debido a este incremento del uso de dispositivos móviles, la forma en la que se interactúa con ellos ha evolucionado y el usuario se ha vuelto más exigente queriendo disfrutar de una aplicación incluso sin tener conexión a Internet. El enfoque tradicional es monitorizar el estado de la conexión y habilitar o deshabilitar ciertas acciones en base a éste.

¿No sería ideal utilizar una tecnología que sea similar a la que utilizan los servicios a los que éstos se conectan y que enmascare la conectividad del dispositivo? Precisamente ante esta pregunta, Couchbase responde con Couchbase Mobile, un conjunto de herramientas que nos permiten mantener sincronizada la información entre dispositivos y servidores de manera sencilla y desatendida.

couchbase

¿Cómo funciona Couchbase Mobile?

En los dispositivos móviles se utiliza una versión de Couchbase reducida, llamada Couchbase Lite. El nombre no debe llevarnos a confusión, podemos utilizar las típicas operaciones CRUD (Create, Read, Update y Delete), pero también ejecutar operaciones sobre Vistas e Índices. Incluso ejecutar operaciones MapReduce, lo que nos da toda la potencia de una base de datos en la palma de nuestra mano.

Todas las operaciones que se realicen, se ejecutarán en el dispositivo sobre su juego de datos aprovechando las capacidades de procesamiento de los terminales.

A esto hay que sumarle que, en todo momento, el usuario va a tener una copia de la información actualizada en su dispositivo, por lo que la experiencia de usuario será plenamente satisfactoria, no tiene por qué experimentar incómodos tiempos de espera entre operaciones ni ver eternos iconos de loading.

Para conseguir sincronizar los datos, Couchbase se apoya en Sync Gateway, otro de sus productos, un componente que está en constante comunicación entre los diferentes dispositivos y el servidor Couchbase Server del cual debe obtener la información.

couchbase-mobile

La manera en la que la sincronización se lleva a cabo es mediante reglas sobre canales y autorización sobre los documentos. De este modo, conseguimos reducir la transferencia de información dado que cada dispositivo tiene la información que necesita. Por otro lado, e igualmente importante, se asegura que la información que se sincroniza le pertenece a dicho dispositivo y sólo a ese.

Otro de los puntos fuertes de esta tecnología es la posibilidad de utilizarla en múltiples plataformas, desde iOS a Android, pasando por .NET de manera nativa hasta plataformas híbridas como PhoneGap (Apache Cordova). Podrás hacer uso de Couchbase Lite en cualquiera de estas plataformas incluso sin utilizar Sync Gateway, ya que utiliza una copia de los datos que tienes en el dispositivo. Esto hace que si tu aplicación no requiere de información adicional, puede trabajar aislada con un producto tan potente como este, en lugar de Sqlite o algo similar que en muchas ocasiones resulta escaso e insuficiente.

Casos de uso

Imagina que tienes una aplicación de viajes en la que quieres centralizar todos tus tickets, reservas y billetes de avión. ¿Qué mejor manera de hacerlo que utilizando Couchbase Mobile? De esta manera tienes acceso a toda tu información de viaje aun estando sin conexión en el país de destino de una manera muy sencilla.

Podrías consultar tu agenda de viaje para visitar monumentos, acceder a los horarios de trenes y vuelos que debes coger; consultar direcciones o rutas para conocer la ciudad… Y aún mejor, podrías interactuar con los datos, no sólo consultarlos. Por ejemplo, marcar como vistos los lugares que ya has visitado, o los vuelos cogidos. Todo ello sin preocuparte de tener conexión a Internet.

NoSQL

¿Cómo crees que se podría gestionar una aplicación con puntos de interés distribuidos geográficamente? ¿Y si en lugar de POIs (Points of Interest) te digo Pokémon o PokeStations?

Efectivamente, es otro caso de uso en el que se pueden sincronizar los Pokémon que aparecen a tu alrededor y los puntos de interés con su información sin tener que estar recurriendo continuamente a la información del servidor.

La manera más extendida de hacer esto suele ser a través de mecanismos de polling o escucha activa. No obstante, eso requiere un esfuerzo dedicado y una manera de programar diferente. Con Sync Gateway delegamos esta labor a la propia solución de arquitectura elegida.

Como ves, los beneficios asociados a esta tecnología son numerosos y muy relevantes:

Como decimos éste no es el principal producto de Couchbase, pero presenta una clara ventaja ante cierto tipo de proyectos. Es una tecnología que merece la pena tener en mente cuando nos enfrentemos a un nuevo proyecto de estas características en el que es necesario maximizar la experiencia de usuario móvil relativa al a acceso a datos.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.