Aplicaciones móviles para la nube, ¿qué hay que saber para desarrollarlas?

¿Qué se expande al mismo ritmo acelerado que la fuerza de trabajo móvil de su empresa? ¿Cómo resolver las demandas de estos usuarios para tener en sus dispositivos móviles una experiencia similar a la que tienen cuando trabajan en un equipo de escritorio?

Para muchas empresas, una nube privada es la respuesta. Pero si usted decide alimentar centralmente su fuerza de trabajo móvil con una nube privada, las aplicaciones móviles deben desarrollarse con esa infraestructura en mente.

Hay varios factores que están en juego aquí, especialmente si desea que las aplicaciones funcionen en todos los dispositivos móviles, equipos de escritorio y portátiles. ¿Qué es necesario para que las aplicaciones existentes trabajen con dispositivos móviles cuando estas aplicaciones se ejecutan de forma remota desde la nube? ¿Cómo resolver el problema de ajuste de los datos de una aplicación diseñada para el escritorio, para que se visualicen en la pequeña pantalla del dispositivo móvil? ¿O debería desarrollar primero para los dispositivos móviles y posteriormente trasladar este desarrollo a las notebooks y laptops?

Iams Tony, vicepresidente senior de Ideas International Ltd., una consultora de investigación de sistemas informáticos, dice que es importante determinar qué parte del estado de la aplicación -el código y/o los datos en sí- se mueven del dispositivo móvil hacia la nube. "Trasladar ese estado a la nube le proporciona beneficios de administración en el back-end ya que no es necesario mantener ese estado en el dispositivo móvil", dice. En otras palabras, todos los cambios o actualizaciones de la aplicación se efectúan de forma centralizada.

"Tenemos que ser capaces de interactuar, tener una buena funcionalidad y una interconectividad casi sin fisuras", dice Eric Miller, vicepresidente senior de TI y CIO de Seguros Erie.

El cloud computing móvil significa que el procesamiento de las aplicaciones -y el almacenamiento y recuperación de datos- se llevan a cabo desde una infraestructura basada en la nube. El resultado es un ahorro de costo total de propiedad (TCO) ya que el personal de TI no tiene que invertir tiempo en actualizar los dispositivos individuales -el entorno de software cliente se ejecuta en un servidor en la nube, y los cambios en este ambiente garantizan que serán aplicados en todos los clientes.

Desde el punto de vista del usuario, hay un beneficio de mayor comodidad, también, porque ahora pueden acceder a su escritorio -un escritorio virtual en la nube- no importa donde se encuentren, a través del navegador en un dispositivo móvil. Como Iams dice: "Usted siempre tendrá el mismo entorno de escritorio sin importar el dispositivo remoto que esté usando."

Debido a que existen diferentes tipos de usuarios y diferentes tipos de dispositivos, TI tiene que estar lista para soportar varias versiones de sus aplicaciones. Esto significa estar preparado para soportar diferentes tamaños de pantalla y  fabricantes de dispositivos móviles.

Migre a una plataforma móvil

De acuerdo con Jeff Deacon, director de estrategia corporativa de Verizon Business, aquí es donde una plataforma móvil viene muy bien. Una plataforma móvil es el software entre el dispositivo móvil y los datos de la aplicación. Se ejecuta en la nube móvil y realiza algunas tareas específicamente para dispositivos móviles, tales como la conversión de los datos en una interfaz fácil de usar para el dispositivo y asegurarse de que todo encaja bien en la pantalla.

También tiene un mecanismo de autenticación que rastrea la ruta del dispositivo, de modo que si éste se pierde o es robado pueda limpiarse remotamente.

Con una plataforma móvil, las aplicaciones corporativas del back-office están aisladas de usuarios no autorizados que podrían llegar a ellas a través de Multiprotocol Label Switching. La plataforma asegura el dispositivo móvil y luego realiza la conversión.

Estas plataformas móviles son frecuentemente denominadas Plataformas Móviles de Aplicaciones Empresariales, o MEAP. Le permiten implementar aplicaciones móviles a través de una variedad de dispositivos sin tener que implementar una aplicación para cada dispositivo específico. También le permiten ejecutar selectivamente apps de forma nativa en el dispositivo remoto cuando es muy importante tomar ventaja de las principales características de los dispositivos remotos o cuando es difícil emular la funcionalidad nativa en el servidor móvil de nube.

Esta es una de las direcciones que está tomando el mercado, pero las herramientas de MEAP se encuentran en las etapas tempranas de adopción y la mayoría de las empresas, por lo general, todavía no están bien informados acerca de estas tecnologías.

Deacon comenta que en Verizon se utiliza un sistema multiusuario, la plataforma Sybase Unwired, para reducir la complejidad en el desarrollo y despliegue de aplicaciones móviles a través de una variedad de dispositivos móviles y servidores back-end de la empresa. Otros MEAP o plataformas similares a MEAP incluyen  WebMobi, AMPchroma de Antenna Software, Agentry Mobile Platform de Syclo LLC y Appcelerator Titanium .

Otras técnicas de desarrollo

Las aplicaciones móviles vienen en una de dos formas: las que son nativas de un dispositivo específico, y aquéllas a las que se accede a través de un navegador (también conocidos como aplicaciones Web móviles). Una aplicación Web móvil se construye generalmente con HTML (hoy sería con HTML5), CSS (Cascading Style Sheets) y JavaScript. Las hojas de estilo proporcionan la apariencia y formato de documentos escritos en un lenguaje de marcas tales como HTML5.

Una aplicación móvil nativa está construido específicamente para un dispositivo en particular y su sistema operativo. Puede tomar ventaja de las características incorporadas de localización como GPS, brújula, acelerómetro, giroscopio y otros. Las aplicaciones móviles Web que se ejecutan en los servidores de nubes móviles no siempre son capaces de tomar ventaja de este tipo de funciones de localización y cuando lo hacen, necesitan emularlos.

Kamesh Pemmaraju, analista de The Sand Hill Group, dice que además de los MEAP, hay dos soluciones distintas, basadas en híbridos y HTML5, las cuales están surgiendo para el desarrollo de aplicaciones móviles con capacidades de plataforma cruzada.

El desarrollo de aplicaciones Hybrid (PDF) combina los métodos Web nativos y de aplicaciones móviles. Con una aplicación móvil híbrida, la mayor parte de la interfaz de usuario -o incluso toda ella- se encuentra en una ventana del navegador con una aplicación nativa que la encapsula para poder tener acceso a las características del dispositivo nativo que no están disponibles con el navegador.

Para un usuario, una aplicación híbrida se ve como una aplicación nativa. Pero para los desarrolladores hay una gran diferencia. En lugar de volver a escribir la aplicación móvil completa para cada dispositivo móvil, una parte del código está escrito en HTML5, CSS y JavaScript, y luego se reutiliza en diferentes dispositivos.

Cómo lidiar con los problemas de lentitud y el acceso

Deacon de Verizon dice que los problemas de latencia y el acceso intermitente pueden ocurrir cuando los dispositivos móviles acceden a las aplicaciones en la nube, pero generalmente no sucede con muchas de las aplicaciones de negocio que la gente está utilizando en el campo. Muy a menudo, las aplicaciones con problemas de latencia involucran voz y video, y no son los lectores de correo electrónico o incluso aquellas que consultan bases de datos, que son las más frecuentes en un entorno corporativo. "Así que aún cuando el acceso y la latencia intermitente pueden ser molestos, no es un problema tan grande para muchos usuarios," opina Deacon.

¿Por qué HTML5 es el amigo de su aplicación móvil?

HTML5 es un conjunto de tecnologías que consisten en etiquetas semánticas, CSS3, reglas, propiedades y las API de JavaScript. HTML5 añade etiquetas para ciertas estructuras de documento como encabezados, pies de página, figuras y más.

El resultado final es que el propio navegador será capaz de mostrar de forma inteligente distintos tipos de contenido sin necesidad de plug-ins para dispositivos específicos. En otras palabras, HTML5 soporta la funcionalidad del dispositivo remoto, proporcionando una experiencia más cercana a la visualización y funcionalidades de una aplicación móvil nativa.

La última versión de los navegadores más importantes en equipos de escritorio, teléfonos inteligentes y tabletas soporta HTML5 en alguna capacidad, pero no todas las características de HTML5 son ya soportadas por todos los principales navegadores. HTML5 permite escribir el código una vez y habilitarlo a través de varias plataformas.

Por su parte, CSS3 permite ajustar automáticamente la disposición de página a través de un gran número de factores de forma. La representación de diseño dinámico permite a las aplicaciones basadas en HTML5 funcionar en dispositivos con diferentes tamaños de pantalla, es decir, se utiliza el código HTML5 para la presentación de las aplicaciones móviles.

HTML5 descubre características de los dispositivos remotos para presentar la información ajustada de forma automática al tamaño y resolución de pantalla del dispositivo remoto a través de CSS3. HTML5 utiliza consultas de medios de CSS3 para crear páginas web sensibles que responden al tamaño de pantalla del dispositivo remoto, la orientación, la altura y más.

En efecto, HTML5 con las consultas de CSS3 permite a los desarrolladores crear aplicaciones Web que, cuando se ejecutan en dispositivos diferentes, responden a características de los dispositivos remotos de forma automática para que el contenido se proporcione a los dispositivos en un formato apropiado.

Eric Miller, vicepresidente senior de TI y CIO de Erie Insurance , ha tenido algunos problemas con la intermitencia en las aplicaciones móviles de la compañía, sobre todo en lo que se refiere a los ajustes. Una aplicación tiene actividad intermitente, ya que recoge la información en el campo, la almacena y lla envía cuando hay una conexión. "Tenemos que ser capaces de interactuar, tener una buena funcionalidad y una interconectividad casi sin interrupciones una vez conectados", dice Miller.

HTML5 puede ayudar con los problemas de acceso intermitentes utilizando algo conocido como el almacenamiento en caché en el dispositivo. Esta característica permite que los datos se almacenen fuera de línea en el dispositivo remoto para su posterior procesamiento, reduciendo los problemas de las interrupciones en la conectividad móvil y la experiencia discontinua del usuario.

El resultado neto es que el almacenamiento en caché del dispositivo significa que se requieren menos viajes entre el dispositivo remoto y el servidor de la nube móvil, permitiendo a las aplicaciones funcionar eficazmente en el dispositivo móvil, incluso durante períodos de discontinuidad en la conectividad móvil.

Uno de los mejores ejemplos del uso del almacenamiento en caché en el dispositivo es Google Maps para Android. Los datos del mapa se cargan en el dispositivo remoto para aquellas áreas en las que el usuario transmita con mayor frecuencia, lo que garantiza la continuidad del uso, incluso si la señal del satélite se pierde.

Esta es la razón por la que la mayoría de los nuevos teléfonos inteligentes tienen navegadores habilitados para HTML5.

Asegúrese de que el back-end puede con todo

En términos generales, las nubes empresariales pueden con la tarea de entregar las aplicaciones móviles, según Bernard Golden, CEO de la consultora HyperStratus. Si usted tiene algún tipo de infraestructura basada en la nube que ya cuenta con virtualización y automatización, debería ser capaz de agregar servicios como la gestión de identidades para administrar los dispositivos móviles, comenta.

"Parte de su estrategia de TI debe ser ampliar sus servicios centrales", como IAM (Identity Access Management), de modo que los servicios puedan ser utilizados por cualquier aplicación que se ejecute en cualquier dispositivo, dice. "En efecto, debe crear API que puedan responder al llamado de las aplicaciones, sin importar qué factor de forma están ejecutando." Las APIs deben estar en formatos listos para móviles que pueden ser utilizados tanto por los desarrolladores móviles -tanto internos como de terceros- y las aplicaciones que crean.

El objetivo es no acercarse a esto como "Tengo que construir una extensión personalizada para el iPad ", señala Golden. "El iPad es solamente un dispositivo. Habrá docenas, por lo que necesita API de aplicaciones y componentes que sean portátiles."

Los proveedores de API-as-a-Service -incluyendo Layer 7 Technologies, Apigee y Apiary– pueden ser de utilidad, con sus respectivas herramientas de gestión de la API. Estas herramientas pueden ser implementadas en la nube móvil.

Algunos clientes tienen nuevos enfoques para este problema. Mohawk Fine Papers, por ejemplo, está utilizando la nube en sí como una plataforma de integración .

Outsourcing del desarrollo móvil

Richard Peltz, CIO del servicio de inversiones en bienes raíces Marcus & Millichap, dice que su empresa no construye sus propias aplicaciones móviles. Hasta el momento ha tercerizado esta tarea a AT&T porque ellos ya tienen la experiencia, explica.

En el futuro, dice Peltz, ve a Oracle y otras compañías como proveedores de aplicaciones personalizadas a través de un portal, privado o público, donde con las credenciales adecuadas se podrá acceder a aplicaciones, que se ajusten automáticamente a varios dispositivos, incluyendo los móviles.

Actualmente Marcus & Millichap está implementando un sistema de gestión de contenidos (CMS), desarrollado por SiteCore que automáticamente se ajustará a cualquier dispositivo móvil, eliminando la necesidad de que Marcus & Millichap escriba aplicaciones nativas específicas para cada dispositivo, como lo ha hecho en anteriores aplicaciones móviles.

La compañía espera implementar el CMS a principios de 2013 en su nube privada basada en VMware, momento en que la página web corporativa, así como la intranet, migrarán a la nueva plataforma CMS. Los usuarios finales en los diferentes departamentos y unidades de negocio gestionarán el contenido.

Desarrollar móviles primero, luego otras plataformas

Miller de Erie Insurance dice que su empresa considera primero a los móviles para todas sus aplicaciones y luego las migra a PC, siempre que sea posible y tenga sentido. Erie está moviendo fuertemente hacia el uso de dispositivos móviles, por lo que el desarrollo para móviles primero es un buen movimiento estratégico, opina Miller.

Pero esta estrategia presenta retos. El dispositivo móvil tiene generalmente mucha menos memoria, potencia de CPU y otras cosas en comparación con las PC, ofreciendoa restricciones de diseño que no están presentes en otras plataformas. Además, las aplicaciones móviles frecuentemente están enfocdas a ciertas actividades y se pueden usar funcionalidades nativas para mejorar el rendimiento y proporcionar determinadas funciones que puedental vez no estén disponibles en una PC.

Busque a sus proveedores de SaaS

Kamesh Pemmaraju, analista del Grupo Sand Hill, dice: "Las aplicaciones móviles son perfectas para la entrega de SaaS." Algunos proveedores de servicios móviles SaaS incluyen a ClickTecs, Kontagent y SAP.

La propuesta de valor de SaaS móvil puede ser muy atractiva. Así que antes de liberar sus propias aplicaciones móviles de nube o contratar a un tercero para que las desarrolle, déle un vistazo a los proveedores de SaaS.

Puede ejecutar la aplicación, ya sea en una nube pública o privada -privada si la aplicación es para uso interno, o público si quiere ofrecerla a los clientes y/o socios. Otro de los beneficios de este enfoque: el proveedor de SaaS se encarga de la seguridad, administración, actualizaciones, mejoras y demás, por lo que usted no tiene que preocuparse por estas cosas.

Uno de los problemas con los que el grupo de usuarios Erie tiene que lidiar, explica Miller, es: "¿Construimos un portal web que se adapte en función del dispositivo que accede, o se trata de una aplicación específica?"

Otro problema, dice, es que "parte del problema es que tratamos de equilibrar a los dispositivos que vamos a soportar." Las herramientas de análisis les ayudan a determinar qué equipos específicoss se usan para visitar la página web corporativa, y posteriormente el grupo de Miller desarrolla aplicaciones móviles para los dos o tres dispositivos principales.

La mayoría de los usos de los dispositivos móviles en Erie Insurance involucran enviar datos a una aplicación de back-end que sólo recopila esta información. Erie tiene solamente unas pocas aplicaciones de back-end que permiten a los dispositivos móviles de acceso a datos, transmitirlos al dispositivo móvil y tal vez, almacenarlos temporalmente en el móvil. Los datos descargados a estos dispositivos están encriptados y se descarga también un certificado para autenticar al usuario del teléfono.

Miller dice que los desarrolladores de aplicaciones y el personal de soporte tienen que trabajar juntos. "Lo que no queremos es que la gente de back-end se confunda sobre qué dispositivo se está utilizando", explica. La compañía ha desarrollado una interfaz común que tanto los desarrolladores como el personal de back-end pueden utilizar como patrón interno. "Al menos, esa es la intención al menos" expresa.

En resumen

Algunos proveedores de servicios como Google ya ofrecen servicios de nube móvil, a los que se puede acceder a través del navegador de un teléfono inteligente o tableta. Pero la mayoría de aplicaciones móviles se descargan de una tienda de aplicaciones del proveedor y se ejecutan en modo nativo en el dispositivo móvil. Esto requiere esfuerzos de desarrollo para cada tipo de dispositivo móvil. Usar una nube móvil permite a los usuarios ejecutar directamente desde la nube, visualizando la interfaz del cliente a través del navegador del dispositivo móvil.

El uso de nubes móviles, sin embargo, todavía requiere que las compañías desarrollen inicialmente una aplicación móvil que pueda ser accedida por muchos tipos de dispositivos móviles. Nuevos tipos de herramientas de desarrollo y plataformas, incluyendo HTML5, podrían ayudar en este sentido. Aunque no todos los smartphones soportan HTML5 ya, es sólo cuestión de tiempo antes de que todos lo hagan.

Uno de los efectos potenciales de las aplicaciones móviles y los datos almacenados y ejecutados en un servidor que es pronto los smartphones, menos potentes pero más económicos, se convertirán en las herramientas corporativas preferidas. Manténgase en sintonía.