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
[email protected]
[email protected]
[email protected]
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