MAD MOBILITY SUPPORTED BY AGENT-BASED DEVICES Alejandro Botero López Hugo Giraldo Arenas Alexandra Moyano Romero Director: Ing. Enrique González Ph. D. Enero 2005 RESUMEN: El uso de dispositivos móviles se ha incrementado notablemente en los últimos años. Lo anterior ha ocasionado que un gran número de empresas estén interesadas en desarrollar aplicaciones móviles. MAD es una arquitectura para el desarrollo de aplicaciones móviles, que convive con las limitaciones de los dispositivos móviles como son, la limitada capacidad de almacenamiento y procesamiento y la intermitencia de la comunicación. MAD es un framework construido sobre una plataforma de agentes llamada BESA y que utiliza comunicación bluetooth para las interacciones entre contenedores de agentes de los dispositivos móviles (BESACE), con los contenedores que están en el mundo estático (BESA). PALABRAS CLAVE: Dispositivos Móviles, arquitecturas distribuidas, J2ME, BESA, peer to peer, agentes móviles, bluetooth, acceso inalámbrico WA. ABSTRACT: The use of mobile devices has increased notably in the last years. This has caused that a great number of companies are interested in developing mobile applications. MAD is an architecture for development of mobile applications that coexists with the limitations of the mobile devices such as the limited capacity of storage and processing and the intermittence of the communication. MAD is a framework constructed on an agents' platform called BESA and it uses Bluetooth communication for the interactions between agents' containers of mobile devices (BESACE) with the containers that are in the static environment (BESA). KEY WORDS: Mobile devices, distributed architectures, J2ME, BESA, peer to peer, mobile agents, bluetooth, wireless access WA. 1 Introducción El uso de los dispositivos móviles se ha incrementado notablemente en los últimos años. Se estima que para el año 2005 sean más de 100 millones los suscriptores de telefonía celular [IE2003]. Como todo dispositivo tiene sus ventajas y sus limitaciones. La principal ventaja es el acceso a cualquier tipo de información en cualquier momento y desde cualquier lugar. Las limitaciones se ven tanto en hardware como en software. Algunos ejemplos son la capacidad de almacenamiento y de procesamiento limitado, ancho de banda limitada, la latencia es alta y hay intermitencia en la comunicación. En la actualidad, existen diversas tecnologías enfocadas a la comunicación inalámbrica y al desarrollo de aplicaciones para dispositivos móviles. A nivel de protocolos de comunicación encontramos Bluetooth [ROB2003] y 802.11 [ITAM2000]. Ambas comparten el mismo ancho de banda, pero bluetooth es mejor para configuraciones pequeñas como los dispositivos móviles. Para el desarrollo de aplicaciones móviles encontramos J2ME [VNU 2002] y .Net CF [JUN2002]. J2ME tiene dos configuraciones. MAD utiliza la configuración CLDC, que es la configuración más limitada. Lo anterior se debe a que el objetivo de MAD son los dispositivos móviles con recursos limitados como los celulares. Para desarrollar aplicaciones para dispositivos móviles han implementado algunas arquitecturas que sirvieron como base para plantear la arquitectura MAD. Las principales son: Satin [ZAC2003], Wireless Architecture for Access to Remote Services [THA2000] y Wireless Resource Manager [MAL2003]. La arquitectura MAD desarrollada en este proyecto hace un aporte a la Ingeniería de Sistemas, permitiendo que el desarrollo de nuevos tipos de aplicaciones móviles sea más rápido y eficiente. MAD se basa en el concepto de redes peer to peer lo que le permite escalar fácilmente y estar acorde con las nuevas tendencias. De igual manera, MAD ofrece la flexibilidad para ser implementada, utilizando diferentes tecnologías de comunicación inalámbrica, como es el caso de Bluetooth o de 802.11.x. MAD permite desarrollar aplicaciones distribuidas dando soporte al roaming de los dispositivos móviles de una manera transparente para el desarrollador. Finalmente, es importante destacar que la arquitectura MAD convive con las limitaciones de procesamiento y almacenamiento de los dispositivos móviles permitiendo más flexibilidad y mejor uso de los recursos. Este artículo se divide en cuatro grandes partes: la problemática, el modelo de la arquitectura MAD, su implementación y, finalmente la validación. De esta manera se tiene, aunque de una manera breve, una idea general de lo que es la arquitectura MAD. 2 Requerimientos de arquitectura móvil una Como se mencionó anteriormente, los dispositivos móviles tienen ciertas limitaciones que son inherentes a ellos. Es por esto, que desarrollar aplicaciones móviles a veces no resulta tan fácil. Una arquitectura diseñada para desarrollar aplicaciones móviles debe cumplir ciertos requerimientos entre los cuales están: que sea flexible, que soporte el roaming, que conviva con la intermitencia de las comunicaciones móviles, que sea capaz de delegar el procesamiento pesado a dispositivos con los recursos adecuados, que sea segura, portable y con la cual, el tiempo de desarrollo disminuya. De las arquitecturas para dispositivos móviles que existen, la mayoría convive con la limitación de procesamiento trabajando en redes P2P,colaborando entre las entidades que la conforman [BON2004], trabajando el concepto de lógica móvil para que las aplicaciones se acoplen a las necesidades de los usuarios como es el caso de Satin [ZAC2003] o clasificando las peticiones y así no cargar mucho la red como es el caso de WRM [MAL2003], entre otras muchas arquitecturas que existen. Estas arquitecturas, después de analizar sus ventajas y desventajas, son la base de lo que es la arquitectura MAD. 3 Modelo MAD MAD es una arquitectura híbrida (P2P y P2MP), enfocada a aplicaciones para dispositivos móviles en “ambientes cerrados”, entendiendo un ambiente cerrado como un lugar que se puede definir dentro de unas fronteras físicas establecidas; por ejemplo, un centro comercial, un estadio, un hospital, un museo, un aeropuerto, entre otras. La arquitectura permite desarrollar aplicaciones que convivan con las limitaciones inherentes a los dispositivos móviles, como lo son: limitada capacidad de procesamiento y almacenamiento, reducida duración de la energía e intermitencia en la comunicación Los conceptos fundamentales que caracterizan la arquitectura MAD son: y Un mundo se define como un conjunto de dispositivos con ciertas características en común ubicados en una determinada área geográfica. La arquitectura presenta dos mundos el estático SE y el dinámico DE. y La arquitectura tiene una estructura de red Peer to Peer la cual consiste en un grupo de entidades que se comunican cada uno directamente con los otros. y Los dispositivos móviles pueden cambiar de ubicación geográfica continuamente. La arquitectura soporta de manera transparente el cambio de sitio de los dispositivos a medida que se van desplazando utilizando los conceptos de roaming. y En el mundo estático SE, algunos de los servidores alojan recursos como bases de datos, archivos, Web Services a los cuales se accede manejando un esquema multicapa. y Debido a la reducida capacidad de almacenamiento que existe en los dispositivos móviles, la arquitectura maneja el concepto de repositorio de información en el cual se almacenan paquetes de datos llamados artefactos pertenecientes a los dispositivos móviles que no son utilizados en ese momento. Teniendo en cuenta la variedad de elementos que conforman la arquitectura MAD, se organizó la presentación en diferentes vistas. Cada vista muestra una parte de la arquitectura. Todas las vistas tienen una relación entre si, y mirándolas en conjunto se tiene la visión completa del sistema. Se manejan tres vistas principales: general, lógica y física. 3.1 Modelo del Ambiente General del Trabajo A nivel general, la arquitectura MAD está conformada por dos mundos, el mundo dinámico DE y el mundo estático SE, que se comunican a través de un acceso inalámbrico WA. La figura 1 ilustra el modelo general de la arquitectura. El mundo dinámico DE se entiende como el conjunto de dispositivos móviles MD que pueden cambiar continuamente de ubicación geográfica. Estos dispositivos móviles MD tiene un acceso inalámbrico WA para comunicarse con el mundo estático SE, el cual se denomina acceso inalámbrico móvil MWA. El mundo estático SE es una agrupación de dispositivos estáticos SD, los cuales incluyen computadores personales, servidores, entre otros que no cambian de ubicación física, y de dispositivos livianos WSD. Los SD y los WSD están comunicados entre ellos a través de una red LAN o WAN que puede incluir una conexión inalámbrica. Así como los dispositivos móviles MD, los dispositivos del Mundo estático tienen un acceso inalámbrico WA que se llama acceso inalámbrico estático SWA. LAN/WAN SD1 WSD1 SWA SD2 SWA SWA MUNDO ESTÁTICO SE Scatternet MUNDO DINÁMICO DE MWA MD2 MWA MD1 MWA MD3 MWA MD4 Piconet Piconet Piconet SD WSD SWA MD MWA Dispositivo Estático Dispositivo Liviano Acceso Inalámbrico Estático Dispositivo Móvil Acceso Inalámbrico Móvil Figura 1. Modelo del Ambiente General del Trabajo estático SE se pueden comunicar Tanto el acceso inalámbrico móvil entre sí de una manera transparente MWA como el acceso inalámbrico utilizando Internet. La figura 2 estático SWA tienen un área de muestra el modelo físico de la cubrimiento que puede variar arquitectura. dependiendo de la tecnología y el protocolo de comunicación que se Con respecto al mundo dinámico DE utilice entre los dos mundos. Al y su comunicación con el mundo conjunto de estas áreas de estático SE se presentan algunos cubrimiento se le conoce como obstáculos como lo son: ambiente físico cerrado. Las áreas y Los dispositivos móviles MD de cubrimiento pueden cambian continuamente de superponerse entre ellas, lo cual no ubicación geográfica. es obligatorio. También pueden ser distantes, incluso estar en diferentes y Existe intermitencia en la redes LAN o WAN. comunicación entre el mundo 3.2 Modelo Físico La arquitectura da la flexibilidad para que el mundo estático SE pueda estar compuesto por uno o más tipos de redes, que se comunican entre sí a través de un punto de acceso AP. De esta manera, se forma una red LAN o WAN utilizando el protocolo TCP/IP y se permite el acceso a través de Internet. Diferentes secciones de un mundo dinámico DE y el mundo estático SE. El acceso inalámbrico WA es el encargado de amortiguar los problemas de comunicación y manejar el roaming de los dispositivos móviles MD entre las diferentes áreas de cubrimiento. Es importante recalcar que la comunicación entre el mundo estático SE y el mundo dinámico DE MWA SWA SD MD MWA MD SWA MWA MD SD WAN - LAN TCP / IP AP RED INALAMBICA TCP /IP SD SWA WSD WSD SWA WSD SWA SWA MWA MD MWA MWA MWA MD MD MD SD WSD SWA MD MWA AP Dispositivo Estático Dispositivo Liviano Acceso Inalámbrico Estático Dispositivo Móvil Acceso Inalámbrico Móvil Punto de Acceso Figura 2. Modelo Físico MAD dinámico DE. La ubicación de estos es asíncrona para poder manejar la procesos se establece en el intermitencia en la comunicación. Un momento de hacer el despliegue de MD se comunica con el SE a través la APP. Las entidades que la de un acceso inalámbrico estático conforman son: SWA, pero como el MD puede desplazarse, podría recibir su y P: es un proceso, peer, que se respuesta desde otro SWA. define como cualquier entidad capaz de hacer un trabajo útil en 3.3 Modelo Lógico el contexto de una aplicación El modelo lógico es una APP y poder comunicarse con representación de las entidades que otra entidad en la red de una forman parte de la arquitectura a manera P2P. [BRE2002]. Hay nivel de Software. Estas entidades dos tipos de peer: peer móvil se pueden clasificar en dos grupos: MP y peer estático SP. modelo de la aplicación APP y y APS: es un peer que sirve como modelo de servicios. servidor de punto de acceso En el modelo de la aplicación APP para permitir que los peer se describen todas las entidades estáticos SP y móviles MP de que hacen parte de una aplicación una aplicación APPi se APP, colaborando entre ellas para comuniquen con los SP o MP de que la APP pueda funcionar una aplicación APPJ. El APS es correctamente. un peer P que se caracteriza por Una aplicación APP es un conjunto ser el único punto de entrada y de procesos que permiten cumplir salida para la comunicación con una meta. Los procesos de la entre aplicaciones APP. Con lo APP se pueden encontrar anterior se busca encapsular una distribuidos entre los dos mundos, el APP como una unidad cerrada y mundo estático SE y el mundo aumentar en cierta medida la servicios estático SSP se puede realizar algún procesamiento sobre la información recuperada, brindando un mayor nivel de abstracción sobre el recurso. Un proveedor de servicios estático SSP puede acceder a varios SSP que se encuentren en la misma sección del mundo estático SE y que realicen alguna funcionalidad de procesamiento que el SSP necesite. seguridad. Para lograrlo, los peers de una misma aplicación APP comparten un password que se incluye en todos los mensajes. El modelo de servicios muestra todas las entidades externas a una aplicación APP que le permiten acceder a un recurso como Bases de Datos, Web Services, Archivos, Dispositivos Físicos Externos, entre otras para consultar y procesar información que necesita para su correcto funcionamiento. En el mundo estático SE se encuentran las siguientes entidades: y y y R: es un recurso que se define como un conjunto de elementos disponibles para resolver una necesidad o llevar a cabo una tarea. Los recursos pueden ser: Bases de Datos, Web Services, GUI, Sensores, entre otras. S: es un servicio que se define como métodos que permiten realizar las operaciones CRUD (create, read, update, delete) sobre determinadas entidades recursos R que son necesarios para el funcionamiento de la aplicación. El S contiene la información del driver necesario para acceder al R. Por esta razón, el acceso a los recursos R siempre se realiza mediante un S y el servicio S siempre está controlando el acceso al R. La relación entre un recurso y un servicio es 1 a 1. SSP: es un proveedor de servicios estático que realiza una actividad de coordinación encargándose de invocar a uno o varios servicios S para poder recuperar la información que necesita la aplicación APP para cumplir con sus funciones. Dentro del proveedor de En el mundo dinámico DE se encuentran las siguientes entidades: y BR: es un recurso base que se define como un conjunto de elementos disponibles dentro de un dispositivo móvil para interactuar con el cliente; por ejemplo, el teclado, la pantalla, entre otros. y BS: son métodos que se encargan de manejar el acceso a los recursos base BR del dispositivo móvil MD. El BS no tiene movilidad porque su característica principal es que están cerca del recurso base BR. La relación entre un BS y un BR es 1 a 1. y SPB: es un proveedor de servicios base encargado de procesar las solicitudes realizadas por el peer móvil MP. Para cumplir lo anterior, el SPB accede a los recursos base BR a través de invocaciones a métodos de un servicio base BS y, si es necesario, realizan algún procesamiento. La figura 3 ilustra todo el modelo lógico. Todas las entidades se ejecutan sobre un una plataforma operativa, la cual se define como una extensión de un lenguaje mediante una o más jerarquías de clases que R1 S1 SSP1 S2 SSP2 APS1 APS2 SP11 SP21 SE SP13 SP12 SP22 DE MP11 MP21 MP12 MP22 MP23 SPB2 SPB1 BR1 S-R SSP-S SP-SSP APS-APS SPB-BR BS-SPB P2P MP-SPB R2 APP1 BS1 BR2 APP2 BS2 S SSP R APS SP MP BS BR SPB APP Servicio Proveedor de Servicios Estático Recurso Servidor de Punto de Acceso Peer Estático Peer Móvil Servicio Base Recurso Básico Proveer de Servicios Base Aplicación Figura 3. Modelo Lógico trabajo pesado se podría hacer en el implementan una funcionalidad y lado estático. El diseñador de la que (opcionalmente) pueden ser aplicación APP decide el número de extendidas [ANT2004]. En el caso peers móviles MP y peers estáticos específico de la arquitectura MAD, la SP que debe tener la APP, la plataforma operativa debe ser capaz funcionalidad de cada uno de ellos y de encargarse de todas las el protocolo de interacción entre interacciones de comunicación, ellos. Sin embargo, cabe recalcar soportando un directorio de páginas que para que la aplicación APP sea amarillas y páginas blancas. móvil el diseñador debe garantizar Adicionalmente, la plataforma que por lo menos haya un peer operativa debe soportar la móvil MP. comunicación entre el mundo dinámico DE y el mundo estático SE La arquitectura permite que los y roaming. peers móviles MP se muevan temporalmente al mundo estático Los peers P de una aplicación APP SE. De esta manera se ataca la se encuentran distribuidos en un limitada capacidad de dispositivo móvil MD y un dispositivo procesamiento de los dispositivos estático SD. Lo anterior le da móviles. ventajas a la arquitectura en cuanto al procesamiento y la limitación de memoria debido a que todo el Los peer móviles MP pueden tener acceso a los recursos base BR que se encuentran en el dispositivo móvil MD a través del proveedor de servicios base SPB. El mundo estático SE funciona de una manera similar al mundo dinámico DE. Los peers estáticos SP pueden acceder a los recursos R a través de los proveedores de servicios estáticos SSP. Los SSP invocan a los servicios S que se encuentran dentro de este mundo para poder acceder a los recursos R, los cuales se encuentran distribuidos dentro del SE. Los servicios pueden ubicarse según dos criterios: y Cercanía del recurso R: Los servicios S son el único punto de acceso a los R y manejan todo lo relacionado con el driver para acceder a ellos. Por esta razón deben estar siempre junto al R que van a acceder y la relación es de 1 a 1. y Comunicación con los proveedores de servicios estáticos: El servicio S es el punto intermedio entre los SSP y los R. Un proveedor de servicios estáticos SSP le solicita a un servicio S que acceda a un recurso R para obtener cierta información. El S está junto al R para poder recuperar los datos. En el mundo estático SE, una aplicación APP puede tener un servidor de punto de acceso APS que permite que los peers estáticos SP de una aplicación APPi se comuniquen con los SP de una aplicación APPj. Lo anterior permite que haya una colaboración entre los procesos de diferentes aplicaciones APP y a su vez haya un nivel de confidencialidad de los peers P de una APP. El APS expone los servicios que prestan los P de su APP pero no especifica que P realiza determinada tarea. La mayoría de las comunicaciones entre las entidades de la arquitectura MAD utilizan el protocolo RR (Request Reply). Por ejemplo, un peer estático SP le solicita un servicio a un proveedor de servicios estático SSP (request) y el SSP después de procesar la solicitud le devuelve una respuesta (reply). Sin embargo, el diseñador puede especificar que protocolo de comunicación desea utilizar entre los peers P propios de la aplicación APP. 5 Implementación El mundo estático SE y el mundo dinámico DE presentan una clara diferencia, el primero abarca todo tipo de dispositivos livianos o estáticos, mientras que el segundo encierra únicamente a los dispositivos móviles Sin embargo, los dos mundos tienen muchos requerimientos en común como son el manejo de directorios, peers, recursos y servicios. Para cumplir con estos requerimientos, la arquitectura MAD utiliza una plataforma de agentes que le brinda soporte de manera transparente en el manejo de la comunicación, la ubicación de los servicios S, recursos R y peers P. Se analizaron tres plataformas: JADE, JXTA y BESA, y se eligió la plataforma BESA (Behaviororiented, Event-driven and Socialbased Agent Framework) debido al conocimiento que se tiene sobre el funcionamiento de la plataforma. BESA es una plataforma de agentes que cumple con los estándares FIPA; presta varias funcionalidades entre las que se encuentran el manejo de páginas amarillas, páginas blancas, la creación de agentes y el envío de mensajes entre ellos. se desarrolló un acceso inalámbrico WA que utiliza la tecnología de comunicación Bluetooth con la que cuentan un gran número de dispositivos móviles MD. A continuación se menciona de manera global cómo se cumplieron con los requerimientos identificados durante la etapa de análisis: y y y y Para cumplir con los requerimientos agrupados en recursos y servicios, directorios y peers se decidió que tanto en el mundo estático como en el dinámico, los servicios, peers, servidores de puntos de acceso y proveedores de servicios estén representados por agentes; aprovechando de esta manera todas las funcionalidades que ofrece la plataforma BESA. Una aplicación APP es una asociación de peers, estáticos y móviles, que interactúan entre ellos para lograr una meta en común. Dado que los peers son agentes, para cumplir con los requerimientos agrupados en aplicación también se utiliza BESA. El acceso a los recursos y al repositorio de datos se realiza a través de un agente llamado servicio que conoce cómo acceder al recurso o al repositorio de datos. En el caso del repositorio, el servicio conoce el funcionamiento del manejo de los comprobantes y cómo recuperar la información. Cuando se trate de cualquier otro recurso, el servicio contiene la información del driver y de esta manera sabe como acceder al recurso para realizar cualquier operación solicitada por la aplicación APP. De esta manera, se cumplen los requerimientos funcionales agrupados en manejo de directorios y recursos y servicios. Finalmente, para cumplir los requerimientos necesarios para conectar el mundo estático SD con el mundo dinámico DE, agrupados en dispositivo móvil, La arquitectura MAD está conformada por cuatro agentes: y Peer: este agente depende de la aplicación APP, por lo que es decisión del desarrollador determinar cómo se implementa. Puede ser móvil o estático y es el encargado de procesar las solicitudes del usuario. y APS: este agente es el único punto de entrada y salida de una aplicación APP. Es el encargado de solicitar y prestar servicios entre aplicaciones APP. y AM: este agente es el encargado de almacenar y recuperar los artefactos en el repositorio. y SSP: este agente es encargado de invocar servicios para acceder a diferentes recursos ya sea Web Service, una Base Datos, etc. el los los un de La plataforma MAD provee una implementación de las funcionalidades básicas de cada agente. Esta implementación se hereda y cada desarrollador puede extender su funcionamiento según las necesidades de la aplicación APP que esté desarrollando. La arquitectura tiene dos tipos de accesos inalámbricos WA, uno en el mundo estático SE y otro en el mundo dinámico DE. Estos accesos inalámbricos WA son los encargados de manejar la comunicación y el roaming de los dispositivos móviles. A continuación se observa el diseño del acceso inalámbrico y el funcionamiento del envío y recibo de mensajes. La implementación de los accesos inalámbricos se dividió en tres partes: y y y Dispositivo Móvil: los componentes encargados de comunicar al dispositivo móvil MD con el mundo estático. Así mismo, se encargan de encaminar los mensajes que le lleguen al dispositivo móvil al contenedor de agentes respectivo. El camino de salida al mundo estático SE de un mensaje proveniente de un agente del contenedor es un objeto llamado FachadaSalida, el cual se explicará más adelante. El mecanismo de entrada de los mensajes provenientes del mundo estático es el SensorDE, el cual también se explicará posteriormente. SWA: es el encargado de enrutar los mensajes correctamente. Si los mensajes provienen del mundo dinámico, el SWA los enruta automáticamente a la plataforma que está en el mundo estático. Si, por el contrario, los mensajes provienen del mundo estático, el SWA verifica si hay canal con el dispositivo móvil respectivo. Si el canal funciona adecuadamente, enruta el mensaje al dispositivo móvil. En caso contrario, lo almacena en un vector al que se conoce como cola hasta que se reestablezca la conexión con el canal o hasta que el dispositivo móvil se conecte con otro SWA. Si se da este último caso, el SWA original le transfiere todos los mensajes encolados al nuevo SWA. Plataforma: El componente más importante de esta parte es el SensorSE porque es el punto de entrada y salida a la plataforma de peers estáticos desde un dispositivo móvil MD. Todas las comunicaciones entre los peers pertenecientes a los dos mundos, el estático y el dinámico, cuentan con un método de verificación de envío y recepción de mensaje conocido como ACK (acuse de recibo). Por cada request y por cada reply se genera un ACK al peer que hizo la petición. El peer que hace la solicitud queda bloqueado hasta no recibir el acuse de recibo o cumplirse un time out. 6 VALIDACIÓN El aeropuerto es una aplicación de carácter informativa que funciona dentro del ambiente cerrado de un aeropuerto. Para probar la arquitectura MAD, se desarrolló esta aplicación con las siguientes funcionalidades: y Consultar vuelos a una ciudad para determinada fecha. y Generar un itinerario con base en las ciudades ingresadas por el usuario, los días que desea permanecer en cada ciudad y la fecha de partida y almacenarlo en un repositorio. y Consultar el itinerario generado anteriormente. y Localizar a otro usuario que esté dentro del aeropuerto. y El usuario, al llegar al Aeropuerto, ejecuta la Aplicación que tiene en el dispositivo Móvil y puede realizar cualquiera de las funcionalidades mencionadas anteriormente. Utilizando el caso de estudio descrito anteriormente, se realizaron las pruebas de la arquitectura para poder caracterizarlo. Primero se realizaron las pruebas funcionales. Posteriormente se realizaron pruebas de stress y escalabilidad. Los resultados obtenidos y el análisis realizado se presentan a continuación. Las pruebas, como se había establecido en el anteproyecto, se realizaron en emuladores. Los simuladores con los que se trabajaron presentaron algunas limitantes en cuanto a la conexión bluetooth y la conexión a través de un socket de un teléfono a una máquina conectada a una red tcp. Las siguientes son algunas de las limitantes más importantes en cuanto a la simulación de bluetooth en los teléfonos: y y No se puede simular una conexión bluetooth entre un teléfono y una máquina conectada a una red tcp y además que tenga el chip de conexión bluetooth. No se puede simular que un master bluetooth (teléfono) tenga en su área de cubrimiento más de cuatro teléfonos. incremente en un porcentaje mucho menor que cuando hay un solo proveedor. Con esto se demuestra que la arquitectura soporta escalabilidad, pudiéndose aumentar el número de agentes y recursos obteniendo mejores resultados. 7 CONCLUSIONES y El uso de dispositivos móviles se ha incrementado notablemente en los últimos años. Las tendencias indican que el uso de los dispositivos móviles será superior al de los computadores personales. y Se encuentran algunas arquitecturas ya planteadas para desarrollar aplicaciones para dispositivos móviles que conviven con ciertas limitaciones pero casi ninguna ofrece la flexibilidad ofrecida por MAD. y MAD es una arquitectura para el desarrollo de aplicaciones móviles que convive con las limitaciones de los dispositivos móviles y facilita el desarrollo de las aplicaciones. y MAD permite el desarrollo de aplicaciones orientadas hacia la movilidad constante de los usuarios, los cuales sólo deben tener un dispositivo móvil con Bluetooth y una máquina virtual de java para poder correr una aplicación. y En MAD, una aplicación está distribuida, parte en el dispositivo móvil en el mundo dinámico y parte en el mundo estático. El procesamiento pesado de una aplicación se realiza en el mundo estático delegando gran parte de la carga del dispositivo móvil y conviviendo así, con la limitación de procesamiento. 8 REFERENCIAS Al subir un emulador con bluetooth, no se le podrá configurar la dirección bluetooth sino que siempre escogerá de una lista que no se puede modificar. En cuanto a la primera limitante se resolvió poniendo el SWA en un teléfono y que este se comunicara con la plataforma a través de sockets. En cuanto a la segunda limitante, toco convivir con ella y hacer las pruebas sabiendo que existía. Se realizaron pruebas de stress y se observa que el tiempo de respuesta se mantiene constante a medida que el número de pasadas aumenta y corresponde a 63 milisegundos. Con lo anterior, se prueba que la arquitectura soporta un gran número de peticiones concurrentes sin perder su eficiencia. También se realizaron pruebas de escalabilidad en las cuales se concluyó que el tiempo de respuesta con dos proveedores de servicio se [IE2003] Engineering The International Consortium. “Global System for Mobile Communication (GSM)”. 2003. [ITAM2000] Instituto Tecnológico Autónomo de México. Estandar IEEE 802.11.b. 2000 en http://ccomputo.itam.mx/redes/se rvicios/wlan/802_11b.htm. [JUN2002] Juntao Michael, Let the mobile games begin, Part 1. A comparison of the philosophies, approaches, and features of J2ME and the upcoming .Net CF. Página 1. 2002 en http://www.javaworld.com/javawo rld/jw-02-2003/jw-0221wireless.html [MAL2003] Malyan R. Lenaghan A. A Multi-service Architecture to Support Mobile IP Applications over Heterogeneous Wireless Networks. Networking and Communications Group, Kingston University. Reino Unido. 2003 [ROB2003] Robotiker. Tecnología Bluetooth (2): características del enlace radio y el establecimiento de la conexión en Revista Robotiker No. 4 del 2003 en http://revista.robotiker.com/articul os/articulo28/pagina1.jsp. [THA2000] Thakkar Amisha. Wireless Architecture for access to Remote Services (WIARS). State University of New York at Buffalo. 2000 [VNU2002] Vnunet. “Los terminales se hacen inteligentes gracias a Java”. Julio del 2002. [ZAC2003] Zachariadis Stefanos.Use of Logical Mobility for Mobile Self-Organisation. Department of Computer Science University College London, University of London, Noviembre del 2003.