El primer ámbito donde han venido surgiendo soluciones empresariales muy interesantes es en las aplicaciones verticales. Algunos ejemplos concretos son: automatización de fuerza de ventas, levantamiento de información en campo, administración de servicios de mantenimiento, administración de almacén, y cobranza. Un segundo ámbito, más reciente, es el relacionado con proporcionar información ejecutiva a mandos medios capaces de tomar decisiones sobre la operación del negocio en instantes. Ajustes a una línea de producción, modificaciones a una frecuencia de salidas de viaje, o balanceo de cargas entre equipos de trabajo en tiempo real
En ambos casos, las áreas de TI se enfrentan a retos particulares al crear o comprar este tipo de soluciones. En este espacio identificaremos cuáles son los principales puntos a considerar al buscar desarrollar una solución que funcione sobre dispositivos móviles.
Conectividad
Una solución móvil en una empresa jamás es una solución aislada. Normalmente es una extensión de los sistemas empresariales existentes, como ERPs o CRMs. Por lo tanto, es fundamental entender las opciones de conectividad disponibles en el mercado y el impacto que tienen en nuestra posible aplicación.
En primer lugar, podemos clasificar las aplicaciones móviles en línea y fuera de línea. Una aplicación fuera de línea es aquella que se sincroniza mediante una conexión física ocasional, ya sea cuando el personal móvil regresa a la empresa o a través de un modem. Por otro lado, una aplicación en línea puede ser de gran ancho de banda (Wi-Fi) o bien de bajo ancho de banda (GPRS).
Para una aplicación de gran ancho de banda podemos elegir el utilizar una interfaz web optimizada para el formato pequeño del dispositivo móvil, si es que el navegador nos ofrece la flexibilidad de diseño que necesitamos.
En los demás patrones, lo más recomendable es una arquitectura ocasionalmente conectada donde planeamos la aplicación para que funcione con o sin conectividad, aunque algunos de nuestros servicios estén restringidos en el segundo caso. De esta manera no dejaremos a nuestros usuarios abandonados cuando no tengan una conexión a la mano.
Sincronización de Datos
Precisamente para una aplicación ocasionalmente conectada, se vuelve crucial contar con una buena estrategia de sincronización de datos. Lo más recomendable es aprovechar la infraestructura de sincronización existente en motores de base de datos ya maduros. Entre las mejores opciones encontramos a Microsoft SQL Server Mobile, Oracle Lite y SQL Anywhere Studio. A mi juicio, la experiencia más completa e integrada para desarrollar aplicaciones móviles con sincronización de datos es ofrecida por la combinación de Microsoft SQL Server Mobile, SQL Server 2005 y Visual Studio 2005.
Estas herramientas se encargan de resolver los aspectos más importantes para sincronizar datos en una solución móvil y nos ahorrarán mucho trabajo. Comprimen la información para ambientes de bajo ancho de banda, particionan nuestra base de datos maestra para cada usuario móvil, y se encargan de replicar los cambios entre el servidor y los dispositivos móviles. Adicionalmente, nos permiten monitorear el estatus de la sincronización y resolver problemas. Finalmente, nos ofrecen una forma de programar basada en SQL en el dispositivo móvil.
Una opción muy interesante para los servicios en línea (por ejemplo, para checar un nivel de inventario a través de GPRS) son los servicios web basados en SOAP (Simple Object Access Protocol) mediante los cuales es muy sencillo realizar una transacción simple contra nuestros sistemas empresariales.
Soporte
Por definición, es muy probable que nuestros usuarios se encuentren dispersos geográficamente y que sea complicado darles soporte. Actividades como la actualización de nuestra aplicación, o otorgar apoyo para resolver un problema, pueden resultar complicadas y costosas, elevando innecesariamente el costo total de propiedad de la solución.
Por esta razón, es indispensable contar desde un inicio con una estrategia de soporte basada en herramientas que nos permitan administrar fácilmente nuestros dispositivos de forma remota. Debemos ser capaces de actualizar nuestra aplicación de forma remota, de obtener información de fallas de forma automática y de atender remotamente a nuestros usuarios y a sus dispositivos.
Interfaz de Usuario
Uno de los errores más comunes cuando un programador que viene del mundo de las computadoras personales aborda un proyecto para dispositivos móviles, es subestimar las diferencias en la interfaz de usuario. Los dispositivos móviles están restringidos en el área de la pantalla y en las formas en que aceptan entradas de sus usuarios. Esto implica que debemos pensar siempre en una interfaz lo más sencilla posible y parecida a la de las demás aplicaciones que existen en la PDA o en el SmartPhone.
Debemos limitar la información presentada a aquella que sea indispensable. También minimizar el número de entradas que deba hacer el usuario, aprovechando los métodos de entrada que nos ofrezca el dispositivo. Nuestra aplicación debe estar preparada para que el dispositivo se apague o encienda en cualquier momento sin pérdida de información.
Plataforma
Las plataformas más comunes para desarrollo de aplicaciones móviles son J2ME (Java 2 Micro Edition), y el .NET Compact Framework para Windows Mobile. Personalmente, para el desarrollo de aplicaciones corporativas, he elegido especializarme en este último, ya que considero que ofrece varias ventajas sobre las alternativas disponibles:
• Capacidad de rehusar el conocimiento de desarrollo existente en lenguajes .NET para el escritorio.
• Excelente desempeño y velocidad de desarrollo.
• Facilidad para interactuar con aplicaciones corporativas gracias a una infraestructura muy completa para manejo de XML y desarrollo de clientes SOAP.
• Integración simple con SQL Server CE.
• Posibilidad de desarrollar en Visual Studio .NET
Java 2 Micro Edition también es atractivo, dado el número de teléfonos celulares que lo soportan. Sin embargo, siento que está más orientado a aplicaciones de entretenimiento que a aplicaciones para empresas.
Herramientas de Desarrollo
Las opciones de IDE dependen de la elección de plataforma: CodeWarrior es una herramienta muy popular para aplicaciones en PalmOS, NetBeans parece ser la opción default en el caso de J2ME, y para el .NET Compact Framework, la mejor opción la ofrece Visual Studio.
Acerca del autor Héctor Obregón es Director General de emLink (www.emlink.com.mx), una empresa mexicana enfocada a desarrollar soluciones y servicios para la automatización basados en tecnología .NET. Héctor también es Microsoft MSDN Regional Director y Microsoft MVP para Windows Embedded. hectoror@emlink.com.mx
- Log in to post comments