Anda di halaman 1dari 9

DESARROLLO DE APLICACIONES MVILES DE PRESTACIN DE SERVICIOS EN PLATAFORMA BLACKBERRY

Ing. Roberto Carlos Lema Vinlasaca 2 Ing. Fabin Andrs Vsquez Cevallos 3 Msc. Ing. Bolvar Paln Tamayo (Director)
1

Resumen
TAME APP es una aplicacin mvil de prestacin de servicios a clientes de la aerolnea TAME en plataforma BlackBerry. Esta aplicacin muestra informacin en tiempo real a los usuarios quienes pueden realizar consultas sobre estados de vuelo, itinerarios de vuelo, estados de envi de carga, consulta de millas acumuladas (en caso de ser socio de TAME) y realizar el proceso de Check-in previo al abordaje al avin. TAME APP est desarrollada en base al modelo MVC (Modelo-Vista-Controlador), emplea Java como lenguaje de programacin; consume datos en tiempo real mediante servicios web RESTFUL y SOAP. Se utiliz XP (Extreme Programming) como metodologa base de desarrollo y se evalu la aplicacin por medio de la formulacin de casos de pruebas en cada versin entregable de la aplicacin, durante el desarrollo, tanto en entorno de pruebas controladas como en el entorno real con usuarios finales, obteniendo conclusiones, recomendaciones y reflexiones para futuras correcciones y mejoras de la aplicacin.

Introduccin
Las tendencias actuales se mueven hacia la movilizacin de los servicios, es decir prestacin de servicios a travs de los terminales mviles, casi todas las transacciones de primera necesidad pueden ser realizadas mediante dispositivos mviles que tengan conexin a internet, un ejemplo de esto son las aplicaciones bancarias. Con esto se logra ahorrar tiempo y dinero, ya que para acceder a dichos servicios comerciales, en la mayora de los casos, se deben realizar largas filas. El caso de estudio tomado para realizar este tipo de aplicacin fue la empresa pblica TAME EP, que presta a sus clientes servicios de transporte de carga y pasajeros a nivel nacional e internacional. La aplicacin brindar a los usuarios la facilidad, comodidad y ahorro de tiempo en realizar actividades de: Consulta de estado e itinerarios de vuelo. Consulta de estado de envos o carga. Consulta de millas y beneficios para socios. Check-IN mvil.

A continuacin se describen los requerimientos presentados por parte de TAME EP segn las necesidades de sus clientes para ser convertidas en parte funcional de la aplicacin. Consulta de Estado de Carga Permitir la consulta del estado de carga ingresando el nmero de gua (texto numrico de 13 caracteres) y mostrar como resultado de la consulta los siguientes datos sobre el estado de carga: Origen Destino Estado Nmero de vuelo Hora de llegada

Consulta de Estados de Vuelo Permitir la consulta del estado de un vuelo, ingresando el nmero de vuelo (mximo de 3 dgitos) y la fecha. Como resultado mostrar los siguientes datos del vuelo: Origen Destino Estado Vuelo Hora de salida Hora de llegada Hora programada

A los cuales se podr acceder desde cualquier dispositivo mvil BlackBerry en cualquier momento. Plataforma seleccionada con ayuda del departamento de marketing de TAME EP, quienes la sugirieron debido a la gran penetracin de esta marca en el mercado ecuatoriano.

REQUERIMIENTOS DE LA APLICACIN
Consulta de Estado de Vuelo por ciudad de origen, destino y fecha. Permitir la consulta del estado de un vuelo seleccionando la ciudad de origen, ciudad de destino y fecha de vuelo. Como resultado mostrar:
1 2

Ing. Roberto Lema email: betho7989@gmail.com Ing. Fabin Vsquez email: fvasquezc23@gmail.com 3 Msc. Ing. Bolvar Paln email: bopalan2008@gmail.com

Nmero de vuelo Ciudad de origen

Ciudad de destino Hora programada

al esfuerzo estimado en la realizacin de las historias de usuario, las prioridades del cliente y el tiempo que toma en la ejecucin de pruebas funcionales de la aplicacin. Adems se define para cada iteracin los mdulos de la aplicacin: Tabla 1.
MDULO ESTADO DE CARGA REQUERIMIENTOS Consulta de Guas. Consulta de Estado de Vuelo por nmero de vuelo y fecha Consulta de Estado de Vuelo por ciudad origen, destino y fecha. Consulta Itinerario de vuelos Inicio de Sesin Consulta de millas acumuladas Consulta de transacciones realizadas Check - IN
Tabla 1: Mdulos de la aplicacin

Consulta de Itinerario de Vuelo Permitir la consulta de los itinerarios de vuelo para la fecha y las ciudades seleccionadas por el usuario. Como resultado mostrar una lista de los vuelos encontrados presentando: Nmero de vuelo Ciudad de Origen Ciudad de Destino Hora programada

ESTADO DE VUELO

Consulta de TAME millas. Permitir al usuario afiliado iniciar sesin con su identificacin de afiliado y contrasea. Iniciada la sesin se debe: Mostrar el total de las millas acumuladas por el afiliado. Mostrar una lista de los premios que puede canjear el socio. Mostrar las transacciones realizadas por el socio y las millas ganadas en cada una de ellas.

ITINERARIO DE VUELO TAME MILLAS

CHECK IN

Iteraciones Primera Iteracin El objetivo de la primera iteracin es el de establecer la prioridad de los requerimientos expuestos, el desarrollo del primer mdulo de la aplicacin, la implementacin de los servicios web para dicho mdulo y la presentacin de la primera versin de la aplicacin. Tareas, Figura 1.

Check-in Permitir a los usuarios realizar el proceso de CHECK-IN desde su dispositivo mvil BlackBerry, el cual incluye: Confirmacin de asistencia Seleccin del asiento Envo de ticket al correo electrnico del usuario para impresin.

En este proceso no se contempla para usuarios que viajen con equipaje, estos usuarios debern acercarse a los counters en el aeropuerto para realizar el chequeo de ellos y de su equipaje.

METODOLOGA DE DESARROLLO
[1] En base a las prestaciones que presentar a los usuarios esta aplicacin y a los constantes cambios, es importante que el desarrollo se de en base a ello; por tal razn la metodologa seleccionada para el caso ha sido XP (Extremme Programming). XP, es utilizada para proyectos de corto plazo, pequeos equipos de desarrollo y cuyo plazo de entrega es relativamente corto, presentando al usuario en pequeos entregables que se van ajustando en tiempo real de acuerdo al avance y las dificultades del proyecto.

ANLISIS
Segn los requerimientos expuestos, se decide realizar cuatro iteraciones para el desarrollo del proyecto en base
Figura 1: Tareas - Primera Iteracin

Segunda Iteracin El objetivo de la segunda iteracin es el de definir los servicios web prestados por TAME que se utilizarn en el segundo y tercer mdulo de la aplicacin. Se desarrollarn los mdulos y se presentar la siguiente versin funcional de la aplicacin. Tareas, Figura 2

Figura 3: Tareas - Tercera iteracin

Figura 2: Tareas - Segunda iteracin

Tercera Iteracin El objetivo de la tercera iteracin es el de implementar los servicios web que se utilizan en el cuarto modulo para la consulta de millas acumuladas. Se desarrollar el mdulo y se presentar la siguiente versin funcional de la aplicacin. Tareas, Figura 3 Cuarta Iteracin El objetivo de la cuarta iteracin es el implementar los servicios web para el mdulo de Check in, se desarrollar el mdulo y se presentar la ltima versin funcional de la aplicacin. Tareas, Figura 4.
Figura 4: Tareas - Cuarta Iteracin

Access Point Wi-Fi

Datos

Servidor Web

Servidor Aplicaciones

Servidor BDD

Terminales BlackBerry Operadora Mvil Gateway Operadora Mvil

Servicios Web

El usuario utilizar su celular para acceder a una App cliente de los servicios informticos de TAME EP.

Enviar y recibir informacin en tiempo real a travs del Internet. Sin importar que se conecte mediante WiFi en una red LAN utilice la infraestructura de datos de las operadoras mviles.

En el centro de datos de TAME EP, la solicitud recibida ser verificada y procesada; luego se enviar una respuesta con la informacin solicitada por el cliente.

Figura 5: Arquitectura de la aplicacin

DISEO
La arquitectura general de la aplicacin se describe en la figura 5, en resumen, el usuario acceder a informacin en tiempo real de los servidores de TAME EP desde su terminal BlackBerry, por lo tanto deber utilizar Internet para poder llegar a estos datos. Datos Partiendo del nivel ms bajo, el diseo de la base de datos, el cual no fue parte del desarrollo de esta aplicacin, ya que se utiliz informacin existente, la cual anteriormente haba sido organizada de acuerdo a un modelo de datos propuesto por TAME EP; nicamente, se desarroll un pequeo modelo de datos para nuestra parte final, es decir el mdulo de Check-In, debido a restricciones de la empresa ya que no contaban con estos datos, porque de ellos se encargaba un outsourcing. (El modelo de datos se adjunta en el Anexo 1). Servicios Web Todos los datos que son utilizados por esta aplicacin, estn expuestos a travs de servicios web, algunos de estos servicios fueron desarrollados por TAME EP; por otra parte los dems servicios web necesarios para cumplir los requerimientos de la aplicacin, fueron desarrollados utilizando la arquitectura REST. Todas las consultas se realizan invocando mtodos HTTP

GET a las distintas URI y las actualizaciones mediante un HTTP POST. Los datos son serializados a XML utilizando la api JAX-RS y como medida de seguridad en los casos requeridos se utiliz la autenticacin de mensajes va suma HASH (HMAC) asegurando las peticiones con una secuencia de caracteres, a manera de API key. La aplicacin TAME APP, acceder a los datos mediante WiFi o la cobertura de datos 2G 3G de la operadora mvil, enviar peticiones a los servicios web y analizar las respuestas para mostrar la informacin requerida al usuario. Interfaces Las interfaces de la aplicacin fueron diseadas tomando en cuenta el reducido tamao de la pantalla y la facilidad de uso. Al iniciar la aplicacin se muestra un men principal desde el cual se puede acceder a los diferentes mdulos. Todos los componentes de este sistema, fueron desarrollados utilizando el paradigma de programacin orientada a objetos, por lo tanto se crearon clases Java, las cuales fueron organizadas de acuerdo a una arquitectura de n capas, descritas en las tablas 2 y 3.
Aplicacin Web (3-capas) Serializacin XML, los resultados de las llamadas a los mtodos se presentarn en XML

Presentacin

Figura 6: Modelo Entidad Relacin de Base de Datos Check-in

Negocio

Datos

Aplicacin Web (3-capas) Reglas del negocio, para nuestro caso puntual, estas reglas sern nicamente validaciones y restricciones. Clases de Entidad, que mantengan la consistencia con las tablas o vistas de las bases de datos.
Tabla 2: Arquitectura Servicios Web

Presentacin Comunicacin

Cliente Mvil (2-capas) Pantallas de mens, formularios y ventanas emergentes. Llamadas a los procedimientos remotos de los servicios web, procesamiento de respuestas.

Tabla 3: Arquitectura Cliente BlackBerry

IMPLEMENTACIN
Como estaba previsto en el anlisis de requerimientos, se implemento la aplicacin iterativamente, por mdulos entregables y utilizables y cumpliendo algunos estndares de programacin Java, como la organizacin de ficheros y la nomenclatura de los nombres. Interfaces
Figura 7: pantalla principal TAME APP.

Las interfaces fueron implementadas sin ayuda de una herramienta generadora de cdigo, y tomando en cuenta distintos tamaos de pantalla 320x240, 360x480, 360x400 y 480x360. En la figura 7 se muestra la pantalla principal de la aplicacin tal y como se ve en un BlackBerry 9550.

Servicios Web Todas las llamadas a los servicios web, se realizaron en segundo plano manejando hilos, utilizando el cdigo descrito en la tabla 4.

FabricaDeConexiones fc = new FabricaDeConexiones(); con = (HttpConnection) fc.getConnection(url); Tabla 4: Fbrica de conexiones

Si la respuesta del servidor no es HTTP OK (200) se lanza un error para ser capturado y manejado por el hilo que llam a este procedimiento, caso contrario, se lee el contenido de la respuesta y se lo almacena para su posterior procesamiento. Las respuestas del servidor son documentos XML, un ejemplo de respuesta en la tabla 7.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <afiliado> <categoriaafiliado> <codigo>65</codigo> <idcategoriaafiliado>21 </idcategoriaafiliado> <nombre>SOCIO TAME MILLAS</nombre> <rangofinal>999999999</rangofinal> <rangoinicial>20000</rangoinicial> </categoriaafiliado> <codigoactivacion>1234578901234 </codigoactivacion> <documento>1720027281</documento> <email>fvasquezc23@gmail.com</email> <estado>65</estado> <estadocivil>83</estadocivil> <fechaafiliacion>2012-05-09T00:00:0005:00</fechaafiliacion> <fechanacimiento>1989-06-23T00:00:0005:00</fechanacimiento> <genero>77</genero> <idafiliado>200810865</idafiliado> <idniveleducacion>23</idniveleducacion> <idocupacion>21</idocupacion> <idpais>41</idpais> <primerApellido>VASQUEZ</primerApellido> <primerNombre>FABIAN</primerNombre> <segundoApellido>CEVALLOS</segundoApellido> <segundoNombre>ANDRES</segundoNombre> <tipoidentificacion>67</tipoidentificacion> </afiliado> Tabla 7: Repuesta XML del servidor

La clase FabricaDeConexiones, se encarga de buscar el mtodo de transporte de red ms adecuado ya sea WiFi o red mvil y abre una conexin a la URL indicada como parmetro. La sentencia de control (tabla 5) se encarga de firmar las peticiones, siendo el caso de que sea necesario proteger las solicitudes.
if (credenciales != null){ byte[] postData = null; if(base64){ String credentialsBase64 = Base64OutputStream.encodeAsString(credenciales. getBytes(), 0, credenciales.getBytes().length, false, false); con.setRequestProperty("checksum", credentialsBase64); }else{ con.setRequestProperty("checksum", credenciales); } /** * El metodo POST se utiliza para enviar datos en la consulta HTTP y realizar la confirmacion del asiento. */ if (metod.equals("POST")){ con.setRequestMethod("POST"); con.setRequestProperty("Content-Type", "application/xml"); postData = urlparams.getBytes("UTF-8"); con.setRequestProperty("Content-Length", String.valueOf(postData.length)); OutputStream os = con.openOutputStream(); os.write(postData); os.flush(); } } Tabla 5: Firma de peticiones

Las sumas HASH, se envan en la cabecera HTTP en un campo al cual se llam checksum, existen casos en que este campo viaja a travs del Internet codificado en base64. Esta firma es siempre requerida cuando se utiliza HTTP POST, en este mtodo se adjunta datos despus de la cabecera, esto se puede ver el parte final del prrafo de cdigo anterior. Finalmente, se procesa la respuesta del servidor con el cdigo de la tabla 6.
int responseCode = ((HttpConnection) con).getResponseCode(); if (responseCode != HttpConnection.HTTP_OK) { throw new ServerException(responseCode, ((HttpConnection) con).getResponseMessage()); } is = con.openInputStream(); Tabla 6: Procesador de respuestas

Estos documentos son analizados y procesados para luego ser mostrados de una forma entendible y amigable al usuario, la figura 8 muestra una captura de la pantalla de TAME MILLAS con la informacin anterior luego de ser procesada, cabe indicar que no todos los datos del documento XML son mostrados al usuario, pero aun as son enviados por el servicio web, ya que han sido pensado para un uso posterior. Al final de cada iteracin se realizaron pruebas de unitarias para ver si se satisfacan los requerimientos y pruebas de integracin para asegurarse que los mdulos anteriores seguan en perfecto funcionamiento al agregar nuevos.

PRUEBAS
Como parte del desarrollo de esta aplicacin, se realizaron las siguientes pruebas al sistema. Pruebas de recuperacin Miden la capacidad del sistema de continuar funcionando en caso de que se presente alguna eventualidad, ya sea

perdida de datos, perdida de energa, daos a los equipos o cualquier otro tipo de desastre ya sea natural o de otra ndole. En este caso particular, nos deslindamos de la recuperacin en cualquier evento que afecte a los servidores web, ya que estn a cargo de TAME EP y no tenemos control sobre estos.

Caso (clientes) Crtico (1104) ptimo (600) Carga (1104)

Peticiones HTTP 7728 4200 2162

% error promedio 30.50% 11,86% 6,98%

Tiempo Promedio de Respuesta 52,873 seg. 46,448 seg. 32,446 seg.

Tabla 8: Resultados Pruebas de Resistencia y Rendimiento

Cmo se puede observar en la tabla 8, los servicios web responden con bastantes problemas en el caso crtico, con algunos problemas en el caso ptimo y con problemas mnimos para la carga promedio. Estas medidas fueron tomadas utilizando Apache JMeter, realizando llamadas a los servidores de produccin de TAME, durante horas laborables, si bien los resultados no son calificaciones perfectas, son resultados aceptables para el trabajo aqu descrito. Seguridad Las pruebas de seguridad miden la vulnerabilidad ante ataques por parte de terceros. Se cubri tres puntos bsicos, descritos en la tabla 9.

Figura 8: Pantalla TAME MILLAS

En cuanto a la recuperacin de la aplicacin en el dispositivo BlackBerry, en caso de daos de hardware o software sobre el terminal mvil, una vez restablecido el funcionamiento normal del celular, siempre se puede volver a instalar la aplicacin desde la direccin http://www3.tame.com.ec/blackberry. Resistencia y Rendimiento Estas pruebas miden la capacidad de respuesta del servidor para atender a clientes concurrentemente, para la realizacin de las pruebas de resistencia se debe establecer dos casos, el caso crtico que tendr un alto nmero de clientes concurrentes para provocar errores en el sistema y ver el comportamiento del mismo; y el caso optimo en el cual se tendr un nmero esperado de clientes concurrentes y se tratar de satisfacer a todos. Mientras que para las pruebas de rendimiento, se establece un caso de carga tpica con el nmero de usuarios que se espera atender sin problemas. A continuacin se presenta una tabla con el resumen de los resultados obtenidos.

Prueba SQL Injection Ejecucin de cdigo SQL no programado Robo de contraseas Captura de la contrasea mientras viaja a travs del internet Acceso contralado a Servicio Web de Check-In Este servicio web es una API restringida a TAME APP.

Resultado No es posible, ya que se utiliz Hibernate para construir las sentencias SQL. No es posible, ya que no se enva contraseas en texto plano. Si la contrasea es robada, permitir nicamente acceso a consultas a los servicios web de TAME APP. No es posible, se controla el acceso no autorizado y la integridad de las peticiones mediante autenticacin de mensajes va suma HASH (HMAC).

Tabla 9: Pruebas de seguridad

CONTROL DE CALIDAD
[2] Finalmente, se comprob la aceptacin del software por parte del usuario, aplicando la norma ISO 9126-4 de Calidad en Uso, la cual describe la calidad de un producto software a partir de cuatro caractersticas, Efectividad, Productividad, Seguridad y Satisfaccin. La efectividad mide la capacidad del producto software en alcanzar objetivos con precisin, exactitud y completitud dependiendo de las necesidades de los usuarios. La productividad cuantifica la capacidad del producto software que permite a los usuarios utilizar los recursos en relacin al nivel de eficacia. Los recursos pueden incluir un esfuerzo mental o fsico, tiempo, materiales o costo financiero. La seguridad evala la capacidad del producto en alcanzar niveles mnimos de riesgo al utilizar la aplicacin; cabe destacar que esta caracterstica no ser

evaluada, ya que nuestro producto no inflige ningn riesgo a la salud ni econmico para el usuario. La satisfaccin calcula la capacidad del producto en satisfacer las necesidades mnimas del usuario dentro de un contexto de uso. Para la evaluacin de la calidad en uso de TAME APP, se realizaron pruebas con tres grupos, el primero conformado por participantes de 20 a 29 aos, el segundo de 30 a 39 aos y el tercero de 40 o ms; todos los colaboradores deban estar familiarizados con los servicios de TAME EP y ser usuarios BlackBerry. Fueron sometidos a probar la aplicacin en cada uno de los requerimientos, cumpliendo las siguientes actividades: Consultar el estado de un vuelo Consultar estado de un paquete Consultar los itinerarios de un vuelo Consultar estado de cuenta TAME MILLAS (incluye inicio de sesin) Consultar premios TAME MILLAS Proceso de Check-In Mvil

manejada, utilizando mtodos de encriptacin, llaves de acceso y confirmacin, registros de la aplicacin, etc. Los resultados que se dan al realizar este tipo de aplicacin han sido satisfactorios, ya que los usuarios se han visto beneficiados en ahorro de tiempo y dinero al poder realizar actividades comerciales directamente desde su dispositivo. La plataforma presta ciertas facilidades en cuanto al lenguaje de desarrollo; al ser JAVA existe una gran disponibilidad de recursos, manuales, tutoriales, foros, comunidades que aportan informacin para resolver problemas. Al tratarse de un proyecto destinado a usuarios finales, la aplicacin estuvo sujeta a cambios constantes surgidos ante las necesidades variables del usuario; por esta razn la seleccin de una metodologa de desarrollo que permita agilidad en cambios y entrega de versiones funcionales es importante, siendo XP la mejor opcin.

Se tom tiempos y porcentaje de completitud de cada una de las tareas y adems se les pidi que completasen una encuesta de satisfaccin. El resumen de los resultados de las pruebas de calidad en uso, se muestra en la (Figura 9). Las tres caractersticas evaluadas superaron los mnimos requeridos, y por lo tanto tambin el total, haciendo un xito el control de calidad de este producto Software.

REFERENCIAS
[1] K. Beck, Extreme Programming Explained, AdisonWesley, 1999. [2] International Standard, ISO/IEC 9126-4 INFORMATION TECHNOLOGY - SOFTWARE PRODUCT QUALITY - Part 4: Quality in use Metrics. Final Document, Suiza, 2002.

ACERCA DE LOS AUTORES


ROBERTO CARLOS LEMA VINLASACA. Nacido en Quito el 7 de Septiembre de 1989. Los estudios primarios y secundarios los realiz en la Unidad Educativa Evanglica T. W. Anderson, obteniendo el ttulo de Bachiller en Ciencias especializacin Fsico Matemticas. Los estudios superiores los realiz en la Escuela Politcnica Nacional, Facultad de Ingeniera de Sistemas en la carrera de Ingeniera en Sistemas Informticos y de Computacin. La actividad profesional principalmente las ha realizado en empresas de Desarrollo de Software y Consultora, en el rea de desarrollo de software, control de calidad y soporte a usuarios.

Figura 9: Resultados Calidad en Uso

CONCLUSIONES
Terminado el desarrollo de la aplicacin y habiendo hecho una respectiva evaluacin, se propone las siguientes conclusiones: Debido a que el proyecto consume datos en tiempo real para mostrar informacin actual al usuario, se hace indispensable que estos sean accedidos de forma segura ya que representa en la mayora de los casos informacin sensible. La forma de hacerlo se puede dar de diferentes maneras en base al tipo de informacin

FABIN ANDRS VSQUEZ CEVALLOS Nacido el 23 de Junio de 1989 en Ibarra. Los estudios primarios y secundarios los realiz en la Unidad Educativa Ecuatoriano Suizo, obteniendo el ttulo de Bachiller en Ciencias especializacin Fsico Matemticas. Los estudios superiores los realiz en la Escuela Politcnica Nacional, Facultad de Ingeniera de Sistemas en la carrera de Ingeniera en Sistemas Informticos y de Computacin. La actividad profesional principalmente las ha realizado en empresas de Desarrollo de Software y Consultora, en el rea de desarrollo de software y control de calidad. INGENIERO BOLVAR PALN TAMAYO. Ingeniero de electrnica y comunicaciones por la Escuela Politcnica nacional en 1984, obtuvo su maestra en ciencias de la computacin e informtica en 1986, ha tomado cursos de postgrado en reas de asesora empresarial e informtica, es consultor del PNUD-BIDOIT-FUNDACYT, y consultor en informtica de PATCO Ca Ltda. Area de inters: Investigacin en Ingeniera de Software.

Anda mungkin juga menyukai