Professional Documents
Culture Documents
5
Programmers Guide
1. Capitulo 1: Introducción
Esta guía es para desarrolladores de software que les gustaría escribir y distribuir servicios
P2P y aplicaciones usando la tecnología JXTA y el lenguaje de programación Java Standard
Edition. Esta provee una introducción a la tecnología JXTA, describe la arquitectura de red de
JXTA y conceptos claves, e incluye ejemplos y discusiones de construcciones de programación
esenciales usando JXTAJXSE.
Un principio primario de diseño de JXTA es proveer una plataforma que contenga las funciones
básicas de las redes P2P. por ejemplo, JXTA supera defectos potenciales de muchos sistemas
existentes del P2P:
• Interoperabilidad: La tecnología JXTA esta diseñada para habilitar la provisión de
servicios P2P al igual(peer) para localizar y comunicarse el uno con otro
independientemente de direcciones de red y protocolos físicos.
Una característica común de los iguales(peers) en una red P2P es que ellos frecuentemente
existen en el extremo de las redes regulares, este extremo frecuentemente se representa con
dispositivos conectados ocasionalmente que tienen asignadas direcciones no estáticas (ej.
DHCP). Debido a que están sujetos a conectividad imprevisible con direccionamientos de red
potencialmente variables, estos están fuera del alcance estándar del DNS. JXTA equipa a los
iguales(peers) en el extremo de la red con el aprovisionamiento de un esquema de dirección
global único de par(globally unique peer addressing scheme) que es independiente del
tradicional nombre de servicio (traditional name services). Como una consecuencia de el uso
de IDs JXTA, un igual(peer) puede migrar a través de redes físicas, cambiando transportes y
direcciones de red, incluso estando temporalmente desconectado, y continuar siendo
direccionable por otros iguales(peers).
JXTA es una plataforma de computación de red abierta diseñada para computación peer-to-
peer(P2P) proveyendo los bloques de construcción básica y servicios requeridos para permitir
a cualquier cosa dondequiera conectividad de la aplicación.
JXTA provee un conjunto común de protocolos abiertos que cuentan con implementaciones de
referencia de código abierto para el desarrollo de aplicaciones Peer to Peer. Los protocolos
JXTA estandarizan la forma en que sus iguales:
- Se descubren.
- Se supervisan.
Los protocolos JXTA son diseñados para ser independientes de lenguajes de programación y
protocolos de transporte. los protocolos de comunicación pueden ser implementados en
lenguaje de programación Java, C/C++, .NET, ruby y muchos otros lenguajes. Por otra parte,
pueden ser aplicados sobre TCP/IP, HTTP, bluetooth y otras redes de transporte a la vez
manteniendo interoperabilidad mundial.
- Buscar otros iguales en la red con descubrimiento dinámico através de firewalls y NATs
La información sobre la tecnología JXTA puede encontrarse en el sitio web del proyecto JXTA.
Los recursos incluyen información, documentación, listas de correo, código fuente, binarios y
tutoriales.
INVOLUCRARSE
Como con cualquier proyecto de código abierto, uno de los principales objetivos es conseguir
que la comunidad participe mediante la contribución a JXTA. Dos sugerencia para empezar
JXTA son: unirse a una lista de correo y chatear con otros usuarios JXTA.
usuario: Discuciones técnicas sobre el uso de JXTA y mejores prácticas para el diseño de
aplicaciones JXTA.
Usted puede aprender sobre la tecnología JXTA usando la aplicación interactiva Shell y
chateando con otros usuarios JXTA y contribuyentes utilizando la aplicación myJXTA que se
puede obtener desde el sitio Project JXTA Downloads.
A medida que adquiera experiencia utilizando la tecnología JXTA, usted podría contribuir
mediante la presentación de informes de error, escribiendo o extendiendo tutoriales,
colaborando con proyectos existentes y proponiendo nuevos proyectos. La pagina principal del
proyecto JXSE contiene instrucciones adicionales para contribuir.
CAPITULO 2: ARQUITECTURA JXTA™
Descripción
La arquitectura software de JXTA está dividida en tres capas, como se muestra en la figura 2.
Corazón de JXTA
El corazón de JXTA encapsula las primitivas mínimas y esenciales que son comunes para
interconexión P2P. Esto incluye componentes básicos para permitir mecanismos claves para
las aplicaciones P2P, incluyendo descubrimiento, transportes de comunicación (incluyendo
firewall (cortafuegos) y NAT traversal), la creación de iguales y grupos de iguales, y
primitivas asociadas con seguridad.
Capa de Servicios
La capa de servicios incluye los servicios de red que podrían no ser absolutamente
necesarios para que una red P2P opere, pero son comunes o deseables en un ambiente
P2P. Los ejemplos de servicios de red incluyen búsqueda e indexación, directorios, sistemas
de almacenamiento, uso compartido de archivos, sistemas de archivos distribuidos,
agregación y de alquiler de recursos, protocolo de translación, autenticación y servicios de
PKI (Public Key Infrastructure).
Capa de Aplicaciones
COMPONENTES DE JXTA
La red JXTA consiste de una serie de nodos interconectados, o iguales (peers). Un igual puede
ser cualquier tipo de de dispositivo desde un sensor hasta un supercomputador o incluso un
proceso virtual. Múltiples iguales (peers) pueden correr sobre un único dispositivo físico, y
potencialmente, varios dispositivos físicos podrían cooperar para actuar como un solo igual
(peer). Los iguales pueden ser conectados por cualquier protocolo de interconexión adecuado
incluyendo TCP/IP, http, Bluetooth, GSM, etc.
Cada igual ofrece un conjunto de servicios y recursos que están a disposición de otros iguales
(peers). Los servicios son programas interactivos y pueden incluir bases de datos, sistemas
de autenticación, servidores de chat o casi cualquier programa que pueda ser conectado. Dos
tipos de servicios son comunes con las redes JXTA, peer services (servicios de iguales) y
group services (servicios de grupo). Servicios de igual son aquellos proporcionados por un
único igual. Los servicios de grupo son los servicios que se prestan en una confederación,
redundante o de manera cooperativa por "todo el grupo". Cada instancia de un servicio de
igual es normalmente independiente de otras instancias. Las medidas adoptadas con una
instancia, no tienen efecto sobre otras instancias. Cada instancia de servicio de grupo de
iguales es normalmente uno de los participantes en una instancia común. Las medidas que se
adopten con una instancia (probable) tienen efectos sobre todas las instancias.
Todos los pares JXTA implementan un pequeño número de los servicios básicos requeridos y
frecuentemente también proporcionan varios servicios estándar adicionales. Cada grupo de
iguales, incluye como parte de su definición el conjunto de servicios de grupo que cada igual
debe ejecutar para participar en el grupo de iguales (group peer).
Los recursos de un igual son normalmente contenido estático (no-interactivo) los cuales el
igual controla, posee o simplemente tiene una copia de. Los recursos pueden incluir Archivos,
documentos, media, avisos, índices, pero también pueden ser recursos del mundo real tales
como switches, sensores e impresoras.
Los iguales JXTA publican sus servicios y recursos usando documentos XML llamados
advertisements(avisos). Los avisos habilitan a los iguales sobre la red para descubrir recursos
y servicios y para determinar conectarse e interactuar con estos servicios.
Los iguales pueden organizarse dentro de grupos de iguales. Un grupo de iguales, vagamente
definido, es cualquier conjunto de iguales que suministran y controlan(leverage) un conjunto
común de servicios para un propósito común. Hay dos aspectos claves a esta definición --
servicios comunes y propósitos comunes--. Dos grupos de iguales podrían tener el mismo
conjunto de servicios, por ejemplo una aplicación de chat, pero diferentes propósitos, por
ejemplo un chat político y otro de deportes. Los grupos de iguales pueden ser definidos
sobre casi cualquier base que los desarrolladores o los distribuidores elijan. En el ejemplo
anterior el grupo de iguales podría ser redefinido para proveer una aplicación de chat para
múltiples tópicos pero localizado dentro de una organización, por ejemplo un departamento de
universidad. Cuando se define un grupo de iguales las primeras dos preguntas que deben
contestarse siempre son; "Qué iguales son miembros de este grupo?", y "En qué aplicación o
servicio están los iguales cooperando para proporcionarla(o)?".
Los iguales JXTA utilizan sockets y pipes para enviar mensajes a otros. Los socketes de JXTA
son conexiones bidireccionales confiables usadas por las aplicaciones para comunicarse
confiablemente. Los pipes son un mecanismo de transferencia de mensajes asíncrono y
unidireccional usado para la comunicación del servicio. Los mensajes son simples documentos
XML cuya cubierta contiene información de (ruta)routing, resumen y credencial. Los pipes
están obligados a especificar puntos finales(endpoints), tales como puerto TCP y una dirección
IP asociada.
Cuatro aspectos esenciales de la arquitectura JXTA que la distinguen de otros modelos de red
distribuida son:
En este capitulo define la terminología clave de JXTA y describe los componentes primarios de
JXTA.
Iguales (Peers)
Un igual es cualquier entidad de red que implemente uno o más de los protocolos de JXTA. Los
iguales pueden residir en sensores, teléfonos, y PDAs, tanbién como en PCs, servidores, y
supercomputadores. Cada igual opera independientemente y asincronamente de todos los
otros iguales y es identificado únicamente por un ID de igual.
Los iguales publican una o más direcciones de red para usarlas con los protocolos JXTA. Cada
dirección publicada se anuncia como un punto final (endpoint) del igual, que identifica la
dirección de red. Los puntos finales del igual son usados por los iguales para estabilizar
directamente conexiones punto-a-punto entre dos iguales.
Las conexiones de red punto-a-punto directas no siempre están disponibles entre iguales.
Iguales intermediarios pueden ser utilizados para encaminar(enrutar) mensajes a los iguales
que están separados debido a los límites físicos de la red. Los límites de la red pueden ser
límites naturales por ejemplo entre redes de Ethernet y de Bluetooth o creadas artificialmente
debido a la configuración de red. Las barreras artificiales pueden incluir NAT, cortafuegos y
servidores proxy. El uso de iguales intermedios alistados puede y cambiará en un cierto plazo
sin impacto en la aplicación de JXTA.
Configuran a los iguales típicamente para descubrirse unos a otros espontáneamente en la red
para formar las relaciones conocidas como grupos de iguales, que pueden ser transitorios o
persistentes en naturaleza.
Los iguales JXTA pueden ser categorizados dentro de tres tipos principales:
• Minimal-Edge peers: Iguales que implementan solo los servicios requeridos del
corazón(core) de JXTA y pueden contar con otros iguales para que actúen como su
proxy para otros servicios para participar completamente en una red JXTA. Los iguales
proxy actúan como un proxy para los servicios que no son del corazón(non-core
services). Los iguales Minimal-Edge incluyen típicamente sensores y dispositivos de
automatización de casas.
• Full-Edge peers: Iguales que implementan todos los servicios del corazón y estándar
de JXTA y pueden participar en todos los protocolos JXTA. Estos iguales conforman la
mayoría de iguales en una red JXTA y pueden incluir teléfonos, PC's, servidores, etc.
• Super-Peer: Iguales que implementan y proveen recursos para soportar el despliegue
y operación de una red JXTA. Hay tres funciones principales en un Super-Peer. Un igual
simple puede implementar una o más de estas funciones.
• Relay(receive, reinforce, and retransmit): Usada para almacenar y reenviar
mensajes entre iguales que no tienen conectividad directa debido cortafuegos o
NATs. Solamente los iguales que no están en capacidad de recibir conexiones de
otros iguales requieren un relay.
• Rendezvous: Mantiene los índices globales de publicidad y ayuda a iguales
extremos(edge) y proxys con el anuncio de búsquedas. También se ocupa de la
radiodifución de mensajes.
• Proxy: Utilizado por los Minimal-Edge peers para tener acceso a todas las
funcionalidades de la red JXTA. El igual proxy, traduce y resume las peticiones,
responde a las consultas y proporciona soporte para la funcionalidad de los
Minimal-Edge peers.
Esta categoría describe las configuraciones de iguales más comunes. Dependiendo de la aplicación y la
capacidad del igual puede tener sentido
desplegar los iguales con una combinación de funcionalidad. Por ejemplo, que ésto me sea razonable
para desplegar iguales con la plena funcionalidad de descubriemiento(discovery) y tubería(pipe), pero
requieren de un proxy para el funcionamiento de los servicios de grupo.
Un grupo de iguales, es una colección de iguales que se han puesto de acuerdo en un conjunto común
de servicios o intereses. Los iguales se autorganizan en grupos de iguales, cada uno de los cuales se
idéntica unívocamente por un ID de grupo de iguales. Cada grupo de iguales establece su propia política
de membresía incluyendo abierta (cualquier igual puede afiliarse) hasta la muy segura y protegida (que
requiere credenciales para poder ser miembro).
Los iguales pueden pertenecer a más de un grupo de iguales simultáneamente. Por defecto, el primer
grupo que se instancia es el Network Peer Group. Todos los iguales pertenecientes al Network Peer
Group, pueden optar por unirse a otros grupos de iguales en cualquier momento.
Los protocolos JXTA describen como los iguales pueden publicar, descubrir, unirse, y monitorear grupo
de iguales, ellos no dictan cuando o por qué los grupos de iguales son creados. Unirse a un grupo es
simplemente instanciar todos los servicios de grupo de iguales definidos por el grupo de iguales. Hay
varias motivaciones para la creación de grupos de iguales:
Los grupos crean un dominio local de control en el cual una política de seguridad especifica puede
ser aplicada. La política de seguridad puede ser tan simple como un intercambio de texto plano
con nombre de usuario y contraseña, o tan sofisticada como criptografía de llave publica. Los
limites de un grupo de iguales permiten a los miembros acceder y publicar contenido protegido.
Los grupos de iguales forman regiones lógicas cuyos limites limitan el acceso a los recursos del
grupo de iguales.
Grupos que permiten la creación de un dominio local de especialización. Por ejemplo, los iguales
pueden agruparse para implementar una red de documentos compartidos o una red de CPU
compartida. Los grupos de iguales sirven para subdividir la red en un resumen de regiones
proporcionando un mecanismo implícito de alcance. Las fronteras del grupo de iguales define
el alcance de la búsqueda cuando se busca por un contenido del grupo.
Los grupos de iguales permiten a un igual monitoriar un conjunto de iguales para un fin especial
(por ejemplo, el latido del corazón, trafico introspección (traffic introspection) o la rendición
de cuentas.).
Los grupos también pueden formar una relación jerárquica padre-hijo, en donde cada grupo tiene un
único padre. Las solicitudes de búsqueda se propagan en el seno del grupo. El anuncio para el grupo
está publicado en el grupo de padres, como también en el propio grupo.
Los iguales cooperan y se comunican para publicar, descubrir, e invocar servicios de red. Los iguales
pueden publicar múltiples servicios los cuales, a su vez, son descubiertos a través del Peer Discovery
Protocol.
Los servicios pueden ser tanto pre-instalados en un igual o cargados desde la red. Con el fin de ejecutar
un servicio, un igual puede tener que localizar una aplicación adecuada para el ambiente runtime del
igual. El proceso de búsqueda, descarga, e instalación de un servicio desde la red es análogo a realizar
una búsqueda en internet por una pagina Web, recibir la pagina, y luego un plug-in que es requerido
por la pagina.
Un grupo de iguales provee un conjunto de servicios colectivamente, conocido como servicios de grupo
de iguales(peer group services). JXTA define un conjunto básico de servicios de grupo de iguales. Estos
servicios de grupo de iguales forman la firma de servicio del grupo de iguales, cada uno de los iguales
que se unen al grupo tienen que implementar estos servicios. Servicios adicionales pueden se
desarrollados para proveer servicios específicos. De modo que para que dos iguales interactúen a través
de un servicio, ellos deben ser ambos miembros de el mismo grupo de iguales.
Los servicios de grupo de iguales básicos que cada uno de los iguales debe
implementar con el fin de participar en la red JXTA son:
• Endpoint Service:
• Resolver Service:
Además de los servicios de grupo de iguales básicos exigidos a cada igual, varios servicios estándar
adicionales son comúnmente definidos para cada grupo de iguales. No todos los servicios estándar
deben ser implementados por cada grupo de iguales. Dependiendo de la definición del grupo de iguales
estos servicios pueden ser requeridos. Un grupo de iguales especifica sólo los servicios que encuentra
útiles. Un grupo de iguales puede también confiar en los servicios del grupo de iguales por defecto de la
red para proporcionar implementaciones genéricas de servicios básicos no-críticos. Los servicios de
grupo de iguales estándar que son encontrados en la mayoría de los grupos de iguales son:
• Discovery Service:
El servicio de descubrimiento es usado por los iguales miembros para buscar recursos
de grupo de iguales. Tales como iguales, grupos de iguales, tuberías y servicios.
• Membership Service:
• Access Service:
• Pipe Service:
• Monitoring Service:
MÓDULOS
Los módulos de JXTA son una abstracción de JXTA de bajo nivel usada para representar cualquier pieza
de "código" y la interface (API) que proporciona ese código. Los módulos son utilizados para
implementar servicios, transporte de mensajes y otros bits cargables de código JXTA.
La mayoría de los desarrolladores JXTA normalmente no tienen que tratar con módulos mientras que la
distribución incluya el conjunto inicial de servicios requeridos por la mayoría de las aplicaciones. La
abstracción de Módulo no especifica la implementación física del "código", esta puede ser proveída como
un Java class, una Java jar, una librería dinámica DLL, un conjunto de mensajes de XML, o un script. La
implementación del comportamiento del módulo se dejada al implementador del módulo. Por ejemplo,
los módulos pueden ser utilizados para representar diferentes implementaciones de un servicio de red
en diferentes plataformas, por ejemplo la plataforma Java, Microsoft Windows, o el entorno operativo
de Solaris.
Los módulos proveen una abstracción genérica para permitir a un igual instanciar una función o
servicio. Cuando un igual se une a un grupo de iguales él puede encontrar nuevos comportamientos
que él podría querer instanciar. Por ejemplo, cuando se une a un grupo de iguales, un igual puede
necesitar proveer una nuevo servicio de búsqueda que es únicamente utilizado en este grupo de
iguales. Con el fin de unirse a este grupo, el igual debe instanciar este nuevo servicio de búsqueda. El
framework de módulo permite la representación y el anuncio de comportamientos independientes de la
plataforma, y permite a los iguales describir e instanciar cualquier tipo de implementación de un
comportamiento. Por ejemplo, un igual tiene la habilidad para instanciar una implementación Java o C
del comportamiento especifico.
La abstracción de módulo incluye una clase módulo(module class), una especificación de módulo, y una
implementación de módulo:
• Module Class
• Module Specification
• Module Implementation
Los módulos son utilizados por los servicios de grupo de iguales, y pueden también ser usados por
servicios stand-alone. Los servicios JXTA pueden usar la abstracción de módulo para identificar la
existencia del servicio (su clase de módulo), la especificación del servicio (su especificación de módulo),
o una implementación del servicio (una implementación de módulo). Cada uno de estos componentes
tiene un anuncio asociado el cual puede ser publicado y descubierto por otro igual JXTA.
Como un ejemplo, considere el servicio de descubrimiento de JXTA (JXTA Discovery Service). Esté tiene
un único ModuleClassID, identificandolo como un servicio de descubrimiento (discovery service) – su
funcionalidad abstracta. Puede haber múltiples especificaciones del servicio de descubrimiento cada una
posiblemente incompatible con las otras. Una puede utilizar diferentes estrategias adaptadas al tamaño
del grupo y su dispersión a través de la red, mientras otra experimenta con nuevas estrategias. Cada
especificación tiene un único ModuleSpecID, el cual hace referencia al ModuleClassID del servicio de
descubrimiento. Para cada especificación, puede haber múltiples implementaciones, cada una de las
cuales contiene el mismo ModuleSpecID.
En resumen, puede haber múltiple especificaciones de una determinada clase de módulo, y cada una
puede ser incompatible. Sin embargo, todas las implementaciones de cualquier especificación se
asumen que son compatibles.
MENSAJES
Los protocolos JXTA definen dos "on-wire" representaciones de los mensajes: XML y
binaria. Estas representaciones on-wire son el formato de dato utilizado para la
transmisión del mensaje entre iguales. Formatos diferentes de on-wire son utilizados
para tomar la mejor ventaja de las características de la red de transporte
subyacente(underlying network transport). JXSE utiliza el formato de mensaje binario.
TUBERÍAS (PIPES)
Los iguales JXTA utilizan tuberías (pipes) para enviar mensajes a otro igual. Las tuberías son un
mecanismo de transferencia de mensajes asíncrono, unidireccional y no confiable (con la excepción de
unicast secure pipes) usados para comunicación y transferencia de datos. Las tuberías son canales de
comunicación virtual y pueden conectar iguales que no tienen un vinculo físico directo, lo que resulta en
una conexión lógica. Las tuberías pueden ser usadas para enviar cualquier tipo de datos incluyendo
texto XML y HTML, imagenes, música, código binario, cadenas de datos y objetos Java.
La tuberías punto Final (endpoints) son referenciados como recibir una tubería de entrada (input pipe) y
enviar una tubería de salida (output pipe). Las tuberías punto Final están dinámicamente vinculadas con
los iguales punto Final (endpoint) cuando la tubería se abre. Los iguales punto final corresponden a
interfaces de red de iguales disponibles, por ejemplo un puerto TCP y una dirección IP asociada, que
puede ser utilizada para enviar y recibir mensajes. las tuberías JXTA pueden tener puntos finales que
estén conectados a diferentes iguales en tiempos diferentes, o podrían no estar conectados a todos.
Toda la resolución y comunicación de tuberías se realiza dentro del alcance de un grupo de iguales. es
decir, las tuberías de salida y entrada deberán pertenecer al mismo grupo de iguales.
Las tuberías ofrecen dos modos de comunicación: punto a punto y propagación, como se puede
observar en el siguiente diagrama (Figura 3. Tuberías Unicast y Propagadas). JXSE provee también una
tubería unicast segura, una variante segura de la tubería punto a punto.
• Point-to-Point Pipes: (Tuberías Punto a Punto)
•
Una tubería punto a punto conecta exactamente dos tuberías punto final en conjunto, una tubería de
entrada en un igual recibe mensajes enviados desde la tubería de salida de otro igual. Esto también es
posible para varios iguales unirse a una simple tubería de entrada.
Una tubería propagada conecta una tubería de salida a varias tuberías de entrada. Los mensajes fluyen
desde la tubería de salida, la fuente de propagación, hacia las tuberías de entrada.
Las tuberias unidireccionales son una abstracción de muy bajo nivel de programación de
comunicaciones JXTA. Se recomienda que la mayoría de los programadores use el nivel de
comunicación de más alta abstracción proporcionado por los servicios JxtaSocket y JxtaBiDipipe
descritos en la siguiente sección.
JxtaSocket Y JxtaBiDipipe
Las tuberías básicas de JXTA proveen canales de comunicación uni-direccionales, poco fiables. Con el fin
de hacer más útil las tuberías para servicios y aplicaciones, es necesario implementar canales de
comunicacion bidireccionales y fiables por encima de las tuberias primitivas. JXSE provee
funcionalidades para satisfacer el nivel de calidad de los servicios requeridos por la mayoría de las
aplicaciones:
• Fiabilidad
• JxtaSocket y JxtaServerSocket
•
JxtaServerSocket y JxtaServerPipe exponen una tubería de entrada para procesar las solicitudes de
conexión y negociar los parámetros de comunicación. JxtaSocket y JxtaBiDiPipe, por otro lado, obligan a
las respectivas tuberías privadas ser independientes de la solicitud de conexión de la tubería.
ADVERTISEMENTS (ANUNCIOS)
Todos los recursos de la red JXTA - como iguales, grupos de iguales, las tuberías y los servicios - son
representados como anuncios. Los anuncios son un lenguaje neutral de estructuras de meta datos
representado como documentos XML. Los protocolos JXTA usan anuncios para describir y publicar la
existencia de recursos de un igual. Los iguales descubren recursos mediante la búsqueda se sus
correspondientes anuncios y pueden guardar en cache cualquier anuncio local descubierto.
Cada anuncio es publicado con un tiempo de vida que especifica la disponibilidad de sus recursos
asociados. El tiempo de vida permite la supresión de los recursos obsoletos sin la necesidad de un
control centralizado. Un anuncio puede ser publicado de nuevo (antes de que el anuncio original
expire) para extender la vida útil de un recurso.
Describen los recursos del igual. El principal uso de estos anuncios es para mantener información
específica sobre el igual, como su nombre, el ID del igual, puntos finales disponibles, y cualquier
atributo en tiempo de ejecución que servicios de grupo individuales quieran publicar (por ejemplo,
ser un igual rendezvous para el grupo).
Describe los recursos de un grupo específico de iguales, como son el nombre, el ID del grupo,
descripción, especificación, y parámetros de servicio.
Describe un canal de comunicación de tubería, y es usado por el servicio de tubería para crear las
tuberias de punto final asociadas de entrada y salida. Cada anuncio de tubería contiene un ID
simbólico opcional, un tipo de tubería (punto a punto, propagada, segura, etc.), y un único ID de
tubería.
Describe un igual que actúa como un igual rendezvous para un grupo de iguales dado.
Cada anuncio es representado mediante un documento XML. Los anuncios están compuestos de una
serie de elementos ordenados jerárquicamente. Cada elemento puede contener sus datos o elementos
adicionales. Un elemento también puede tener atributos que están compuestos de pares de cadenas
nombre-valor. Un atributo es usado para almacenar meta-datos, que ayuda a describir los datos en el
elemento.
Un ejemplo de un anuncio de tubería es incluido en la figura 5.
SEGURIDAD
Dinámicas redes P2P, como la red JXTA, necesitan soportar diferentes niveles o acceso a los recursos.
los iguales JXTA operan en un papel basado en un modelo de confianza. PENDIENTE.
IDs
Los iguales , grupos de iguales, tuberías y otros recursos de JXTA necesitan ser únicamente
identificables. Un ID de JXTA únicamente identifica un recurso y sirve como una forma canónica de
referirse a ese recurso. Actualmente, existen seis tipos de entidades de JXTA que tienen tipos de ID de
JXTA definidos: los iguales, los grupos de iguales, las tuberías, el contenido, las clases de módulo, y las
especificaciones de módulo.
Los URNs son utilizados para expresar IDs de JXTA. URNs son una forma de URI que "... están
destinadas a servir como identificadores de recursos persistente, independiente de la ubicación". Como
otras formas de URI, los IDs de JXTA son representados como texto.
Un ejemplo de ID de igual de JXTA es:
Todo ID de JXTA tiene un formato de ID. El formato describe como el ID fue generado y como este
puede ser manipulado por los programas. Todo ID indica su formato inmediatamente después de el
prefijo urn:jxta:. Existen dos formatos comunes de ID de JXTA, uuid y jxta, aunque existen otros. El
formato jxta es utilizado por los identificadores comunes especiales tales como los IDs del Grupo de
Iguales Mundial (World Peer Group) y el Grupo de Iguales de Red (Network Peer Group). El formato
uuid es utilizado por la mayoría de los otros IDs. El formato uuid provee generación aleatoria de IDs
únicos y se basa en DCE GUID/UUID. La porción de un ID de JXTA que sigue el formato de ID es
especifica para cada formato de ID y es a menudo opacado - usted no quiere ser capaz de decodificar
directamente la URI.
ORGANIZACION DE LA RED
La red JXTA es una red Ad-Hoc, multi-hop(multi-salto, De nodo a nodo, hacia las
estaciones de base), y adaptativa, compuesta de iguales conectados. Las conexiones
en la red pueden ser temporales(transitorias) y, como resultado, el enrutamiento de
mensajes entre iguales es no determinista. Los iguales pueden unirse o dejar la red en
cualquier momento; lo que resulta siempre en un cambio de información de
enrutamiento.
El único aspecto común que varias aplicaciones JXTA comparten es que ellas se
comunican utilizando los protocolos de JXTA. La organización de la red no es asignada
por mandato del framework de JXTA, pero cuatro clases de iguales se utilizan en la
práctica típicamente:
Un Minimal edge peer (igual de borde mínimo) puede enviar y recibir mensajes, pero
no guardar anuncios en cache o enrutar mensajes para otros iguales. Iguales en
dispositivos con recursos limitados (ejemplo, una PDA o un teléfono celular)
probablemente serían minimal edge peers.
• Rendezvous peer
• Relay peer
CAPITULO 6: LO BASICO