7. Aplicaciones JXME
JXTA4J2ME es una API traductora para conectar dispositivos J2ME a redes JXTA,
teniendo presente las limitaciones técnicas de los dispositivos móviles frente
a los de escritorio.
Los pares JXTA4J2ME dan una funcionalidad reducida, para corresponder a
las capacidades de un dispositivo J2ME.
7.1. Coordinación entre los dispositivos terminales J2ME y repetidores JXTA
Un par JXTA basado en J2ME solo habla con un repetidor JXTA (un par
repetidor de mensajes), el cual asume el soporte de la mayor parte del procesamiento de
mensajes (tal como mensajes XML para anuncios, enviando mensajes de búsqueda a
través de la red JXTA, y así sucesivamente) y repitiendo la carga. Un par
basado en J2ME, junto con un repetidor JXTA, es funcionalmente equivalente a un par JXTA
normal. Por lo tanto, un par J2ME actuará como un dispositivo terminal, fijado en
el perímetro de una red JXTA.
La figura Ilustra cómo un repetidor JXTA ayuda a dispositivos
terminales basados en J2ME a interactuar con una red JXTA.
Interacción entre los dispositivos J2ME con la red JXTA a
través de un repetidor.
7.2. Una solución de mensajería JXTA4J2ME
JXTA4J2ME provee un skeleton , una pequeña API, adecuada
para ser alojada en un dispositivo J2ME. JXTA4J2ME puede conectarse a repetidores JXTA.
El repetidor provee una la mayor parte de la funcionalidad, tal como creación y
procesamiento XML.
La capa de red virtual JXTA resuelve el problema asociado con las
primeras conexiones. El par JXTA4J2ME solo necesita conectarse a cualquier repetidor (que
este encendido y conectado al punto de encuentro ( rendezvous ) de la red de pares
JXTA) y la red automáticamente ajustará por si misma los cambios en su
topología.
El conjunto de protocolos JXTA provee los dos tipos de estilos de
mensajería: punto a punto y publicar/suscribir. Por ejemplo, un túnel
unicast JXTA conecta a dos puntos extremos con un simple intercambio de mensajes punto a
punto. De otro lado, un túnel propagado JXTA es utilizado para transportar mensajes
broadcasting a los pares interesados. Más aún, el acto de adherirse a un
grupo de pares es inherentemente similar a suscribirse a un tópico JMS.
7.3. Clases JXTA4J2ME
Hay tres clases en una implementación JXTA4J2ME:
La clase PeerNetwork maneja la conexión a los repetidores
JXTA.
La clase Element maneja la creación y análisis
de elementos individuales (esencialmente pares nombre-valor) de un mensaje JXTA.
La clase Message maneja la creación y análisis
de los mensajes completos. Esta es esencialmente la tarea de poner las instancias Elemento
junto con un objeto Mensaje.
Clase HttpMessenger actuando como capa intermediaria
Un par simple J2ME puede mantener relaciones con cualquier número
de repetidores JXTA. En el momento, la implementación JXTA4J2ME no provee ningún
mecanismo para buscar repetidores JXTA disponibles. Por lo tanto una aplicación JXTA
haciendo uso de una implementación JXTA4J2ME necesitará conocer la dirección
de un repetidor JXTA utilizando otros medios.
Se puede anticipar que algunas implementaciones futuras de JXTA4J2ME
proveerán un medio para localizar automáticamente repetidores JXTA disponibles
7.4. Paquetes de instalación
1. JSDK 1.3.1 o superior
http://java.sun.com/products/jdk/1.3.1
2. J2ME Wireless Toolkit
http://java.sun.com/products/j2mewtoolkit/
3. Librerías de jxme (j2me para jxta)
http://jxme.jxta.org/
4. JBuilder con Mobile Set, Jbuilder Mobile Edition o cualquier otro entorno
de desarrollo para Java que soporte desarrollo de aplicaciones con J2ME como el Sun One Mobile
Edition
Importante: Aún no es recomendable utilizar Windows XP como
sistema operativo. Todas las versiones anteriores, hasta Windows 95, son completamente
compatibles
Primero que todo se debe establecer las variables de entorno del sistema
necesarias. En este caso:
HOME: D:jxmedemochatdist
JAVA_HOME: D:JBuilder7jdk1.3.1
MIDP_HOME: D:LeftHookJ2mewtklib
Para realizar pruebas nosotros escogimos trabajar con el JBuilder con la
herramienta adicional Mobile Set. La siguiente figura muestra el entorno de desarrollo con el
código de una aplicación de chat:
En la figura anterior se pueden observar las clases jxmede las que se
habló anteriormente. También se puede ver que dentro de cada una de las clases
es necesario incluir el paquete net.jxta.j2me. Para una información completa sobre el
código fuente, puede visitar el siguiente enlace: http://jxme.jxta.org/
Utilizamos el J2ME Wireless Toolkit para ver corriendo la aplicación.
Para ejecutarla completamente, es necesario tener dirección IP real debido a que la
aplicación de ejempla intenta acceder a un servidor en la Internet:
|