Llegamos a ustedes gracias a:



Reportajes y análisis

Desarrollo de aplicaciones para la nube móvil

Lo que necesita saber

[10/09/2012] ¿Qué se está expandiendo al mismo ritmo abrasador que la fuerza de trabajo móvil de su empresa? ¿Qué hay de las demandas de los usuarios por una experiencia de software que compita con la que tienen en su escritorio?
Para muchas empresas, una nube privada es la respuesta. Pero si decide alimentar su fuerza de trabajo móvil con una nube privada central, 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 puedan funcionar en todos los dispositivos móviles, computadoras portátiles y de escritorio. ¿Qué es necesario para hacer que las aplicaciones existentes trabajen con dispositivos móviles, cuando las aplicaciones se ejecutan de forma remota en una nube? ¿Cómo resolver el problema de hacer que los datos de una aplicación diseñada para el escritorio encajen en la pantalla del dispositivo móvil? ¿Debería desarrollar primero para los dispositivos móviles, y luego pasarlas a las netbooks o laptops?
Tony Iams, vicepresidente senior de Ideas International Ltd., una consultora de investigación en sistemas informáticos señala que es importante determinar qué parte del estado de la aplicación -el código y/o datos en sí- se está moviendo a la nube desde el dispositivo móvil. "El traslado de estado a la nube le da beneficios de back-end administrativo, ya que no tiene que mantener ese estado en el dispositivo móvil", señala. En otras palabras, todos los cambios o actualizaciones de la aplicación se efectúan de forma centralizada.
El cloud computing móvil significa que la tramitación de las solicitudes -y el almacenamiento y recuperación de datos- se llevan a cabo por una infraestructura basada en la nube. El resultado es ahorro de costo total de propiedad, ya que el personal de TI no tiene que invertir tiempo en actualizar dispositivos individuales -el entorno del software cliente se ejecuta en un servidor en la nube, y hacer cambios ahí asegura que aparezcan en todos los clientes.
Desde el punto de vista del usuario, también hay un beneficio de mayor comodidad, porque ahora se puede obtener en el escritorio -un escritorio virtual en la nube- no importa donde se encuentre, a través del navegador de un dispositivo móvil. Como Iams señala: "Siempre tiene 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, tiene que estar dispuesto a soportar varias versiones de sus aplicaciones. Esto significa estar dispuesto a apoyar diferentes tamaños de pantalla y fabricantes de dispositivos móviles.
Consígales 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/aplicación. Se ejecuta en la nube móvil y realiza algunas tareas específicas para dispositivos móviles, tales como la conversión de los datos a una interfase fácil de usar para el dispositivo y asegurarse de que todo encaje muy bien en la pantalla.
También tiene un mecanismo de autenticación que llega a todo el dispositivo de modo que si el dispositivo se pierde o es robado se puede limpiar remotamente.
Con una plataforma móvil, las aplicaciones back-office de la corporación están aisladas de usuarios no autorizados que podrían respaldar las aplicaciones a través de conmutación de etiquetas multiprotocolo. La plataforma asegura el dispositivo móvil y luego realiza la conversión.
Estas plataformas móviles son formalmente llamadas plataformas móviles de aplicaciones empresariales (MEAP, por sus siglas en inglés). Ellas le permiten implementar aplicaciones móviles a través de una variedad de dispositivos sin tener que implementar una aplicación para un dispositivo específico. También le permiten ejecutar aplicaciones selectivamente de forma nativa en el dispositivo remoto cuando es muy importante para tomar ventaja de las principales características de los dispositivos remotos, o cuando es difícil emular la funcionalidad nativa en el servidor de nube móvil.
Esta es una de las direcciones hacia donde se está moviendo 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 informadas acerca de estas tecnologías.
Deacon señala que Verizon utiliza un sistema multiusuario, Sybase Unwired Platform, 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 a 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 nativas de un dispositivo específico, y las que se acceden a través de un navegador (también conocidas 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á construida específicamente para un dispositivo en particular y su sistema operativo. Puede tomar ventaja de las características incorporadas como localización GPS, brújula, acelerómetro, giroscopio y otras. Las aplicaciones web móviles 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 emularlas.
Kamesh Pemmaraju, analista de The Sand Hill Group, señala que además de MEAP, dos soluciones distintas, basadas en híbridos y HTML5, están surgiendo para el desarrollo de aplicaciones móviles con capacidades de plataforma cruzada.
El desarrollo de aplicaciones híbridas (PDF) funde los enfoques de la aplicación nativa con la aplicación web móvil. Con una aplicación móvil híbrida, la mayor parte de la interfase de usuario -o incluso toda- se encuentra en una ventana del navegador, con una aplicación nativa envuelta 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 es escrito en HTML5, CSS y JavaScript, y luego reutilizado en diferentes dispositivos.
Hacer frente a los problemas de lentitud y acceso
Deacon de Verizon señala que los problemas de latencia y acceso intermitente pueden ocurrir cuando los dispositivos móviles acceden a las aplicaciones en la nube, pero generalmente no para muchas de las aplicaciones de negocios que la gente utiliza en el campo. Muy a menudo, las aplicaciones con problemas de latencia involucran voz y video, y no son las que leen correo electrónico o incluso aquellas que consultan bases de datos, las cuales son mucho más típicas en un entorno corporativo. "Así que mientras que el acceso y la latencia intermitente puede ser algo molesto, no es un gran problema para muchos usuarios", añade Deacon.
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, principalmente las utilizadas por quienes ajustan los reclamos. Una aplicación tiene actividad intermitente, ya que recoge la información en el campo, la almacena y la envía cuando hay alguna conexión. "Tenemos que ser capaces de interactuar, tener una buena funcionalidad y una interconectividad casi sin fisuras una vez que estemos conectados", señala Miller.
HTML5 puede ayudar con los problemas intermitentes de acceso por el uso de algo conocido, como 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 las interrupciones en la conectividad móvil y la experiencia discontinua del usuario.
El resultado neto es que el almacenamiento en caché en el dispositivo significa que se necesitan menos viajes entre el dispositivo remoto y el servidor de la nube móvil, permitiendo que las aplicaciones funciones eficazmente en el dispositivo móvil, incluso durante períodos de discontinuidad en la conectividad móvil.
Uno de los mejores ejemplos de la utilización del almacenamiento en caché en el dispositivo es Google Maps para Android. Los datos del mapa se pre 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 con HTML5.
Asegúrese de que el back end pueda hacerse cargo de todo
En términos generales, las nubes de la empresa están aptas para sostener las aplicaciones móviles, según Bernard Golden, CEO de la consultora HyperStratus. Si 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 identidad para manejar los dispositivos móviles, afirma.
"Parte de su estrategia de TI debe ser ampliar sus servicios centrales", como IAM (gestión de ingreso por identidad), de modo que los servicios puedan ser utilizados por cualquier aplicación que se ejecute en cualquier dispositivo, señala. Es necesario crear unas API que puedan ser llamadas por las aplicaciones, sin importar en qué forma de factores se estén ejecutando. Las API deben estar en formatos listos para móviles, que puedan ser utilizadas tanto por los desarrolladores móviles -internos y de terceros- y las aplicaciones que crean.
El objetivo es no acercarse a esto con la idea de "tengo que construir una extensión personalizada para la iPad", señala Golden. "La iPad es un dispositivo. Habrá docenas, por lo que necesita las API de aplicaciones y componentes que sean portátiles".
Los vendedores de API como servicio -incluyendo a Layer 7 Technologies, Apigee y Apiary, pueden ayudar aquí, con sus respectivas herramientas de gestión de 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 propia nube como plataforma de integración.
Desarrollo de outsourcing móvil
Richard Peltz, CIO del servicio de inversiones en bienes raíces Marcus & Millichap, señala que su empresa no construye sus propias aplicaciones móviles. Hasta el momento ha externalizado esta tarea a AT&T, porque esa empresa ya tiene la experiencia, explica.
En el futuro, agrega Peltz, ve a Oracle y otras compañías ofreciendo aplicaciones personalizadas a través de un portal, privado o público, donde se puede acceder con las credenciales adecuadas a aplicaciones, las cuales son enviadas automáticamente a varios dispositivos, incluyendo dispositivos móviles.
Marcus & Millichap está implementando un sistema de gestión de contenidos (CMS), desarrollado por Sitecore, que se reproducirá automáticamente en cualquier dispositivo móvil, eliminando la necesidad de que Marcus & Millichap escriba aplicaciones nativas de dispositivos específicos, como hacía con anterioridad.
La compañía espera implementar el CMS a principios del 2013 en su nube privada basada en VMware, justo cuando su página web corporativa, así como la intranet, migren a la nueva plataforma CMS. Los usuarios finales en los diferentes departamentos y unidades de negocio gestionarán el contenido.
Desarrolle móviles primero, luego otras plataformas
Miller de Erie Insurance señala que su empresa piensa primero en la movilidad de todas sus aplicaciones, y luego las porta a las PC cuando sea posible y tenga sentido hacerlo. Erie se está moviendo decididamente hacia el uso de dispositivos móviles, por lo que desarrollar primero para móviles es una buena estrategia, añade Miller.
Pero esta estrategia tiene retos actuales. El dispositivo móvil generalmente tiene mucha menos memoria, potencia de CPU y así sucesivamente si se compara con una PC, generando restricciones en el diseño que no están presentes en otras plataformas. Además, las aplicaciones móviles a menudo son el blanco de ciertas actividades, y se pueden utilizar funcionalidades nativas para mejorar el rendimiento y proporcionar determinadas funciones que pueden no estar disponibles en la PC.
Otro asunto, señala, es que "parte del problema es que usted va a realizar un acto de equilibrio con respecto a los dispositivos de apoyo". Las herramientas de análisis ayudan a determinar qué instrumentos se usan para visitar la página web corporativa, y entonces el grupo de Miller desarrolla aplicaciones móviles para los dos o tres dispositivos.
La mayoría de los usos de los dispositivos móviles en Erie Insurance envían datos a una aplicación de back-end que solo los recoge. Erie tiene pocas aplicaciones back-end que permiten a los dispositivos móviles la capacidad de acceder a los datos, enviarlos fuera del dispositivo móvil y quizá almacenarlos temporalmente en él. Los datos descargados a un dispositivo móvil están cofrados y también se descarga un certificado que autentica al usuario del teléfono.
Miller señala que los desarrolladores de aplicaciones y los servicios de back-end deben trabajar juntos. "Lo que no queremos es que la gente de back-end esté demasiado confusa [sobre] qué dispositivo se está utilizando", explica. La compañía ha desarrollado una interfase común que tanto los desarrolladores y la gente de back-end utiliza como patrón interno. "Al menos esa es la intención", añade.
En resumen
Algunos proveedores de servicios como Google ya ofrecen servicios de nubes móviles, a los cuales se accede a través de un navegador basado en un teléfono inteligente o tablet. Pero la mayoría de aplicaciones móviles del dispositivo móvil se descargan de una tienda de aplicaciones del proveedor y se ejecutan en modo nativo. Esto requiere esfuerzos de desarrollo para cada tipo de dispositivo móvil. El uso de una nube móvil permite que los usuarios ejecuten directamente desde la nube, y puedan ver la interfase del cliente a través del navegador del dispositivo móvil.
Sin embargo, el uso de nubes móviles, todavía requiere que las compañías desarrollen una aplicación móvil una vez que pueda estar disponible para muchos tipos de dispositivos móviles. Nuevos tipos de herramientas y plataformas de desarrollo, incluyendo HTML5, ayudan aquí. Aunque todavía no todos los teléfonos inteligentes soportan HTML5, es solo cuestión de tiempo a que todos lo hagan.
Uno de los efectos potenciales de las aplicaciones móviles y sus datos que se almacenan y ejecutan en un servidor, es que los teléfonos inteligentes menos potentes y más económicos se convertirán en las herramientas corporativas preferidas. Manténgase en sintonía.
Bill Claybrook, Computerworld (EE.UU.)
Bill Claybrook es un analista con más de 30 años de experiencia en la industria de la computación, y cuenta con especialidades en Linux, código abierto, virtualización y cloud computing. Es presidente de New River Marketing Rresearch en Carlisle, Massachusetts, y tiene un doctorado en ciencias de la computación.