Publicado en
Autor
La movilidad ha llegado a los sistema informáticos empresariales. Prácticamente todas las empresas tienen la necesidad de brindar acceso a sus sistemas desde dispositivos móviles.
Los desarrolladores de estas aplicaciones móviles requieren construir soluciones que no solo provean la funcionalidad deseada, sino que también brinden la mejor experiencia posible al usuario, optimizando aspectos como el desempeño y consumo de energía.
Un mecanismo comúnmente utilizado para brindar acceso a sistemas empresariales desde aplicaciones móviles es exponer servicios web por medio de los cuales se sincronicen los datos entre el sistema empresarial y el cliente móvil. Sin embargo, al hacer esto es importante que analicemos las implicaciones de concurrencia, rendimiento y consumo de energía que esto puede generar.
Al elegir el mecanismo para que una aplicación móvil esté actualizandose con información contenida en un servidor, disponemos de dos opciones: arquitectura pull y arquitectura push.
Arquitectura pull
Este tipo de arquitectura consiste en que el cliente móvil periódicamente está preguntando al servidor si hay actualizaciones de información, y en caso de ser así descarga la información y actualiza su vista correspondiente. Pull significa “jalar”, y justamente eso es lo que estamos haciendo, jalar información desde el cliente móvil. Este tipo de arquitectura es sencillo, pero tiene un consumo de recursos elevados del lado del cliente ya que involucra tener un proceso persistente que continuamente esté preguntando al servidor si hay cambios.
Figura 1. Arquitectura pull
Arquitectura push
En este caso la comunicación es iniciada por el servidor, y de ahí se deriva su nombre ya que el servidor está “empujando” información hacia los clientes cada que hay un cambio. Esto es realizado por medio de una suscripción que hace el dispositivo cliente hacia el servidor, el siguiente paso es el establecimiento de una comunicación constante con la creación de un socket de comunicación que es gestionado totalmente por el servidor, y de este modo, es éste quien por medio de la suscripción realizada con anterioridad envía la información necesaria al cliente en cuestión cada que existan datos nuevos. La arquitectura push no solamente es utilizada para el envío de notificaciones, puede ser también utilizada para el envío de información del sistema para optimizar el rendimiento de una aplicación determinada. Es aquí donde debemos explotar al máximo las bondades de este tipo de arquitectura dentro de la fase de diseño arquitectónico de un sistema informático.
Figura 2. Arquitectura push
¿Cuál es mejor?
Entonces, ¿nunca deberíamos utilizar arquitectura pull? No podemos decir eso, en realidad todo depende de las necesidades y contexto. Antes de decidir cual arquitectura utilizar debemos tomar en cuenta distintos factores tales como:
Volumen de información que se enviará al cliente.
Frecuencia de actualización de información en la nube.
Consumo de datos.
Relación de rendimiento vs costo.
Estos factores nos ayudarán en la toma de la decisión más adecuada para el sistema que se está diseñando. Debemos tomar en cuenta que una arquitectura no reemplaza a la otra, sino que ambas son complementarias e incluso pueden usarse en conjunto.
Conclusión
Al construir aplicaciones móviles es muy importante poner énfasis en la experiencia que tendrá el usuario final. No solo debemos asegurarnos de que el sistema funcione correctamente, sino que también ofrezca un rendimiento y consumo de recursos adecuados para el volumen de información que maneja.
No importa si eres un desarrollador o un arquitecto de sistemas, en cualquier caso debes realizar dedicar atención al diseño, ya sea de componente para los desarrolladores o de sistema para los arquitectos. Dedicar tiempo a estas decisiones arquitectónicas podrá ahorrarnos muchos dolores de cabeza cuando el sistema sea implementado.
Carlos Martinez actualmente se desempeña como Consultor de entrenamiento en DW Software especializado en tecnologías móviles. Sigue en contacto, suscríbete a: http://dwsoftware.mx/blog
- Log in to post comments