Evaluar Conozca los pros y contras de las tecnologías, productos y proyectos que está considerando.

Redes de caché para un mejor desempeño de las aplicaciones móviles

Mejore el desempeño de las aplicaciones móviles aprovechando las redes de caché y los nuevos protocolos de sincronización de datos.

Muchas empresas se acercan al desarrollo móvil como elemento adicional para sus aplicaciones web existentes. Pero los arquitectos empresariales están descubriendo que pueden mejorar el desempeño de las aplicaciones móviles al aprovechar mejor las redes de caché y los nuevos protocolos de sincronización de datos que funcionan más eficientemente que la infraestructura web tradicional.

"Esta fue una buena decisión para nosotros, e hizo mucho más fácil desarrollar aplicaciones de alto rendimiento", dijo Eric Marston, director de tecnología de DailyLook.com. La compañía ofrece una experiencia de compra en línea que muestra inspiración de moda diaria recopilada por estilistas profesionales. Rediseñó su arquitectura empresarial y el proceso de desarrollo de aplicaciones con una amplia estrategia de almacenamiento en caché para aumentar drásticamente el rendimiento de aplicaciones móviles y reducir la carga en su infraestructura de back-end.

La compañía había invertido previamente considerables recursos en una fuerte capa de middleware para que las aplicaciones web y móviles pudieran interconectarse al back-end a través de componentes de middleware comunes. Esto permitió la reutilización de código y mejoró el desarrollo de aplicaciones, dijo Marston. Pero requirió mucho más trabajo pensar en promover una mejor habilidad de caché para las aplicaciones.

La movilidad es una misión crítica para atrapar a los consumidores

Mejorar la integración de aplicaciones móviles era crítico para DailyLook. Alrededor del 90% del tráfico de la compañía proviene de usuarios de su aplicación móvil nativa. Marston evaluó varios servicios de red de distribución de contenido, o CDN, pero encontró que la mayoría de ellos solo estaban optimizados para contenido estático, dijo. Al aprovechar el servicio de entrega de aplicaciones definido por software de Instart Logic, DailyLook también fue capaz de acelerar mucho de su mensajería JSON entre la infraestructura de back-end de DailyLook y clientes móviles.

La aplicación web existía antes de la aplicación móvil, por lo que DailyLook rediseñó la aplicación web para aprovechar mejor esta nueva capa de middleware. Esto ha hecho que sea más fácil trabajar con la plataforma Instart. Marston recomienda que las organizaciones consideren organizar su capa de middleware para almacenar en caché los objetos de datos JSON. Esto hace que sea posible a poner datos en el borde, junto con todo lo demás.

Se requiere planificación para un mejor almacenamiento en caché

"Esto ha reducido nuestras cargas de base de datos, las cargas del servidor web, y la aplicación responde mucho más rápido", dijo Marston. Esto puede ser un reto para muchas organizaciones, pero es de misión crítica para las empresas en el espacio de retail. El proceso involucró encontrar la manera de segmentar y extraer los datos, de modo que cualquier cosa personalizada o específica para los individuos fuera separada de los más estáticos datos de productos. En algunos casos, esto significaba que se hacían dos llamadas más pequeñas a la infraestructura de DailyLook, pero esto también significaba que más datos podrían ponerse más cerca de los usuarios.

Ahora los usuarios pueden recibir actualizaciones desde los servidores perimetrales en unos 30 milisegundos, en lugar de los 500 milisegundos anteriores. En general, esta estrategia ha permitido a DailyLook descargar alrededor del 70% de sus solicitudes totales de datos a los servidores perimetrales. Una buena práctica también es desarrollar reglas de caché eficientes que funcionen para la empresa, dijo Marston. Los datos relativos a las solicitudes de nuevos estilos populares pueden ser almacenadas en caché durante varias horas o incluso días, pero otros datos son mucho más transitorios.

Marston recomienda que las organizaciones animen a sus desarrolladores a considerar mejores estrategias de almacenamiento en caché durante las revisiones de código. Poner esto en el proceso de revisión ayuda a garantizar que las nuevas aplicaciones son tan óptimas como sea posible.

Otra buena práctica es considerar las estrategias de caché como parte de la arquitectura de middleware. DailyLook estaba a mitad de camino de la implementación de su capa de middleware antes de darse cuenta que podría ser más eficiente con una buena estrategia de caché. Marston también recomienda el uso de una tecnología como JSON, que es fácil de almacenar en caché. JSON no es tan fácil de usar como el caché de HTML, pero cuando se usa apropiadamente, JSON puede ayudar a reducir la carga de los servidores de bases de datos.

Considere nuevos protocolos

Otros expertos móviles están animando a los desarrolladores a pensar acerca de la sincronización de datos como una alternativa más eficiente para el almacenamiento en caché. "El valor real es cuando el sistema de sincronización de datos está alineado con todas las otras partes de la pila de aplicaciones", dijo Matt DeBergalis, co-fundador de Meteor Development Group, que hace el marco de desarrollo de JavaScript Meteor, de código abierto.

Por ejemplo, la plataforma de desarrollo Meteor soporta la integración directa con el protocolo DDP que utiliza WebSockets como un protocolo más eficiente que REST o JSON para muchos casos de uso. En Meteor, cuando el servidor actualiza la información, la pantalla en el dispositivo móvil se actualiza automáticamente. El desarrollador no tiene que escribir código especial para tomar ventaja de la sincronización automática. El resultado final es que los datos se almacenan en caché en el dispositivo móvil, en lugar de en el centro.

El protocolo HTTP, que se utiliza tradicionalmente para JSON y REST, se orienta hacia la recuperación de documentos desde la web, pero las aplicaciones que se actualizan en vivo necesitan una manera de enviar actualizaciones sin que el cliente lo pida. Las aplicaciones con mejor rendimiento pueden aprovechar los nuevos protocolos emergentes como WebSockets, que son capaces de enviar automáticamente los datos al cliente sin una solicitud específica. Pero el protocolo WebSockets básico es de bajo nivel, lo que hace difícil utilizarlo de manera eficiente en aplicaciones, dijo DeBergalis.

Diseñe para la sincronización

El desafío más grande en la construcción de este tipo de aplicaciones se encuentra en la capa de datos en el back-end. Todas las bases de datos hasta la fecha han sido diseñadas para responder a consultas, no para empujar datos al back-end cuando algo cambia, dijo Slava Akhmechet, fundador de ReThinkDB, una herramienta de sincronización de bases de datos de código abierto. Los ingenieros de back-end se ven obligados a construir infraestructuras complejas y código personalizado sofisticado para evitar estas limitaciones en la capa de datos. Gran parte de este trabajo requiere código personalizado en el front-end, lo que complica aún más el proceso de desarrollo e implementación.

Los equipos sofisticados con grandes presupuestos y un montón de tiempo pueden implementar esta funcionalidad sobre las bases de datos existentes utilizando una combinación de características tradicionales, tales como vistas, disparadores y sistemas de colas de terceros como RabbitMQ. Eso puede funcionar bastante bien, pero es muy difícil y costoso de construir, ya que este enfoque es muy propenso a errores y toma una gran cantidad de recursos de desarrollo, señaló Akhmechet.

"En el último año o dos, ha habido una gran innovación en el front-end para hacer posible la creación de aplicaciones en tiempo real como estas", dijo Akhmechet. Marcos como Meteor, Angular y React tratan los casos de uso en tiempo real como ciudadanos de primera clase, y todos los principales navegadores web soportan tecnologías como WebSockets y conexiones HTTP de larga vida para hacer del envío de datos al navegador en tiempo real algo fácil y rápido. Estas herramientas prometen una alternativa viable a las redes tradicionales de caché para crear la próxima generación de aplicaciones móviles, dijo.

Este artículo se actualizó por última vez en abril 2015

Profundice más

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close