p2_1.jpg
  • PRODUCTOS

  • Los productos que desarrollamos son nuestro aval como una empresa de referencia en el mercado de las TI, accedan a la información de nuestros casos y comprueben que, con seguridad, vamos a ser su empresa de tecnología ya que lo que construimos ES tecnología.

ARQUITECTURA PARA EL DESARROLLO DE APLICACIONES EMPRESARIALES DE MOVILIDAD

PDFImprimirE-mail

Las tecnologías de la información y de las comunicaciones (TIC) son un término que se utiliza actualmente para hacer referencia a una gama amplia de servicios, aplicaciones, y tecnologías, que utilizan diversos tipos de equipos y de programas informáticos, y que a menudo se transmiten a través de las redes de telecomunicaciones (Comisión de las Comunidades Europeas 1991). En este sentido, la movilidad se refiere a la tecnología empleada para acceder a la información y a los servicios desde dispositivos móviles. Por tanto, la localización geográfica y el instante de tiempo no deben ser un inconveniente a la hora de establecer la comunicación.
Cada día aparecen en el mercado nuevos dispositivos y tecnologías que permiten un mayor grado de movilidad a los usuarios, pero incompatibles con los anteriores. Esto provoca  que las empresas tengan que realizar un gran esfuerzo económico para migrar a estas nuevas plataformas. En la actualidad está en auge la construcción de aplicaciones de movilidad, aunque  las soluciones se orientan, generalmente, a una plataforma específica o bien suelen ser soluciones que proporcionan una funcionalidad reducida y orientada a mercados concretos. Además, los fabricantes intentan imponer sus tecnologías para adquirir una posición dominante en el mercado, por lo que no hay un entorno de desarrollo común independiente de la plataforma. En consecuencia, desarrollar una aplicación que soporte varios dispositivos normalmente requiere tener distintas ramas de código fuente.
El desarrollo guiado por modelos (Model-Driven Development, MDD) es una manera de enfrentar la ingeniería de software, en la cual a partir de modelos y herramientas de modelación es posible aumentar el nivel de abstracción que se utiliza en el desarrollo de aplicaciones (Brown, Conallen & Tropeano 2005). En el año 2001 se propuso por el Object Management Group (OMG) la Arquitectura guiada por modelos (Model Driven Architecture, MDA), que es una realización particular de MDD y establece una distinción entre grupos de modelos que tienen en consideración información de la plataforma software y hardware y los que no utilizan esa información, que se denominan Modelos Independientes de Plataforma (Platform Independent Models, PIM) (OMG 2003).
Estas estrategias de MDD han sido claves en el diseño de la arquitectura que se presenta en este trabajo, teniendo en cuenta que uno de sus principales objetivos es el de realizar un diseño de la aplicación que sea independiente de la plataforma en la que ésta se desplegará posteriormente.
 
1.    ARQUITECTURA PARA EL DESARROLLO DE APLICACIONES EMPRESARIALES MÓVILES
Desde hace unos años, los cambios tecnológicos han provocado que muchas empresas hayan modificado la forma de hacer negocios, tratando de ofrecer niveles de servicio cada vez más altos. Para conseguir este objetivo, se hace necesario poder establecer una comunicación desde cualquier ubicación geográfica y en cualquier instante de tiempo. Lógicamente, las soluciones  con estas características, ofrecen múltiples ventajas relacionadas con la movilidad de los empleados, aumentando la productividad, disminuyendo los costes, optimizando los procesos de negocio y mejorando la satisfacción  del cliente final.
La gran mayoría de las empresas de cualquier sector empresarial buscan diferenciarse de la competencia para tener la ventaja competitiva que proporciona la información de gestión en tiempo real como sistema de apoyo a la toma de decisiones. Actualmente, las plataformas empresariales de movilidad están proporcionando esta ventaja a las empresas que lo están implantando. Sin embargo, los fabricantes de estos dispositivos y tecnologías no han encontrado un punto común que permita unificar el desarrollo de aplicaciones sobre estas plataformas. Esta situación provoca que actualmente las empresas dependan de la plataforma que hayan elegido inicialmente por el alto coste que supone migrar a otra distinta.
En este trabajo se ha diseñado y construido una arquitectura para el desarrollo de aplicaciones empresariales móviles para distintos dispositivos y plataformas, que permita el desarrollo de este tipo de soluciones independientes de la plataforma y el dispositivo móvil.
 
1.1 Características principales
La arquitectura de movilidad presentada en este trabajo participa en todo el ciclo de vida de una aplicación, desde el desarrollo hasta la puesta en producción. Entre sus características principales se pueden mencionar las siguientes:
  • Diseño de aplicaciones, independiente de la plataforma (“write once – run anywhere”), basado en MDD. Es posible escribir aplicaciones en los lenguajes predominantes del mercado (Java y cualquier lenguaje .NET). Estas aplicaciones serán compatibles con los dispositivos aunque estos no soporten estos lenguajes, pues se podrá acceder a las aplicaciones a través del navegador del dispositivo, ya que la arquitectura cuenta con generadores a HTML, WML y xHTML.
  • Interfaz gráfica adaptable a diferentes formatos de destino. Se detecta el dispositivo sobre el que se ejecuta la aplicación y se adapta a sus características específicas.
  • Arquitectura orientada a servicios. Es posible orquestar servicios en el dispositivo, incluyendo servicios de presentación para la interfaz de usuario.
  • Es posible generar código específico y optimizado para la plataforma de destino utilizando generadores desarrollados a partir de las herramientas de código abierto de openArchitectureWare (openArchitectureWare 2007). También se dispone de intérpretes para determinadas plataformas.
  • Dispone de un GRID como solución colaborativa de orquestación de servicios.
  • Sistema de gestión de contenidos que permite buscar en una estructura jerárquica, con la posibilidad de utilizar “valores por defecto” para los recursos.
  • Disponibilidad de un amplio conjunto de funcionalidades por omisión (built-in). 
 1.2 Servidor de aplicaciones
El servidor de aplicaciones de la arquitectura ofrece las siguientes funcionalidades:
  • Proporciona el entorno de ejecución de la arquitectura.
  • Exporta los servicios comunes tales como:
    • Seguridad
    • Gestión de dispositivos
    • Acceso a datos
    • Validación
    • Transformación
    • Gestión de usuarios y sesiones
    • Adaptación de la interfaz de usuario
    • Conectividad a sistemas externos
  • Actúa como pasarela para que las aplicaciones generadas consuman estos servicios.
  • Las implementaciones de servicios pueden ser nativas o estar basadas en J2EE, JBI, etc.
 1.3 Servicios de datos
Cabe precisar de esta Arquitectura que la capa de servicios de datos está basada en la especificación Service Data Objects (OSOA Collaboration Group 2006) para proporcionar soporte a operaciones desconectadas y desde diferentes orígenes de datos, que son cuestiones imprescindibles en las modernas arquitecturas de software.
Existe también la posibilidad de desarrollar servicios de acceso a datos personalizado (en caso de ser necesario) y que se puede integrar con el resto de la aplicación.
Mediante este enfoque se cubre una importante cantidad de los sistemas de gestión de bases de datos disponibles en el mercado y constituye un importante medio de integración de aplicaciones.
 
1.4 Presentación y adaptación de interfaz de usuario
Un componente vital de toda aplicación es el interfaz de usuario y puede ser el condicionante de la aceptación de uso o no de una aplicación. En este sentido se ha tenido especial cuidado en el diseño de un interfaz de usuario único independiente del dispositivo que se utilice.
Existen múltiples enfoques para la representación de interfaces de usuarios para múltiples dispositivos mediante un único formato de código fuente (Luyten et al, 2004). Lo común de todos ellos es la necesidad de una solución de adaptación en el camino que permita traducir esa única definición de la interfaz de usuario en un formato específico del dispositivo antes de su presentación al usuario. Para ello, en este trabajo se ha desarrollado el Lenguaje de Descripción de Interfaz de Usuario Funcional (FUIDL), basado en XML y que permite describir de forma abstracta una interfaz de usuario, a partir de sus aspectos funcionales e independientemente de su representación concreta, mediante máquinas de estados para especificar los flujos de navegación de una aplicación y también para las diferentes páginas que contienen los controles de la interfaz 
 
1.5 Escalabilidad
Esta solución está basada en una arquitectura de computación en GRID (Foster & Kesselman 1999; Foster & Kesselman 2004) y tiene como objetivos mejorar el rendimiento y la escalabilidad del sistema, mientras que mantiene intacta su disponibilidad (Figura 5). Se puede implementar directamente sobre la infraestructura de servicios existente.
El wrapper del servicio se genera automáticamente a partir del WSDL del servicio y tiene la responsabilidad de publicar en la cola de tareas la solicitud para ejecutar una operación.
El Agente de GRID es un contenedor de activadores. Un Activador es un software que constantemente está observando la cola de tareas hasta que aparezca una solicitud de operación que pueda ser ejecutada por el componente que él manipula. En ese momento realiza una solicitud para ejecutar la operación y en caso de que se la concedan, invoca al servicio para ejecutar la operación indicada. El resultado de la ejecución de la operación se envía directamente al wrapper del servicio.
El Componente de Gestión del GRID mantiene un registro de todos los agentes, activadores y sus niveles de actividad.
 
1.6 Ciclo de vida del desarrollo de una aplicación
El desarrollo de una aplicación sobre la arquitectura propuesta se resume en las siguientes etapas:
  • Diseño (Design Time): En esta fase los desarrolladores diseñan la aplicación móvil. La creación de prototipos es un proceso muy ágil, gracias a que la arquitectura aporta muchas funcionalidades por omisión. Diferentes herramientas de desarrollo estarán disponibles, incluyendo diseñadores visuales para tipos de datos, servicios de datos, interfaz de usuario, validaciones, transformaciones, procesos de negocio, reglas de negocio, etc.
  • Despliegue (Deployment Time): La arquitectura se encarga de componer, adaptar y cargar los componentes de una aplicación en una instancia para un hardware específico. Es posible decidir por la generación de código para la aplicación (o una parte de ella) para una plataforma específica, o por desplegar la aplicación en un servidor de aplicaciones (de la arquitectura) donde podrá ser interpretada durante la fase de ejecución.
  • Ejecución (Run Time): El usuario final ejecuta la aplicación y usa su funcionalidad. La arquitectura proporciona el entorno en el cuál se ejecuta la aplicación, aportando todos los requerimientos necesarios de seguridad, escalabilidad, etc.
2.    CONCLUSIONES
La arquitectura para el desarrollo de aplicaciones empresariales de movilidad que se ha presentado en este trabajo aporta las siguientes ventajas:
  • Desarrollo de aplicaciones en menor tiempo y con menor coste.
  • Aplicaciones multi-plataforma, multi-cultura y multi-dispositivo.
  • Facilidad de integración con sistemas externos.
  • El servidor actúa como pasarela para las aplicaciones, proporcionando un único punto de acceso a todas las facilidades ofrecidas por la arquitectura.
  • Facilidad de portar las aplicaciones desarrolladas sobre la arquitectura a nuevas plataformas.
  • Entorno de ejecución de alta flexibilidad, fiabilidad y escalabilidad.
  • Posibilidad de generación e interpretación de las aplicaciones.
  • Reducida curva de aprendizaje para el desarrollo de aplicaciones, apoyada en una amplia gama de herramientas de desarrollo.
  • Disponibilidad de un amplio conjunto de funcionalidades que se ofrecen por omisión.
3.    VIDEO DEMOSTRATIVO
 
Este video demostrativo nos guia paso a paso en la creacion de una aplicacion de gestion de pedidos, demostrando la rapidez y la facilidad de uso de la plataforma REF.
 
Parte 1 de 3
 
 
Parte 2 de 3
 
 
Parte 3 de 3