UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERÍA



Documentos relacionados
pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Sistema de marketing de proximidad

Introducción a las redes de computadores

Symantec Desktop and Laptop Option

Descripción. Este Software cumple los siguientes hitos:

Beneficios estratégicos para su organización. Beneficios. Características V

Información de Producto:

Capítulo 5. Cliente-Servidor.

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Windows Server 2012: Infraestructura de Escritorio Virtual

CARACTERISTICAS DEL SISTEMA

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

WINDOWS : TERMINAL SERVER

UNIVERSIDAD DE SALAMANCA

Dirección General de Administración de Bienes y Contratación Administrativa

Windows Server Windows Server 2003

CAPÍTULO 1 Instrumentación Virtual

CAPITULO I El Problema

Ventajas del software del SIGOB para las instituciones

MANUAL DE USUARIO PARA LA INSTALACION DE LOS AGENTES COMMVAULT SIMPANA 9.0

INTELIGENTE Y VERSÁTIL

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

1 EL SISTEMA R/3 DE SAP AG

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

asired middleware XML Así-Red Servicios Telemáticos, S.L.L. w w w. a s i r e d. e s

Módulo 7: Los activos de Seguridad de la Información

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Toda base de datos relacional se basa en dos objetos

INGENIERÍA DE SOFTWARE. Sesión 3: Tipos

ADMINISTRACIÓN CENTRALIZADA DELL POWERVAULT DL2000 CON TECNOLOGÍA SYMANTEC

CAPITULO 8. Planeamiento, Arquitectura e Implementación

E-learning: E-learning:

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Windows 2000 Server. Manual de Windows 2000 Server

Ingeniería de Software. Pruebas

Instalación del Software Magaya

INF 473 Desarrollo de Aplicaciones en

Sistemas de información

COLEGIO COMPUESTUDIO

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Las TIC: una apuesta para la mejora de la educación en la Comunidad de Madrid

Configuracion Escritorio Remoto Windows 2003

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

Operación Microsoft Windows

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Componentes de Integración entre Plataformas Información Detallada

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Seminario Electrónico de Soluciones Tecnológicas sobre Ethernet de Largo Alcance

Ministerio de Educación, Cultura y Deporte. Joomla! La web en entornos educativos. Guía del alumnado

Cómo hacer backups en ambientes virtualizados?

Unidad III. Software para la administración de proyectos.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Universidad Mayor de San Andrés Facultad de Ciencias Puras y Naturales Carrera de Informática. ired. Sistema de Inventario de Red

CAPITULO I FORMULACION DEL PROBLEMA

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

Symantec Backup Exec System Recovery 7.0 Server Edition. Recuperación de sistemas en cuestión de minutos, en lugar de en horas o días

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

1. INTRODUCCIÓN Y OBJETIVOS

10 razones para cambiarse a un conmutador IP

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE

Soporte Técnico de Software HP

DIAGNOSTICO SERVIDOR Y PLATAFORMA MOODLE

Soporte y mantenimiento de base de datos y aplicativos

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Guía de uso del Cloud Datacenter de acens

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Instalación de Crystal Reports

ING. YURI RODRIGUEZ ALVA

Hostaliawhitepapers. Las ventajas de los Servidores dedicados. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

TABLA DE CONTENIDO: 1 DIMENSIONAMIENTO DE SERVIDORES GALEÓN 2

Introducción a la Firma Electrónica en MIDAS

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Google Drive y Almacenamiento en Nubes Virtuales

FileMaker Pro 13. Uso de una Conexión a Escritorio remoto con FileMaker Pro 13

Software Computacional y su clasificación

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Visor de presupuestos en Android

I INTRODUCCIÓN. 1.1 Objetivos

LiLa Portal Guía para profesores

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

MANUAL COPIAS DE SEGURIDAD

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

SOLUCIÓN HOSPEDADA. Introducción a los modelos de asociación de partners de Microsoft Dynamics CRM

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

mobile PhoneTools Guía de inicio rápido

4. Programación Paralela

OLIMPO Servidor Universal

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

GedicoPDA: software de preventa

Transcripción:

UNIVERSIDAD ALBERT EINSTEIN FACULTAD DE INGENIERÍA RESUMEN EJECUTIVO DEL TRABAJO DE GRADUACIÓN: DISEÑO E IMPLEMENTACIÓN DE UN SERVIDOR DE SINCRONIZACIÓN MULTIHILO PARA APLICACIONES MÓVILES EMPRESARIALES PREVIA OPCIÓN AL TÍTULO DE: INGENIERO EN COMPUTACIÓN PRESENTADO POR: BORIS ALEKSEI LEMUS BENAVIDES MARZO 2006 ANTIGUO CUSCATLÁN, LA LIBERTAD, EL SALVADOR, C.A.

ETAPA CONCEPTUAL

Introducción Durante los últimos años, desde la aparición de las primeras PDA s, ha venido en aumento la demanda de aplicaciones empresariales, que saquen provecho a la movilidad que proveen estos dispositivos. Entre las aplicaciones posibles, de las PDA s están, por ejemplo: control y manejo de inventarios de bodega, control de inventarios de activo fijo, aplicaciones de control de cobros y pre-venta en ruta, aplicaciones para encuestadores, etc. Con la aparición de este nuevo género de aplicaciones, llamadas, por lo general, aplicaciones móviles, ha surgido la necesidad de sincronizar la información contenida en las bases de datos empresariales con la información portátil que puede almacenarse en un dispositivo móvil. Este proceso de sincronización, involucra muchos factores a tomar en cuenta; para citar algunos: compatibilidad entre los formatos de archivo de los sistemas operativos de escritorio y los sistemas operativos de los dispositivos móviles, limitados recursos en los dispositivos móviles (memoria y velocidad de procesamiento), conectividad intermitente entre ambos sistemas. En este escenario se hace necesario el desarrollo de herramientas, que sirvan de vínculo entre ambos sistemas; que permitan la transferencia de información entre ambos, pero que, en especial, bajo el modelo cliente-servidor, soporten la sincronización múltiple, es decir con varios dispositivos móviles a la vez. Es por esto que desde el principio han existido piezas de software para sincronizar terminales que funcionan con los dos sistemas operativos móviles más conocidos: Pocket PC y Palm OS, que utilizan ActiveSync y HotSync, respectivamente, para llevar a cabo la tarea mencionada. Pocket PC fue creado por Microsoft y está en constante evolución y puede encontrarse aún con diferentes nombres como Windows Mobile, Windows CE, etc. Por otro lado Palm OS es producido por PalmSource Inc. y actualmente se encuentra ya en su versión 5. Si bien estas pequeñas aplicaciones satisfacen las necesidades de usuarios individuales o pequeños grupos (sincronización de información personal, agenda, correos, notas, etc.), por otro lado, carecen de características importantes cuando se trata de aplicaciones más complejas, que manejan datos de manera tabular y con estructuras relacionales, donde la cantidad de usuarios aumenta y la rapidez con que se sincroniza la información es importante. Un ejemplo importante de las carencias de estas aplicaciones es la incapacidad de sincronizar dos o más dispositivos móviles al mismo tiempo. El presenta trabajo de graduación consiste en el desarrollo de un sistema de sincronización que permita superar las carencias mencionadas, es decir: permita la sincronización de varios dispositivos móviles al mismo tiempo y se especialice en la sincronización de datos relacionales directamente a una base de datos. Considerando de la portabilidad del sistema es importante, éste se ha desarrollado en el lenguaje de programación Java, de manera que el sistema podrá ejecutarse en diversos sistemas operativos. - 1 -

A. Planteamiento del Problema La sincronización de aplicaciones móviles de nivel empresarial, como por ejemplo, aplicaciones de venta en ruta, pre-venta, cobros, distribución de paquetería etc., cuyos usuarios pueden rondar los cientos dentro de una misma empresa, el volumen de información que manejan es relativamente considerable, puede volverse, dadas las características mencionadas, una tarea demasiado costosa en términos operativos, económicos y/o de tiempo. Por ejemplo, con los esquemas de sincronización actuales, donde sólo un usuario puede sincronizar la información al mismo tiempo, la información pasa necesariamente por tablas intermedias antes de llegar a la base de datos empresarial y asumiendo que son 100 los usuarios que hacen uso del sistema, pueden seguirse dos caminos: 1) Que los usuarios ejecuten el proceso de sincronización uno detrás de otro. Si este proceso dura solamente unos 2 minutos, para que la información de todos los usuarios sea sincronizada se requerirían : 1 hr ( 2 min 100 usuarios) = 200 min = 3. 3 hrs 60 min 3.3 horas es un tiempo exageradamente alejado del concepto de eficiencia que cualquier empresa aceptaría. 2) Que se provea a los usuarios de los medios de hardware para sincronizar la información en distintas máquinas. Por ejemplo dividiendo el grupo de 100 en 5 grupos de veinte. De esta manera se requerirían 5 computadoras (una por grupo) y, por otro lado, también seria necesario un mecanismo para después consolidar toda la información sincronizada en las 5 máquinas. En otras palabras, con esta opción, se reduce el tiempo de sincronización pero aumenta el costo en hardware y software. B. Justificación Actualmente, los procesos que las empresas se ven obligadas a seguir para actualizar sus bases de datos con información externa son engorrosos y costosos, no sólo en términos económicos: también el tiempo invertido en ese procesamiento de la información resulta importante. El prototipo que se propondrá al final de este trabajo de investigación reducirá enormemente la cantidad de recursos necesarios para mantener al día las bases de datos empresariales, volviendo más eficientes, y por lo tanto, menos costosos, todos los procesos involucrados en tal tarea. El resultado de este proyecto podrá utilizarse como un marco de trabajo para desarrollar software de sincronización más complejas, orientadas a mantener sincronizada la información capturada en los dispositivos móviles con las bases de datos empresariales y otras tareas características de las aplicaciones móviles. Además, el aporte en términos didácticos también será considerable pues se tocarán temas - 2 -

avanzados de programación orientada a objetos en Java como la utilización de Sockets, API s para XML y JDBC. Que si bien no serán tocados en su totalidad, servirán como un punto de referencia para quien desee investigar más sobre tales temas. C. Limitaciones E.1 Sociales El trabajo será desarrollado dentro del contexto de los requerimientos de la empresa desarrolladora de software DATEK, S.A. de C.V. pero el resultado final será aplicable a cualquier empresa que se vea en la necesidad de sincronizar información entre sus aplicaciones portátiles y sus bases de datos. E.2 Temporales El proyecto de investigación esta planeado para llevarse a cabo en el lapso de un año comprendido entre Marzo de 2005 y Marzo de 2006. E.3 Geográficas El estudio se desarrollará dentro de los límites del territorio salvadoreño. D. Alcances El presente proyecto tiene como finalidad presentar un diseño de sistema de sincronización múltiple que sirva como prototipo o fundamento para diseños más completos. Se hará énfasis en el diseño de los procesos a ser ejecutados por el servidor y en la implementación de estos en el lenguaje de programación Java. Se trabajará en una interfaz gráfica de usuario básica para el control y configuración del servidor. Naturalmente, cuando se habla de un servidor es necesario tocar la parte complementaria que son los clientes. Por esta razón será necesario diseñar e implementar un ejemplo funcional de cliente que sea capaz de interactuar con el servidor. Por otro lado, aunque el protocolo para la comunicación con el servidor quedará claramente definido, está fuera del alcance de este trabajo especificar los procesos por los cuales la aplicación cliente interactúa (actualiza o modifica) las bases de datos en los dispositivos móviles ya que esto está en dependencia directa del lenguaje de programación utilizado para desarrollar la aplicación móvil. En el caso que nos ocupa sólo se abordará el formato utilizado por el lenguaje de programación SuperWaba. - 3 -

E. Objetivo General Diseñar un prototipo de sistema de sincronización multihilo configurable para dispositivos móviles que permita la transferencia de datos directa y concurrente (varios usuarios al mismo tiempo) entre estos y una base de datos sin la utilización de archivos intermedios, e implementar el sistema en el lenguaje de programación Java. F. Objetivos Específicos - Diseñar un protocolo de nivel de aplicación en el servidor de sincronización que permita transferir información en formatos diversos (texto, enteros, punto flotante, etc.) entre este y un dispositivo móvil. - Diseñar, bajo un modelo multihilo, los procesos en el servidor para que este sea capaz de manejar varias sesiones de transferencia de datos con varios dispositivos móviles al mismo tiempo y sincronizar esos datos con los existentes en una base de datos sin la utilización de archivos intermedios. - Diseñar una aplicación cliente capaz de ejecutarse en un dispositivo móvil y que se comunique con el servidor de sincronización por medio del protocolo especificado por éste y modifique los datos contenidos en la base de datos móvil. Implementar el sistema cliente servidor y realizar pruebas de tiempos de respuesta y sobrecarga de demanda sobre el servidor. - 4 -

ETAPA DE INVESTIGACIÓN

Se examinó el contexto actual de las aplicaciones móviles empresariales en El Salvador desde el punto de vista del hardware y del software, con el objetivo de determinar los requerimientos del sistema de sincronización. Encontrándose que entre las aplicaciones móviles de uso común en nuestro país se encuentran: Control de inventario en bodega: Usualmente utilizadas por empresas distribuidoras cuyos productos tienen un elevado grado de rotación. Estas aplicaciones permiten rastrear los movimientos de los productos desde su ingreso a las bodegas, traslados de bodegas, cambios de ubicación dentro de una bodega, hasta el despacho del producto. Para cumplir con esta tarea, el usuario debe tener la facilidad de movilizarse libremente dentro del área cubierta por la(s) bodega(s) que podría ser por ejemplo de 5000 m 2. Control de inventario de activo fijo: Estas aplicaciones podrían considerarse una extensión de la mencionada anteriormente, pues su lógica de funcionamiento es la misma: rastrear la ubicación de un bien en un momento específico. La diferencia en esta aplicación es que el área en la cuál el usuario debe movilizarse puede ser mucho más extensa y fragmentada. Como ejemplo se puede citar el caso de una institución gubernamental, cuyos activos están distribuidos a lo largo y ancho del país, dentro de los edificios administrativos de la entidad. Distribución de paquetería: Muy útil para empresas cuyo giro esté relacionado al envío de paquetería y/o documentos. Con estas aplicaciones se pueden monitorear los tiempos de entrega de los paquetes a sus destinatarios finales, y estos pueden incluso firmar digitalmente un comprobante electrónico, como garantía que el paquete ha sido recibido. Pre-venta, venta y cobro en ruta: Aunque pueden considerarse cada una como una aplicación independiente, estas tres suelen ir integradas. Se trata en este caso de aplicaciones que permiten a las empresas transportar su sistema informático de ventas hasta la puerta misma del cliente. Se encontró que también es importante considerar el tipo de conectividad que tienen los diferentes dispositivos móviles, es decir, la capacidad y disponibilidad que estos tienen de acceder a medios de comunicación con otras computadoras. Así se distinguieron 3 tipos básicos de conectividad: Siempre conectado: Este es el caso, por ejemplo de los teléfonos celulares o cualquier otro dispositivo que sea capaz de comunicarse con su entorno por medio de una red (GSM, GPRS, WLAN, o cualquier otro medio inalámbrico), De esta manera, las PDA's, Tablet PC's, etc., se convierten esencialmente en extensiones de las aplicaciones e infraestructura informática existentes, permitiendo a los usuarios, el acceso a esta infraestructura mientras se mueven libremente dentro de los límites de la empresa o incluso fuera de ellos. Parcialmente conectado: Aunque idealmente, los dispositivos móviles deberían trabajar el modo siempre conectado, hay muchos escenarios dónde los dispositivos están fuera de alcance durante períodos extendidos de tiempo; esto debido a que una conexión permanente no es viable, absolutamente necesaria o es muy costosa. Dentro de las aplicaciones que funcionan en este modo está, por ejemplo, una aplicación de control de activo fijo. Antes de - 6 -

iniciar un levantamiento de inventario físico, el usuario conecta el dispositivo móvil a las bases de datos para recolectar, por ejemplo, un listado de activos dentro de un departamento específico, un listado de departamentos, etc. Una vez hecho esto, se desconecta y puede realizar las tareas normales de toma de inventario, donde la información recolectada al principio será utilizada y modificada para mas tarde volver a conectar el dispositivo móvil con el servidor y actualizar este último con los datos modificados y/o agregados. Nunca conectado: Este es probablemente el menos importante y menos complicado tipo de conectividad, pues esta es nula. Se trata de aplicaciones muy pequeñas que no requieren conectarse a otros sistemas para intercambiar información pues el volumen de datos que manejan es extremadamente reducido. En esta categoría caben, por ejemplo, aplicaciones para control de las finanzas personales e incluso juegos. El sistema de sincronización acá desarrollado se enfoca en proveer el servicio de sincronización a aquellas aplicaciones parcialmente conectadas dentro de este tipo de aplicaciones se encuentran las de venta en ruta, distribución de paquetería y similares. El medio físico de conexión puede fácilmente variar. Considerando los aspectos antes mencionados y otros requerimientos de las aplicaciones móviles típicas en El Salvador, se propuso que el servidor de sincronización debía contar con las siguientes características: Sincronización multi-usuario: Con esta característica se supera el problema de que si dos o más usuarios hacen uso del sistema, tenga que crearse una cola de sincronización para que los usuarios lleven a cabo la tarea de uno en uno. Independencia del sistema operativo: El sistema de sincronización tendrá la enorme ventaja de poder ejecutarse en varios sistemas operativos sin necesidad de ser recompilado ni mucho menos reprogramado para cada uno de estos. Sincronización directa PDA-RDBMS: Gracias a este enfoque no será necesario escribir programas que transfieran la información desde archivos temporales hacia la base de datos, pues esta tarea será realizada automáticamente por el servidor de sincronización una vez que los datos hayan sido recuperados de la PDA. Utilización de archivos de configuración XML: Gracias a este enfoque no será necesario escribir programas que transfieran la información desde archivos temporales hacia la base de datos, pues esta tarea será realizada automáticamente por el servidor de sincronización una vez que los datos hayan sido recuperados de la PDA. El sistema se adaptará a cualquier cambio en la estructura de los datos a sincronizar con sólo modificar estos archivos de configuración. Las características anteriores van enfocadas a superar las deficiencias mostradas por los sistemas de sincronización monousuario, de manera que se obtenga un sistema de sincronización mucho más flexible desde varios puntos de vista: sistema operativo, configurabilidad, etc. En la siguiente figura de bloques se muestra el diagrama de bloques del sistema de sincronización propuesto. - 7 -

Figura 1 Diagrama de bloques del sistema de sincronización propuesto.

ETAPA DE PRONÓSTICOS 9

El sistema de sincronización propuesto implicaba el diseño de un protocolo de comunicación de nivel de aplicación con el propósito específico de transmitir la información entre las PDA s y una computadora central o servidor. Esta computadora central sería la encargada de actualizar los dispositivos con los datos almacenados en la base de datos empresarial y viceversa. Para lograr tal objetivo se estableció una plataforma técnica que consistía en los siguientes aspectos: El lenguaje de programación Java 1.5: Actualmente, Java es una tecnología ya madura que consta principalmente de la máquina virtual (Virtual Machine), indispensable para la ejecución de cualquier programa creado en este lenguaje y el JDK que son las API's 1 utilizadas por los programadores. Java posee la enorme ventaja, sobre otros lenguajes de programación, que los programas creados con su JDK pueden ser ejecutados en los sistemas operativos más conocidos sin necesidad de recompilar pues es un lenguaje interpretado. El entorno de desarrollo integrado NetBeans 4.1: NetBeans es la segunda IDE 2 para Java más utilizada por los programadores, superada solamente por Eclipse, dentro de las IDE's de código abierto 3 gratuitas. Aunque Java puede ser utilizado sin ninguna interfaz en absoluto, valiéndose únicamente de editores de texto corrientes como Notepad en Windows o Vi en Linux, NetBeans, facilita en gran medida el trabajo del programador organizando los archivos de trabajo en base a proyectos, ayudando a organizar el código, los directorios, las bibliotecas, etc. NetBeans mismo está hecho en Java, lo que le provee de una gran versatilidad y el proceso de instalación es llevado a cabo por medio de un asistente tanto para las plataformas Windows como para Linux. Además NetBeans cuenta con muy útiles herramientas para el desarrollo de aplicaciones en Java, de las cuales la de mayor importancia para este proyecto ha sido el perfilador de aplicaciones (NetBeans Profiler) Las herramientas de análisis en tiempo de ejecución permiten al programador tener un panorama muy detallado del funcionamiento de su aplicación con respecto a los recursos del sistema como memoria y CPU, cantidad de hilos en funcionamiento, eficiencia, cuellos de botella en el código, etc. De esta manera el programador puede tomar medidas para escribir un código lo más optimizado posible. Existe también una gran variedad de estas herramientas y NetBeans cuenta con su propia versión. El lenguaje de programación para móviles SuperWaba 4.5: Los lenguajes de programación para dispositivos móviles son muy variados y cada uno está orientado a ciertos propósitos específicos o funcionan solamente con cierto tipo de dispositivos. El lenguaje de programación SuperWaba permite la programación de aplicaciones en una sintaxis muy similar a la de Java y tiene la gran ventaja que el código compilado puede ejecutarse en dispositivos móviles con sistemas operativos variados incluyendo Windows CE, Pocket PC y Palm OS. 1 Application Programming Interface. 2 Siglas en ingles para Ambiente de Desarrollo Integrado. 3 Software cuyo código fuente es de conocimiento público. 10

La capacidad de sincronizar varias PDA s concurrentemente por medio del uso de hilos de ejecución es una de las características más importantes del servidor de sincronización acá desarrollado por lo que se sometió a pruebas de carga para determinar la carga de trabajo que este podría soportar bajo diferentes circunstancias. Las variables consideradas fueron: volumen de datos transferidos, cantidad de clientes concurrentes, tiempos de respuesta (como variable dependiente) y los sistemas operativos Linux SuSE 9.1 y Windows XP. Algunos de los resultados de desempeño se muestran a continuación. Tiempos de respuesta sobre Windows XP para un retardo de lanzamiento de 750 ms 35 75 150 225 300 200.0000 180.0000 160.0000 140.0000 120.0000 100.0000 80.0000 60.0000 40.0000 Tiempos de respuesta (s) 20.0000 300 225 N de clientes concurrentes 150 75 35 128 256 384 512 896 768 640 Volumen de datos (+ 35 KB) 1024 0.0000 Volumen de datos en KB + 35KB # Clientes 128 256 384 512 640 768 896 1024 35 29.438 6 52.110 4 92.4111 98.2072 122.263 2 147.508 5 172.842 1 199.664 7 75 29.394 2 52.178 2 96.3225 124.704 0 190.735 0 - - - 150 30.351 0 53.498 4 140.263 5 - - - - - 225 30.164 6 58.882 5 - - - - - - 300 30.332 3 - - - - - - - Tiempos de respuesta en segundos. Espacio de memoria máximo de la JVM de 128 MB (-Xmx128m) Sincronización parcial del número de clientes y generación de excepción OutOfMemoryError. 11

Figura 2 Gráfico de áreas y tabla de resultados de las pruebas sobre Windows XP para un retardo de lanzamiento de 750 ms. Tiempos de respuesta sobre Linux Suse para un retardo de lanzamiento de 750 ms 35 75 150 225 300 300.0000 250.0000 200.0000 150.0000 100.0000 Tiempos de respuesta (s) 50.0000 300 225 N de clientes concurrentes 150 75 35 128 256 384 512 896 768 640 Volumen de datos + 35 (KB) 1024 0.0000 Volumen de datos + 35KB # Clientes 128 256 384 512 640 768 896 1024 35 29.8065 53.1760 75.4483 98.2687 122.0320 145.0019 167.2884 190.8653 75 29.6633 53.0970 75.9549 99.0391 126.0137 246.9346 281.3766 285.5386 150 29.8214 53.2353 79.0947 101.0505 154.2290 291.3012 - - 225 29.8010 53.4572 79.1550 135.6423 - - - - 300 29.7987 53.6647 79.1425 - - - - - Tiempos de respuesta en segundos. Espacio de memoria máximo de la JVM de 128 MB (-Xmx128m) Sincronización parcial del número de clientes y generación de excepción OutOfMemoryError. 12

Figura 4-16 Gráfico de áreas y tabla de resultados de las pruebas sobre Linux Suse 9.1 para un retardo de lanzamiento de 750 ms. 13

CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES a) En el futuro, el mercado de las aplicaciones móviles no puede sino crecer, y a medida que más empresas comiencen a sacar provecho de estas aplicaciones, la necesidad de contar con información actualizada, tanto en los dispositivos móviles como en las bases de datos centrales crecerá y el uso de sistemas de sincronización como el acá desarrollado se volverá indispensable. b) Una importante característica de diseño del sistema de sincronización es el hecho que la inteligencia de todos los procesos se concentra en el Servidor. Esto responde a la necesidad de liberar al cliente de cualquier sobrecarga de trabajo, de lo contrario se pueden saturar los limitados recursos del dispositivo. c) El uso del protocolo de transporte TCP/IP en el servidor de sincronización responde a la necesidad de poder comunicarse con varios clientes (PDA s) simultáneamente. Esto sería muy difícil si no imposible de lograr si se utilizasen conexiones punto a punto como USB o Puerto Serial y de ser así, la capacidad multihilo del servidor dejaría de tener sentido. d) En el Servidor de Sincronización quedó demostrado que, por medio del uso de XML, se puede lograr una enorme flexibilidad; evadiendo la necesidad de modificar el código fuente de éste cuando el entorno cambia. El lenguaje extendido de marcas, XML, puede utilizarse de muy diversas maneras en el desarrollo de aplicaciones de software. Los límites de este lenguaje están más bien determinados por la creatividad del programador. Y aunque puede crearse incluso un lenguaje de programación o bases de datos completas basándose en XML, es importante reconocer que cada tecnología tiene su nicho. e) Una preocupación importante en cualquier aplicación de transferencia de datos es la seguridad de estos mientras viajan por la red. Todos los datos que viajan en una red pueden ser fácilmente obtenidos desde computadoras diferentes a la computadora destino. Es por esto que existen protocolos para la encriptación de la comunicación, de manera que, los paquetes de datos no pueden ser descifrados por terceros, protegiendo así la privacidad de información potencialmente sensible. Sin embargo, el tema de la encriptación es demasiado amplio y va más allá de los alcances de este proyecto; pero se hace notar que implementar tal característica en el sistema es perfectamente factible a futuro. Además, existen otros métodos para enfrentar el problema de la seguridad como la utilización una VPN (red privada virtual). f) Basándose en la cantidad típica de usuarios de aplicaciones móviles en las empresas salvadoreñas, la cantidad de ellos que en realidad efectúan sincronizaciones simultáneas (alrededor 20) y el volumen de datos transferidos, se puede decir que el Servidor de Sincronización acá desarrollado posee las características de desempeño suficientes para soportar tal carga. Además, el límite de desempeño alcanzado es expandible siempre y cuando se cuente con los recursos de hardware apropiados siendo el más importante la cantidad de memoria RAM disponible. 14

g) El software desarrollado en este trabajo podría tomarse como punto de partida para la creación de middleware para aplicaciones móviles en línea. Es decir, que permita la comunicación continua entre la base de datos empresarial y los dispositivos móviles por medio de redes celulares, de manera que las actualizaciones y el acceso a los datos sea en tiempo real (opuesto a actualización por lotes como en el servidor de sincronización), el potencial en este nicho es importante, pues se prevé un rápido crecimiento en la demanda de aplicaciones móviles en línea en el futuro próximo. h) El Servidor de sincronización ha sido desarrollado para funcionar en un entorno de red (LAN, Internet, etc.) y, a diferencia de las aplicaciones de sincronización monousuario, no se da soporte a la comunicación vía USB ni puerto Serial; por lo tanto, para desarrollar al máximo el potencial del Servidor de Sincronización, éste requiere cierta infraestructura de hardware especializada que permita a las PDA s comunicarse vía TCP/IP con el Servidor. Específicamente, se necesitan cunas de comunicación Ethernet y PDA s compatibles con tales cunas, además del cableado de red adecuado. 15

RECOMENDACIONES a) El desempeño logrado por el Servidor PMS en las pruebas de carga a las cuales se sometió en este proyecto seguramente variará al cambiar el entorno en el cual las pruebas se ejecutan (bases de datos, recursos, etc.). Se recomienda ejecutar la misma serie de pruebas cuando se desee implementar el Servidor en un entorno de producción real, con el objetivo de descubrir el desempeño de éste para ese entorno específico. b) La configurabilidad lograda en el servidor por medio del uso de archivos XML le dan a éste una gran flexibilidad; particularmente en lo que respecta al mapeo de datos entre los PDB s de los dispositivos móviles y las tablas en la base de datos. Sin embargo, pueden existir condiciones en las cuales la normalización de los datos en la base de datos complique la tarea de mapeo. En tales circunstancias se recomienda la colaboración del administrador de la base de datos en el sentido de proporcionar vistas simplificadas de las tablas y relaciones. c) Debido a los alcances definidos para este proyecto, el protocolo de comunicación del Servidor PMS no cuenta con ningún algoritmo de encriptación, por lo que se recomienda su uso dentro de una red segura y/o cuya infraestructura no escape a los límites físicos de la empresa. De lo contrario se corre el riesgo de que agentes externos a la empresa tengan acceso al flujo de información entre los dispositivos móviles y el Servidor de Sincronización. d) Tomando en cuenta los volúmenes de datos típicos y cantidad de usuarios móviles por empresa que se encuentran en El Salvador, se recomienda un mínimo de 1GB de memoria RAM y un procesador de al menos 2.5 GHz para obtener un óptimo funcionamiento del Servidor de Sincronización en un entorno de producción real. La necesidad de espacio en disco duro variará dependiendo del volumen de datos que deban transferir los dispositivos móviles. 16