Solicite más información sin compromiso
¿Qué es el Cloud Computing y cómo mejora la experiencia de usuario?

En este artículo, investigaremos las métricas de rendimiento de las aplicaciones móviles y el impacto en la experiencia del usuario

Los dispositivos móviles están limitados por sus capacidades de procesamiento y consumo de energía, cosa que se opone las expectativas del usuario, de buen rendimiento y una mayor duración de la batería. Vamos también como podemos solucionar este problema.

En el último año, las aplicaciones móviles se han usado en múltiples áreas de nuestras vidas. Ya sea salud, negocios, redes sociales, viajes y noticias, entre otros.

La popularidad de los móviles proviene de la portabilidad que permiten, ofreciendo servicios sin importar la ubicación del usuario.
Pero la movilidad está asociada a una serie de problemas tales como recursos reducidos, energía limitada y mala conexión.

Para solucionar estos problemas y expandir las capacidades de los dispositivos móviles, una posible solución es el llamado “Computational offloading”.

“Computational Offloading” se refiere a la transferencia de tareas de cálculo fuera de nuestro dispositivo.


Cloud Computing

En los últimos años, el concepto de “Cloud Computing” ha ganado popularidad. Es usado para solucionar los problemas de rendimiento en el procesamiento de información en los móviles y aplicaciones web, entre otros.


Mobile Cloud Computing

Entonces nos encontramos con la arquitectura “Mobile Cloud Computing”, en la que el almacenamiento y el procesamiento de los datos están separados del dispositivo móvil.


De esta forma, podemos realizar operaciones complejas en dispositivos con especificaciones técnicas bajas.


Mobile Edge

Volviendo al punto anterior, la información se envía a proveedores externos, es decir, lejos del dispositivo móvil. Por esto emerge otra tecnología llamada “Mobile Edge”, que soluciona el problema ofreciendo servicios de cloud computing más cercanos a los dispositivos móviles.

La tecnología “Mobile Edge”, mejora el Mobile Cloud Computing situando servidores de capacidad de almacenamiento y de procesamiento antes de llegar a cada antena 3G y 4G, que después, éstas, nos envían la información.

mejorar ux con cloud computing
Estructura de arquitectura Mobile Edge, segunda capa. Fuente: dzone


¿Porqué Mobile Cloud Computing?

El Cloud Computing permite a tu aplicación ser más eficiente y menos demandante para los dispositivos de tus clientes.

Pero la ventaja mas significativa es la reducción de costes y centralización. Ya que pagas sólo lo que utilizas y el código que debemos actualizar/implementar, se encuentra en un solo sitio. Permitiendo actualizaciones y cambios de algoritmos instantáneos.


Rendimiento de las aplicaciones móviles vs “Mobile Cloud Computing”

La gran cantidad de funcionalidades que podemos realizar en un dispositivo móvil (smartphone) conlleva que sean como un ordenador portátil, pero mucho más ligero y portable.

Aún así, tienen limitaciones. La portabilidad, el tamaño pequeño y el peso, limitan el tamaño de la batería y por consecuencia, la capacidad de alimentación, capacidad de procesamientos y memoria.

El sobrecalentamiento, limita la cantidad de energía que puede consumir a 3 watts, a un móvil sin un sistema de refrigeración activa. Sino, el dispositivo se sobrecalienta [1].


A continuación definimos las métricas de rendimiento de las aplicaciones móviles y cómo el cloud computing puede mejorar estos aspectos.


Retraso

En cuanto a experiencia de usuario, cuanto más rápida sea la ejecución mejor. En relación a una encuesta [2], para los usuarios, las acciones que requerían menos de 100 milisegundos fueron percibidas como instantáneas. Mientras que las acciones que tomaron 1s en ejecutarse se percibieron como lentas (retrasos).


Uso de memoria

Se aplican restricciones a la memoria RAM, que almacena la información a la misma vez que es usada.

La cantidad de aplicaciones abiertas en el teléfono, así como la cantidad de información que éstas desempaquetan, están limitadas por la memoria RAM del dispositivo.

Las aplicaciones móviles deberían ser optimizadas para minimizar el uso de la memoria RAM. Si la aplicación utiliza mucha memoria y el hardware del dispositivo no lo aguanta, comportaría una disminución de la velocidad del dispositivo.

La gestión de la memoria en los dispositivos móviles es muy diferente a la de los ordenadores. En el caso de realizar multitarea en los ordenadores, cuando tenemos abierta más de una aplicación simultáneamente y gasta mucha memoria, el usuario puede cerrar las aplicaciones. En los dispositivos móviles, la gestión de la memoria es automática. Si no hay suficiente memoria RAM disponible, algunas de las aplicaciones que tenemos abiertas, se cierran automáticamente.


Uso de la CPU

La Unidad Central de Procesamiento (CPU), administra las instrucciones de las aplicaciones. Los dispositivos móviles han pasado de tener procesadores de 1 núcleo a 4 núcleos. Los procesadores multi-core proveen más potencia para las aplicaciones, ya que la información se puede dividir para procesarse en 4 procesadores.

Aunque más núcleos conllevan más velocidad de procesamiento, hay muchos más factores más que determinan la velocidad de un procesador y la velocidad total de un dispositivo.

El tamaño de la memoria RAM, también puede afectar a la velocidad del dispositivo. El software móvil necesita estar diseñado para funcionar con procesadores multi-core para poder aprovechar al máximo la velocidad del procesador.


Duración de la batería

Los dispositivos móviles funcionan a manos de la energía de la batería, por lo que gestionar bien su energía es muy importante si no queremos que el usuario desinstale nuestra aplicación porque le gasta demasiado.

Cuantos más ciclos ocurren en la CPU o GPU, más energía se consume de la batería. Por consecuencia, también se genera más calor.

Si llevamos a cabo cálculos intensivos de gráficos y/o cálculos complejos, la carga en la GPU y CPU es alta, por lo tanto, se consume más batería.

Las baterías no avanzan al mismo ritmo que lo hacen las CPU, ya que están sujetas al contenido tamaño de los smartphones.

Es por esto, que con la arquitectura ARM, se están fabricando cada día procesadores más eficientes, al cambio de más potentes, ya que sino, la duración de la batería sería nula. Ya que esta tecnología no está avanzando.

En resumen, si podemos migrar las operaciones más complejas a una API en servidores cloud, estamos reduciendo el uso de la CPU, potencialmente ahorrando batería.


Uso de la Red

Debido a la movilidad de los dispositivos móviles, no se puede esperar que el dispositivo tenga cobertura permanente y estable de internet móvil.

Los dispositivos móviles cambian entre tipos de conexión (como 3G o 4G y Wi-Fi), con velocidades diferentes. La conexión a través de redes móviles saturadas/lentas puede comportar problemas con la aplicación móvil. Así como imágenes lentas, pantalla congelada, bloqueo de la aplicación o por último, el cierre de la aplicación.

La computación “Mobile Edge” es considerada como una tecnología clave para la futura generación de red móvil 5G. La proximidad entre el dispositivo y el servicio mobile edge permite la ejecución de cálculos complejos en milisegundos.

Por consiguiente, vamos a ver aplicaciones más complejas y menos demandantes para nuestros dispositivos en el mercado.


Fácilmente escalable

Al delegar la carga de trabajo al servidor, el código que procesa la información se encuentra centralizado para todos los usuarios, podemos aumentar la capacidad del mismo al automáticamente al momento en cuánto aumenta la demanda por parte de los usuarios.

Si realizamos los cálculos en los dispositivos de los clientes, la carga de trabajo recae en éstos, resultando en una aplicación más lenta.


¿Cuándo usar “mobile offloading”?

El “mobile offloading” puede ahorrar energía y mejorar el rendimiento de las aplicaciones móviles.

Normalmente la capacidad de implementarlo depende de varios parámetros, como el ancho de banda de la red y la cantidad de información intercambiada ya que si el ancho de banda no es suficiente, podemos saturar la red y consecuentemente ralentizar la aplicación.

La decisión de usar la “nube” debe ser para mejorar el rendimiento y/o ahorrar energía. Esta decisión incluye al mobile cloud computing y al mobile edge computing, ya que a veces el offloading no vale la pena. Los métodos de las aplicaciones que llaman a recursos del móvil como llamadas a la cámara, no necesitan migrar a la nube, así como los métodos que llaman a acciones en el dispositivo.

Para determinar qué partes de la aplicación móvil son adecuadas para el offloading, usaremos la complejidad computacional. Es una forma directa de ver la relación entre la demanda de cálculo y la utilización de recursos y cómo afecta al tiempo de ejecución.

El rendimiento del cloud computing está sujeto a múltiples tests y muchas veces se analiza por separado. Las encuestas se realizan solamente para ver las mejoras en tiempo de ejecución o también por el consumo de energía del dispositivo.


Conclusión

Realmente ya estamos utilizando este modelo de arquitectura de aplicaciones móviles, aunque sin ser conscientes. Por ejemplo, una aplicación móvil que conecta a una API, al hacer una petición para generar unas estadísticas para mostrar unos gráficos visualmente, ya estamos haciendo uso de esta tecnología. Ya que estamos realizando los cálculos fuera de nuestro dispositivo.

Teniendo en cuenta esto, pienso que se debería usar más, por todas las ventajas que conlleva para el desarrollo, mantenimiento y coste. De hecho, ya se está utilizando cada día más.



Referencias:

[1] A. P. Miettinen and J.K. Nurminen, "Energy efficiency of mobile clients in cloud computing", HotCloud'10 Proceedings of the 2nd USENIX conference on Hot topics in cloud computing, Boston, MA, (2010)

[2] App Dynamics, 2017. Available from: https://www.appdynamics.com/lp/the-app-attention-index-2017/.

Pub: 02/11/2020, Por: D. Royo, Backend dev.



desarrolladores de aplicaciones
Desarrollo de Apps Madrid | Abalit® 【desde 2013】
Empresa de desarrollo de apps móviles, Madrid, Barcelona y Nueva York
 Madrid, Torre Europa, Paseo de la Castellana 95, Flattop (planta 29) ES-28046 · (+34) 91 126 83 73 · (+34) 618 715 020 · info@desarrolloappsmadrid.es 

Madrid | Barcelona | London | New York