Vous êtes sur la page 1sur 6

Revista Tecnolgica ESPOL, Vol. 19, N.

1, 93-98, (Octubre, 2006), ISSN : 0257-1749

Diseo y Desarrollo de una Aplicacin P2P de Mensajera para la ESPOL,


Usando Tecnologa JXTA
Xavier Fernando Calle Pea, Vanessa Ins Cedeo Mieles, Cristina Luca Abad Robalino, Ing.
Facultad de Ingeniera en Electricidad y Computacin
Escuela Superior Politcnica del Litoral
Campus Gustavo Galindo V., Km 30.5, Va Perimetral, Guayaquil, Ecuador
xcalle@fiec.espol.edu.ec, vcedeno@fiec.espol.edu.ec, cabad@fiec.espol.edu.ec

Resumen
La tecnologa JXTA es un grupo de protocolos que permite a cualquier dispositivo conectado a la red comunicarse
y colaborar de una manera peer-to-peer (P2P). Los usuarios de JXTA, tambin llamados peers, crean una red
virtual superpuesta donde cada peer puede interactuar con otros peers y recursos directamente incluso cuando
algunos de ellos se encuentran detrs de firewalls y NATs o se encuentran en diferentes redes. Queremos otorgar a
los estudiantes de la ESPOL una herramienta de colaboracin la cual les permita mantener un chat con mltiples
usuarios de todos los puntos de la institucin como son oficinas administrativas, facultades, laboratorios. Con
nuestra aplicacin de mensajera basada en JXTA no dependemos de un servidor central. La red P2P se basa en
una serie de nodos que se comportan a la vez como clientes y como servidores de los dems nodos de la red.
Cualquier nodo puede iniciar o completar una transaccin compatible. Los nodos pueden diferir en configuracin
local, velocidad de proceso, ancho de banda de su conexin a la red y capacidad de almacenamiento. Lo que
otorga las ventajas de tolerancia a fallos, escalabilidad, costo de implementacin, mejor rendimiento y alta
disponibilidad de recursos.

Palabras Claves: P2P, JXTA, Pipe, Advertisement, Peer, PeerGroup, Service, Discovery, Mensajera.

Abstract
JXTA technology is a set of protocols that allows any device connected to the network, to communicate and
collaborate in a peer-to-peer (P2P) manner. JXTA users, also called peers, create a virtual overlay network where
each peer can interact with other peers and resources directly even when some of them are behind firewalls and
NATs or use different network transports. We want to give to the students of the ESPOL a collaborative tool which
allows them to chat with multiple users from every point of the Institution, as administrative offices, departments,
and laboratories. With our message application based in JXTA we do not depend of a central server. The P2P
network is based on a series of nodes that behave at the same time as clients and servers of the rest of nodes in the
network. Any node can begin or complete a compatible transaction. The nodes can differ in local configuration,
processing speed, bandwidth and storage capacity. This grants the advantages of fault tolerance, scalability, low
implementation costs, good performance and good resource availability.
94 X. Calle, V. Cedeo, C. Abad

1. Introduccin 2. Arquitectura de JXTA [1]


Las redes Peer-to-Peer (P2P) son sistemas Capa de plataforma (Ncleo de JXTA):
distribuidos en donde el software que corre en cada Encapsula propiedades comunes a la red P2P.
nodo proporciona funciones equivalentes y no existe Incluye bloques para permitir mecanismos de
ningn control centralizado u organizacin jerrquica. clave para aplicaciones P2P, incluye
JXTA es una plataforma abierta diseada para redes discovery, transporte (incluye manejo de
peer-to-peer. El trmino JXTA es una abreviatura de firewall), la creacin de peers y grupos de
yuxtapuesto, en ingls juxtapose. La arquitectura de peers.
software JXTA est dividida en tres capas. Provee un Capa de Servicios: Incluye servicios de red
grupo de protocolos y una referencia de que pueden no ser absolutamente necesarios
implementacin de cdigo abierto. La arquitectura de para que una red P2P pueda operar, pero son
software JXTA est dividida en tres capas, como se comunes o deseados en el ambiente P2P.
muestra en la Figura 1. Ejemplos de servicios de red incluyen buscar
e indexar, directorio, sistemas de
almacenamiento, compartir archivos, sistemas
de archivos distribuidos, agregacin de
recursos y renta, traslado de protocolos,
autenticacin y servicios de PKI
(infraestructura de clave pblica).
Capa de Aplicaciones: Incluye
implementacin de aplicaciones integradas,
como mensajes instantneos P2P, compartir
documentos y recursos, manejar y entregar
contenido de entretenimiento, sistemas de
mail P2P y muchos otros. La frontera entre
servicios y aplicaciones no es rgida. Una
aplicacin para un cliente puede ser vista
como un servicio para otro cliente. Todo el
Figura 1. Arquitectura de JXTA. [2]
sistema es diseado para ser modular,
permitiendo a los desarrolladores escoger
El propsito del artculo es exponer una herramienta entre una coleccin de servicios y
de colaboracin a los estudiantes de la ESPOL la cual aplicaciones que coincidan con sus
les permita mantener un chat con mltiples usuarios de necesidades.
todos los puntos de la institucin como son oficinas
administrativas, facultades, laboratorios. Con la 2.1 Componentes de JXTA
aplicacin de mensajera basada en JXTA no se
depende de un servidor central. Los nodos de la red La red JXTA consiste en una serie de nodos
P2P se comportan a la vez como clientes y como interconectados, o tambin llamados peers. Los peers
servidores de los dems nodos de la red. Todo esto se pueden auto organizar en grupos de peers, que
otorga las ventajas de tolerancia a fallos, escalabilidad, proveen un grupo de servicios comunes. Ejemplos de
costo de implementacin, mejor rendimiento y alta servicios que pueden ser provedos por un grupo de
disponibilidad de recursos. peers incluyen compartir documentos o aplicaciones
de Chat.
En la Seccin 2 del artculo se describe la
arquitectura de JXTA, en la Seccin 3 la motivacin Los peers de JXTA publican (advertise) sus servicios
del desarrollo del proyecto. En la Seccin 4 se justifica en documentos XML llamados publicaciones
el diseo de la aplicacin, en la Seccin 5 el alcance de (advertisements). Las publicaciones permiten que otros
la aplicacin. En la Seccin 6 la implementacin del peers en la red aprendan a cmo conectarse e
mismo. En la Seccin 7 la contribucin del proyecto a interactuar con los servicios de los peers.
la Institucin. Luego se incluyen las conclusiones y
recomendaciones en las Secciones 8 y 9, y se Los peers de JXTA usan tuberas (pipes) para enviar
especifican las referencias en la Seccin 10. mensajes entre ellos. Los pipes son mecanismos de
transferencia de mensajes asincrnicos y
unidireccionales usados para el servicio de
comunicacin. Los mensajes son simplemente
documentos XML cuyo sobre contiene informacin de
enrutamiento y de credenciales. Los pipes estn
Diseo y Desarrollo de una Aplicacin P2P de Mensajera para la ESPOL, Usando Tecnologa JXTA 95

limitados a los puntos finales especficos como al 4.2 Jabber vs. JXTA
puerto TCP y direcciones IP asociadas.
Actualmente existen alternativas libres al sistema
2.2 Aspectos claves de la arquitectura de MSN Messenger de Microsoft o al Yahoo Messenger.
JXTA Como ejemplo tenemos a Jabber [4], el cual es un
protocolo libre gestionado por Jabber Software
La arquitectura JXTA se distingue de otros modelos Foundation basado en el estndar XML para
de redes distribuidas por: mensajera instantnea. Pero a diferencia de nuestra
aplicacin, la red de Jabber est formada por miles de
El uso de documentos XML (publicaciones) para grandes y pequeos servidores en todo el mundo,
describir recursos de red. interconectados por Internet. Con nuestra aplicacin de
Abstraccin de pipes para peers, sin depender de mensajera basada en JXTA utilizamos la tecnologa
un nombramiento central de autoridad de P2P que no necesita de un servidor central.
direccionamiento como un DNS (Domain Name
Service). 5. Alcance
Un esquema uniforme de direccionamiento de
peers (IDs de Peers). 5.1 Visualizacin de usuarios conectados

3. Motivacin En la ventana de usuarios conectados se muestran a


los contactos agregados anteriormente, indicando si se
Como las polticas en la ESPOL especifican que en encuentra conectado o no.
el interior de las salas de los centro de cmputos se
prohbe el uso de cualquier programa o sitio de 5.2 Permite chat de 1 a 1
comunicacin en lnea, incluido MSN Messenger y
Yahoo Messenger, latinchat, infochat, etc., queremos Los usuarios pueden mantener conversaciones
otorgar una aplicacin alternativa que le permita a los sincrnicas con otro usuario conectado a la red en una
estudiantes poder comunicarse con sus compaeros ventana individual.
politcnicos con la finalidad de incentivar
colaboracin durante los estudios, investigaciones y 5.3 Permite chat entre mltiples usuarios
actividades politcnicas. simultneamente

4. Justificaciones de Diseo Los usuarios pueden mantener un chat con mltiples


usuarios en una misma ventana. Es decir, ms de un
4.1 Plataforma .Net de Microsoft vs. JXTA usuario forma parte de la conversacin.

El Framework .NET de Microsoft [8] as como 5.4 Agrupar usuarios por facultad y unidad
JXTA provee una rica plataforma para la creacin de administrativa
aplicaciones P2P. JXTA confa en el XML para
intercambiar datos estructurados y descubrir servicios En la ventana que muestra los usuarios conectados al
a travs de todos los peers en la red P2P. Los aspectos sistema se puede agrupar los usuarios segn la facultad
de servicios Web de la plataforma .NET de Microsoft a la que pertenecen.
se infunden pesadamente con XML pero el uso de
XML solamente no los hace comparable. 5.5 Creacin de grupos de amigos
Fundamentalmente JXTA y .NET tienen propsitos
completamente diferentes, .Net se enfoca ms en la En la ventana donde muestra a los usuarios
arquitectura tradicional de cliente/servidor de entrega conectados se puede agrupar a los usuarios en
de servicios. Aunque la tecnologa .NET puede formar diferentes grupos de amigos.
las bases para una aplicacin P2P, crear una completa
solucin P2P usando .NET requerira que el 5.6 Cartelera comunal
desarrollador especifique todas las interacciones P2P
del ncleo como por ejemplo descubrimientos de Cualquier usuario puede leer o pegar anuncios en
peers. Esta solucin demandara recrear todos los una cartelera, los cuales perdurarn por un tiempo an
mecanismos que ya estn definidos por los protocolos cuando el usuario que los coloca se desconecte.
de JXTA. Por esto escogemos la tecnologa JXTA, De esta manera usuarios que se conecten despus
porque nos permite enfocarnos en los aspectos de podrn leer estos mensajes.
diseo propios de la aplicacin sin invertir tiempo en
detalles de mecanismos de comunicacin P2P.
96 X. Calle, V. Cedeo, C. Abad

5.7 Envo de archivos

El usuario puede enviar archivos a los usuarios


conectados.

5.8 Status de cada usuario conectado

El usuario puede ser capaz de cambiar su estado el


cual puede ser uno predeterminado como En Lnea,
Ocupado, o puede ser un estado personalizado como
Trabajando en: [lugar] o Trabajando sobre:
[materia].

5.9 Bsqueda de usuarios conectados

El usuario puede realizar bsquedas de usuarios


conectados a la red por su nombre de usuario,
sobrenombre y/o facultad.

5.10 Comunicaciones seguras

Las comunicaciones en el chat se harn de forma


segura, siguiendo las propiedades de:

-Confidencialidad: Garantizar que los mensajes no


Figura 2. Ventana de autenticacin.
sean ledos por otros.
-Autenticacin: Garantiza que el emisor sea quien
dice ser.
-Autorizacin: Que el emisor del mensaje sea
autorizado.
-Integridad de datos: Garantizar que el mensaje no
sea modificado accidental o deliberadamente.
-Refutabilidad: Garantizar que el mensaje sea
transmitido enviando una certificacin, que no sea
retransmitido.

6. Desarrollo de la aplicacin
Se ha empezado con el desarrollo del prototipo. Las
pantallas en las Figuras 2-5 muestran la
implementacin de la funcionalidad descrita en la
Seccin 5.

Figura 3. Ventana principal del chat. Figura 4. Ventana


de bsqueda de usuarios.
Diseo y Desarrollo de una Aplicacin P2P de Mensajera para la ESPOL, Usando Tecnologa JXTA 97

incluso es posible que otros clientes tambin puedan


convertirse en servidores, intercambiado archivos y en
sistemas de colaboracin. Esta concepcin difiere
radicalmente de la arquitectura cliente-servidor ya que
no existen servidores u otros equipos de control del
trfico entre los miembros. Es sencillo de
implementar, muy efectivo y no hay punto nico de
fallo ni de censura.

8. Conclusiones
JXTA es una tecnologa en constante evolucin que
provee una capa de middleware la cual permite
desarrollar de forma ms eficiente aplicaciones que
funcionarn en un ambiente peer-to-peer, ocupndose
de aspectos tales como conexin, seguridad,
localizacin, entre otros.
La aplicacin de mensajera Universitaria propuesta
demuestra las ventajas de utilizar JXTA para la
Figura 4. Ventana de bsqueda de usuarios.
implementacin de servicios distribuidos que sean
escalables, seguros y fciles de administrar.
La implementacin del ESPOL Messenger en los
laboratorios y oficinas de la institucin facilitar las
actividades colaborativas entre los miembros de
nuestra comunidad politcnica, la cual se espera incida
en un incremento de la calidad educativa e
investigativa de la misma.

9. Recomendaciones
Como trabajo futuro sera recomendable que nuestra
aplicacin chat sea un mdulo que forme parte de los
sistemas acadmicos de la ESPOL para mejorar la
comunicacin y participacin entre estudiantes y
profesores.

Figura 5. Ventana de intercambio de mensajes. 10. Referencias

7. Contribucin [1] Sun Microsystems, JXTA v2.3.x: Java


Programmers Guide, Abril 7, 2005 pp. 9-20
Actualmente existen sistemas de mensajera basados <http://www.jxta.org/docs/JxtaProgGuide_v2.3.pd f>
en tecnologa JXTA disponibles para bajar de Internet
como MyJXTA [5] y JIM (JXTA Instant Messenger) [2] Sun Microsystems, Peers on the Expanded
[6]. Estos otorgan la funcionalidad de un chat P2P pero Web. Imagen. JXTA v2.3.x: Java Programmers
no cumplen los requerimientos para ser implementados Guide. Abril 7, 2005. pp. 9.
en instituciones acadmicas ya que cualquiera puede http://www.jxta.org/docs/JxtaProgGuide_v2.3.pdf
acceder a ellos. Por lo que el uso de nuestra aplicacin
ser restringido para estudiantes de la ESPOL [3] JXTA Get connected, Project JXTA,
nicamente, validando el ingreso con la informacin http://www.jxta.org
de las cuentas de usuarios, trabajadores y profesores de
la base de datos del CSI, ya que sino el sistema podra [4] Wikipedia La Enciclopedia Libre, Jabber
degenerarse si algunos usuarios deciden hacerse pasar Artculo, http://es.wikipedia.org/wiki/Jabber
por otros. Tambin la aplicacin tendr
funcionalidades crticas y necesarias para los usuarios, [5] Myjxta: Home, Project Home,
anteriormente especificadas. http://myjxta.jxta.org/
Otra ventaja del sistema es el ambiente de red P2P.
En l un cliente puede comportarse como un servidor [6] Instant J.I.M Messenger: Home, J.I.M -Latest
real de archivos para otros clientes de la red. Implica la Stuff, http://jxtaim.sourceforge.net/index.html
creacin de una relacin uno-a-uno o uno-a-muchos, e
98 X. Calle, V. Cedeo, C. Abad

[7] Wikipedia La Enciclopedia Libre, Peer-to-


peer, Artculo,
http://es.wikipedia.org/wiki/Redes_P2P

[8] Wilson, Brendon, JXTA, Junio, 2002 pp. 47


<http://www.brendonwilson.com/projects/jxta-book/>

Vous aimerez peut-être aussi