Download LIMITACIONES DEL DESARROLLO DE APLICACIONES EN
Document related concepts
no text concepts found
Transcript
LIMITACIONES DEL DESARROLLO DE APLICACIONES EN DISPOSITIVOS MÓVILES Alejandro Botero López Hugo Giraldo Arenas Alexandra Moyano Romero boteroa@javeriana.edu.co hugo.giraldo@javeriana.edu.co alexandra.moyano@javeriana.edu.co Noviembre 2003 Resumen En este artículo se muestran las principales características de los dispositivos móviles así como sus limitaciones y tecnología utilizada. Adicionalmente se da una breve explicación sobre algunas plataformas y arquitecturas para desarrollar aplicaciones para estos dispositivos móviles. Finalmente, se hablará sobre los agentes móviles, posible alternativa para lidiar con las limitaciones inherentes de estos dispositivos. Palabras clave: Dispositivos Móviles, arquitecturas distribuidas, J2ME, JXTA, peer to peer, agentes móviles. 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 y serán descritas posteriormente. Lidiar con estas limitaciones es un reto hoy en día. Para hablar sobre este tema primero se darán algunos conceptos básicos sobre los dispositivos móviles. Continuaremos definiendo las arquitecturas distribuidas y finalizaremos con el tema de agentes. 2. Dispositivos Móviles Aunque las capacidades de hardware pueden variar de un dispositivo a otro, básicamente todos los dispositivos móviles cuentan con capacidad de almacenamiento y procesamiento. Dentro de esta categoría podemos encontrar PDA’s, teléfonos celulares, beepers y computadores portátiles, todos con una característica en común: son personales y acompañan al usuario en todo momento. Algunas de las limitaciones que tienen estos dispositivos móviles son la capacidad de almacenamiento y de procesamiento limitado, ancho de banda limitada, la latencia es alta y hay intermitencia en la comunicación. 2.1 Tecnologías La telefonía celular comenzó en Colombia usando TDMA (comunicación por tiempos) en donde una sola celda se encargaba del tráfico y el ancho de banda era relativamente bajo (800 MHz). Ahora, se ha introducido la tecnología 3GSM por parte de Comcel, PCS (Personal Communication Services) con Colombia Móvil y CDMA con Bellsouth. Todas las nuevas tecnologías tienen el mismo principio de la telefonía celular tradicional: una antena tiene un área específica de alcance para su señal. Este perímetro se conoce como ‘celda’ y cuando los usuarios están en él, pueden conectarse a dicha antena. La diferencia fundamental es que las nuevas tecnologías operan con un ancho de banda mayor (1900 MHz), el cual les sirve para transmitir voz, datos e imágenes con una mayor rapidez. 2.2 Protocolos Los protocolos de comunicación Bluetooth y el estándar 802.11b son utilizados para dispositivos inalámbricos. Estos protocolos comparten algunas características como la banda de transmisión que va desde 2.4 a 2.485GHz. Su principal diferencia es la velocidad. Bluetooth opera a una velocidad alrededor de 720kbps, que es muy inferior a la del estándar 802.11b que es aproximadamente de 11mbps [KG2003]. Bluetooth es más favorable para conectar un dispositivo en una red pequeña donde la rapidez no es indispensable y el bajo consumo de energía es fundamental. Por otro lado, el estándar 802.11b es mejor cuando un computador necesita conectarse a Internet (gracias a su rapidez), pero su desventaja aparece cuando se quiere conectar un dispositivo rápidamente en un ambiente seguro [KG2003]. Dentro de los protocolos de transmisión de datos encontramos I-MODE y WAP. El primero es un servicio de transmisión por paquetes que permite una conexión continua con Internet a través de los teléfonos móviles. I-mode usa un subtexto de HTML llamado cHTML para convertir la información. Los servicios más utilizados por los usuarios son mail "i-mode", banca móvil e información de transporte en general. WAP (Wireless Application Protocol) es una especificación para un conjunto de protocolos de comunicación inalámbrica para el acceso a Internet. 2.3 Herramientas desarrollo de Existen diferentes herramientas que facilitan el rápido desarrollo de aplicaciones. El uso de estas herramientas depende tanto del lenguaje en el que sepa programar el desarrollador como de la tecnología utilizada por los dispositivos. A continuación se explicarán algunas de estas herramientas. J2ME (“Java 2 Micro Edition”) es una versión de Java que es, tanto un lenguaje de programación, como una plataforma desde la que se puede descargar y ejecutar aplicaciones en los terminales móviles de forma abierta y sencilla. Los terminales que integran J2ME permiten descargar bajo demanda aplicaciones escritas en esta tecnología para ser utilizadas directamente desde el móvil, permitiendo una mayor personalización [VN 2002]. BREW ("Binary Runtime Environment for Wireless") es una creación de la empresa Qualcomm que intenta ofrecer la solución para generar aplicaciones dinámicas altamente gráficas en el Cliente (Teléfono Celular) esto a diferencia de WAP-WML donde un Servidor de Páginas genera un contenido muy restringido para el Cliente [OL2003]. A diferencia de J2ME, BREW es una tecnología basada en los lenguajes C y C++, esto ofrece una alternativa para aquellos que no están especializados en el mundo Java. JXTA es una plataforma abierta para computación de punto a punto. Visto de una manera simple es un grupo de protocolos para interoperabilidad basados en XML. El código es abierto. Un punto JXTA puede tomar diferentes formas mientras se comunique utilizando protocolos JXTA. En la figura 1 vemos un conjunto de puntos JXTA pertenecientes a diferentes grupos. Cada peer o punto tiene asignado un único PeerID de 128 bits. Cada punto puede pertenecer a uno o más grupos de puntos donde cooperan entre sí configurándose dinámicamente.. Los puntos utilizan unos canales virtuales de comunicación de doble vía llamados Pipes los cuales tienen un único PipeID. Figura 1. Grupos de puntos JXTA [MA2003]. .NET Compact Framework, como las anteriores, es una herramienta para la construcción de aplicaciones basadas en tecnologías de internet. Corresponde a la versión para dispositivos móviles del conocido framework de .NET de Escritorio. 3. Arquitecturas La arquitectura de un sistema es su estructura en términos de sus componentes especificados por separado. Un modelo arquitectónico de un sistema distribuido trata sobre la colocación de sus partes y las relaciones entre ellas. Algunos ejemplos pueden ser el modelo cliente-servidor y el modelo de procesos peer to peer. El objetivo global del modelo arquitectónico es asegurar que la estructura satisfará las demandas presentes y previsibles sobre él. En la figura 2 encontramos la evolución de las arquitecturas distribuidas en las últimas décadas. Primero surgió un modelo cliente/servidor. La segunda arquitectura que se presenta es la que conocemos como Web Based. Finalmente, encontramos la arquitectura peer to peer que ha cogido mucho auge últimamente con servicios como el ofrecido por Napster, Gnutella o Kazaa. Figura 2. Evolución de las arquitecturas distribuidas [SR2003]. 3.1 Peer 2 Peer P2P (Peer to Peer) es una arquitectura en donde todos los puntos desempeñan tareas semejantes, interactuando cooperativamente como iguales para realizar una tarea distribuida o de cómputo sin distinción entre cliente y servidor. P2P descubre y se adapta a nuevas fuentes de información. Replica información a través de otros puntos para protegerla. Construye servicios complejos combinando simples. Incrementa el desempeño a medida que hay más puntos dentro de la red. Las principales ventajas del P2P son la mejor utilización del ancho de banda, procesador, almacenamiento y otros recursos del computador [MA2003]. P2P también tiene algunas desventajas entre las que podemos encontrar una alta carga de la red. 3.2 Cliente / Servidor La tecnología cliente servidor se propagó rápidamente a nivel mundial y es considerada como una de las arquitecturas más utilizadas. La arquitectura C/S hace referencia a la forma de comunicarse que tienen dos aplicaciones. En general, las comunicaciones en Internet siguen este modelo: el cliente hace una petición (ya sea http, ftp, ...) y el servidor le responde enviándole la información (sea un archivo o una consulta a una base de datos). Tanto el cliente como el servidor son aplicaciones que se están ejecutando en diferentes máquinas (aunque podrían hacerlo en la misma) comunicadas a través de Internet. Esta arquitectura presenta algunos problemas entre los que encontramos un alto requerimiento de red, un difícil control de versiones del sw, se necesita una conexión dedicada con el servidor y es difícil actualizar los programas en cada máquina. 4. Agentes Un agente puede ser definido como un proceso autónomo o semiautónomo que realiza una función definida. Pueden ser clasificados por su movilidad como estáticos o móviles, o de acuerdo a varios atributos primarios que deben exhibir como autonomía, aprendizaje y cooperación. 4.1 Agentes Móviles Un agente móvil es un programa en ejecución (lo que incluye tanto código como datos) que se traslada de un computador a otro en la red realizando una tarea para alguien. Por ejemplo, recolectando información y retornando eventualmente con los resultados. Un agente móvil puede hacer muchas solicitudes a los recursos locales que visita, por ejemplo, accediendo a anotaciones individuales en una base de datos [GC 2001]. 4.2 Plataformas Existen diferentes plataformas para el desarrollo de aplicaciones con agentes. A continuación describiremos algunas de ellas. Primero encontramos la plataforma Aglets, la cual se basa en objetos java y utiliza serialización para la conservación del estado de los agentes. La seguridad es configurable por el usuario. Está disponible para Solaris y Windows [IH1997]. La siguiente plataforma es Messengers se basa en mensajes inteligentes para transportar el comportamiento de los agentes. Es un intérprete del lenguaje MO en cada nodo del sistema. Entre los elementos que contiene esta plataforma están los threads intérpretes, memoria compartida con pares clave/valor, colas de threads bloqueantes y canales de comunicación con otros nodos [IH1997]. Finalmente, tenemos Voyager implementa un ORB. Está construida en lenguaje Java. Se encarga de su propia redirección de mensajes y se comunica con otros objetos Java [IH1997]. 5. Discusión conclusiones y El gran auge que han tenido los dispositivos móviles en las últimas décadas ha ocasionado que el desarrollo de aplicaciones para estos dispositivos se vuelva inminente. Sin embargo, esta tarea se ha convertido en un reto para la comunidad de desarrolladores debido a sus limitaciones. Como respuesta, ha surgido la necesidad de que algunos paradigmas de componentes distribuidos entren a solucionar estos inconvenientes. Una posible solución para este problema es diseñar una arquitectura para un ambiente con dispositivos móviles que se base en componentes distribuidos. Esta arquitectura se puede basar en P2P utilizando herramientas como J2ME o JXTA para su desarrollo. Debido a que estos dispositivos se caracterizan por su movilidad, el utilizar agentes móviles podría ser una alternativa conveniente. 6. Referencias [IE2003] The International Engineering Consortium. “Global System for Mobile Communication (GSM)”. 2003. [IH1997] Israel Herranz. Agentes Móviles: Un nuevo paradigma en la concepción de sistemas distribuidos. http://greco.dit.upm.es/~encarna/doct orado/agmovil/index.htm [KG2003] Kris Gross, “Bluetooth”. BMA373. Bradley University en http://students.bradley.edu/~theyen/b ma373/final%20paper.doc [MA2003] Mohamed AbdelAziz. “P2P Programming With Project Code-named JXTA”. Sun Microsystems. 2003 [OL2003] Osmosis Latina. Aplicaciones Inalámbricas un Modelo Nuevo en http://www.osmosislatina.com/aplica ciones/j2mebrew.htm [SR2003] Srinkanth Raju. “Developing peer – to – peer applications using JXTA and Java.” Sun Microsystems. 2003 [VN2002] Vnunet. “Los terminales se hacen inteligentes gracias a Java”. Julio del 2002