Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de...

64
Sistemas Peer-To-Peer Sistemas Peer-To-Peer La plataforma JXTA La plataforma JXTA

Transcript of Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de...

Page 1: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Sistemas Peer-To-PeerSistemas Peer-To-PeerLa plataforma JXTALa plataforma JXTA

Page 2: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

IntroducciónIntroducción

Peer-To-Peer (P2P):Peer-To-Peer (P2P): Compartición de Compartición de recursos informáticos e información recursos informáticos e información mediante intercambio directo.mediante intercambio directo.

La comunicación es simétrica.La comunicación es simétrica. Los equipos actúan como iguales (peers). Los equipos actúan como iguales (peers). Los peers cumple a la vez el papel de Los peers cumple a la vez el papel de

cliente y servidor.cliente y servidor. Alternativa a la arquitectura Alternativa a la arquitectura

cliente/servidor. cliente/servidor.

Page 3: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Modelo cliente/servidorModelo cliente/servidor

Page 4: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Modelo cliente/servidorModelo cliente/servidor

Modelo cliente/servidor:Modelo cliente/servidor: Un servidor ofrece Un servidor ofrece servicio a muchas máquinas cliente.servicio a muchas máquinas cliente.

Gran extensión en las aplicaciones Internet: FTP, Gran extensión en las aplicaciones Internet: FTP, www, correo electrónico.www, correo electrónico.

Ventajas: Ventajas: Casi toda el procesamiento se realiza en el servidor. Casi toda el procesamiento se realiza en el servidor. Clientes muy simples. Clientes pasivos.Clientes muy simples. Clientes pasivos.

Inconvenientes: Inconvenientes: Conforme el número de clientes crece, la carga y la Conforme el número de clientes crece, la carga y la

demanda de ancho de banda del servidor se incrementa demanda de ancho de banda del servidor se incrementa impidiendo a este servir más peticiones.impidiendo a este servir más peticiones.

Direcciones IP dinámicas: impiden ofrecer servicios a Direcciones IP dinámicas: impiden ofrecer servicios a otros usuarios.otros usuarios.

Redes privadas: los sistemas de seguridad (firewalls, Redes privadas: los sistemas de seguridad (firewalls, NAT) impiden las conexiones externas. NAT) impiden las conexiones externas.

Page 5: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peer-To-PeerPeer-To-Peer

Cualquier equipo puede ofrecer un servicio Cualquier equipo puede ofrecer un servicio a otro.a otro.

Organización totalmente distribuida: Organización totalmente distribuida: No dependen de un servidor centralizado para No dependen de un servidor centralizado para

ofrecer acceso a los servicios.ofrecer acceso a los servicios. Funcionan de forma independiente al Funcionan de forma independiente al

sistema de nombrado de dominio (DNS).sistema de nombrado de dominio (DNS). Distribuyen la responsabilidad de ofrecer Distribuyen la responsabilidad de ofrecer

servicios entre todos los peers de la red:servicios entre todos los peers de la red: Elimina las indisponibilidades de servicios Elimina las indisponibilidades de servicios

debidas a caídas de los servidores.debidas a caídas de los servidores. Mejora la escalabilidad. Mejora la escalabilidad.

Page 6: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peer-To-PeerPeer-To-Peer

Ventajas:Ventajas: Escalabilidad.Escalabilidad. Agregación de información.Agregación de información. Disponibilidad.Disponibilidad. Tolerancia a fallos.Tolerancia a fallos.

Inconvenientes:Inconvenientes: Redundancia.Redundancia. Las peticiones de servicio no son deterministas: Las peticiones de servicio no son deterministas:

Dos clientes que soliciten el mismo recurso pueden Dos clientes que soliciten el mismo recurso pueden conectarse con máquinas completamente diferentes, a través conectarse con máquinas completamente diferentes, a través de rutas diferentes, y posiblemente con resultados diferentes.de rutas diferentes, y posiblemente con resultados diferentes.

Los servicios no siempre están disponibles.Los servicios no siempre están disponibles. Posibles soluciones:Posibles soluciones:

Acceso redundante a los recursos: Acceso redundante a los recursos: El servicio está disponible mientras exista un peer conectado.El servicio está disponible mientras exista un peer conectado.

Page 7: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peer-To-PeerPeer-To-Peer

Page 8: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Peers.Elementos de P2P. Peers.

Peer:Peer: Cualquier entidad capaz de realizar una tarea Cualquier entidad capaz de realizar una tarea útil y comunicar el resultado de dicha tarea a otra útil y comunicar el resultado de dicha tarea a otra entidad de la red, bien directa o indirectamente.entidad de la red, bien directa o indirectamente.

Puede desde ser una aplicación en una sola Puede desde ser una aplicación en una sola máquina, una aplicación distribuida en varias máquina, una aplicación distribuida en varias máquinas o cualquier dispositivo.máquinas o cualquier dispositivo.

Tipos de peers:Tipos de peers: Peers simples:Peers simples: S Sirven a un solo usuario final, permitiendo irven a un solo usuario final, permitiendo

a este usuario ofrecer y utilizar servicios de otros peers. a este usuario ofrecer y utilizar servicios de otros peers. Peers rendezvous:Peers rendezvous: P Permite descubrir a otros peers o ermite descubrir a otros peers o

recursos. Responden directamente o propagan la consulta.recursos. Responden directamente o propagan la consulta. Peers enrutadores:Peers enrutadores: P Permite la comunicación entre peers ermite la comunicación entre peers

que no tienen conectividad física directa (firewalls, NAT’s).que no tienen conectividad física directa (firewalls, NAT’s).

Page 9: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Peer Elementos de P2P. Peer groups.groups.

Peer group:Peer group: Conjunto de peers que comparten Conjunto de peers que comparten un interés u objetivo común definido por todos los un interés u objetivo común definido por todos los miembros del grupo.miembros del grupo.

Objetivos de los peer groups:Objetivos de los peer groups: Crear entornos seguros.Crear entornos seguros.

Establecer políticas de seguridad (login/password, PKI, etc).Establecer políticas de seguridad (login/password, PKI, etc). Publicar contenidos protegidos de acceso restringido.Publicar contenidos protegidos de acceso restringido.

Crear entornos limitados.Crear entornos limitados. Crear dominios de especialización (divisiones lógicas).Crear dominios de especialización (divisiones lógicas). Limitar las búsquedas de recursos.Limitar las búsquedas de recursos.

Crear entornos de monitorización.Crear entornos de monitorización. Monitorizar el estado de un grupo de equipos.Monitorizar el estado de un grupo de equipos.

Page 10: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Transporte Elementos de P2P. Transporte de red.de red.

Transporte de red:Transporte de red: Capa de procesamiento Capa de procesamiento responsable de la transmisión de los datos. responsable de la transmisión de los datos.

Puede ser un protocolo de bajo nivel, como UDP o Puede ser un protocolo de bajo nivel, como UDP o TCP, o un protocolo de alto nivel, como HTTP o TCP, o un protocolo de alto nivel, como HTTP o SMTP. SMTP.

Puede dividirse en tres componentes:Puede dividirse en tres componentes: Extremos:Extremos: El origen inicial o destino final de cualquier El origen inicial o destino final de cualquier

fragmento de datos transmitido en la red. Un extremo fragmento de datos transmitido en la red. Un extremo corresponde a las interfaces de red utilizadas para enviar corresponde a las interfaces de red utilizadas para enviar y recibir datos.y recibir datos.

Tuberías:Tuberías: Canales virtuales de comunicación asíncronos Canales virtuales de comunicación asíncronos y unidireccionales que conectan uno o más extremos. y unidireccionales que conectan uno o más extremos.

Mensajes: Mensajes: Contenedores de datos transmitidos a través Contenedores de datos transmitidos a través de una tubería desde un extremo a otro.de una tubería desde un extremo a otro.

Page 11: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Elementos de P2P. Servicios.Servicios.

Servicios: Servicios: funciones y capacidades que los peers funciones y capacidades que los peers ofrecen al resto de la red.ofrecen al resto de la red.

Permiten a los dispositivos el acceso a los recursos.Permiten a los dispositivos el acceso a los recursos. Pueden dividirse en dos categorías:Pueden dividirse en dos categorías:

Servicios de peer.Servicios de peer. Funciones que ofrece un peer determinado de la red a otros Funciones que ofrece un peer determinado de la red a otros

peers.peers. Las capacidades de este servicio son propias del peer y sólo Las capacidades de este servicio son propias del peer y sólo

estarán disponibles mientras se encuentre conectado a la red.estarán disponibles mientras se encuentre conectado a la red. Servicios de peer group.Servicios de peer group.

Funciones que ofrece un peer group a sus miembros. Funciones que ofrece un peer group a sus miembros. Pueden ser suministrados por varios miembros: acceso Pueden ser suministrados por varios miembros: acceso

redundante. El servicio se encuentra disponible mientras redundante. El servicio se encuentra disponible mientras exista algún miembro del peer group conectado.exista algún miembro del peer group conectado.

Page 12: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Elementos de P2P. Anuncios.Anuncios.

Anuncio:Anuncio: Representación estructurada Representación estructurada de una entidad, servicio o recurso de una entidad, servicio o recurso publicado por un peer o un peer group publicado por un peer o un peer group como parte de una red P2P.como parte de una red P2P.

Todo recurso se identifica mediante Todo recurso se identifica mediante anuncios: anuncios: Peers, peer groups, tuberías, extremos, Peers, peer groups, tuberías, extremos,

servicios y contenidos. servicios y contenidos.

Page 13: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Elementos de P2P. Protocolos.Protocolos.

Protocolo:Protocolo: Método de estructurar el intercambio de información entre dos o más participantes mediante reglas previamente acordadas por todas la partes.

En P2P, se definen protocolos para: Encontrar peers en la red. Averiguar los servicios ofrecidos por un peer. Obtener información de estado de un peer. Invocar un servicio de un peer. Crear, unirse o dejar un peer group. Crear conexiones con otros peers. Enviar mensajes de ruteo a otros peers.

La definición de los protocolos se reduce a la definición del intercambio de anuncios correspondiente.

Page 14: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos de P2P. Elementos de P2P. Nombrado.Nombrado.

Todo recurso debe identificarse de forma única: Peers, peer groups, tuberías, contenidos.

Una red P2P pura debe utilizar un esquema de nombrado independiente del transporte de red y del sistema operativo. Independiente de la localización.

Page 15: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Mecanismos de P2P. Mecanismos de descubrimientodescubrimiento

Descubrimiento: Proceso de localización de los recursos de la red.

El descubrimiento de recursos consiste en la búsqueda de los anuncios correspondientes.

Tipos de descubrimiento: Pasivo: Mantener en una caché los anuncios

descubiertos anteriormente en la que buscarán la información de los recursos de la red.

Directo: Utiliza los mecanismos de broadcast o multicast para encontrar peers en la misma LAN.

Indirecto: Se consulta a peers intermediarios (rendezvous) sobre los anuncios.

Page 16: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Mecanismos de P2P. Mecanismos de descubrimientodescubrimiento

Descubrimiento pasivoDescubrimiento pasivo

Page 17: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Mecanismos de P2P. Mecanismos de descubrimientodescubrimiento

Descubrimiento directoDescubrimiento directo

Page 18: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Mecanismos de P2P. Mecanismos de descubrimientodescubrimiento

Descubrimiento indirectoDescubrimiento indirecto

Page 19: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Los firewalls y NAT presentes en las redes Los firewalls y NAT presentes en las redes corporativas representan un serio obstáculo para corporativas representan un serio obstáculo para la comunicación P2P.la comunicación P2P.

Firewalls:Firewalls: Son utilizados para proteger las redes Son utilizados para proteger las redes privadas contra conexiones no autorizadas privadas contra conexiones no autorizadas provenientes del exterior o del interior de la red.provenientes del exterior o del interior de la red.

Utilizan filtrado de IP’s y protocolos.Utilizan filtrado de IP’s y protocolos. Bloquean conexiones entrantes: Bloquean conexiones entrantes:

Un peer externo no puede conectarse a uno interno.Un peer externo no puede conectarse a uno interno. Los peers internos suelen estar restringidos a Los peers internos suelen estar restringidos a

utilizar sólo ciertos protocolos: SMTP, HTTP.utilizar sólo ciertos protocolos: SMTP, HTTP.

Page 20: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Page 21: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Network Address Translation:Network Address Translation: Técnica Técnica utilizada para mapear un conjunto de direcciones utilizada para mapear un conjunto de direcciones IP privadas dentro de una red interna a un IP privadas dentro de una red interna a un conjunto de direcciones IP externas de una red conjunto de direcciones IP externas de una red pública.pública.

Se utilizan por muchas razones:Se utilizan por muchas razones: Elimina la necesidad de una dirección IP pública para Elimina la necesidad de una dirección IP pública para

cada equipo dentro de una red privada.cada equipo dentro de una red privada. Permite proteger la red al existir un único punto de Permite proteger la red al existir un único punto de

entrada.entrada. Sólo autoriza las conexiones entrantes que fueron Sólo autoriza las conexiones entrantes que fueron

originadas dentro de la red. originadas dentro de la red.

Page 22: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Page 23: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Solución: Solución: La única herramienta de que disponen La única herramienta de que disponen

los peers para atravesar firewalls/NAT los peers para atravesar firewalls/NAT es su capacidad para crear conexiones es su capacidad para crear conexiones de salida hacia los equipos externos.de salida hacia los equipos externos.

Se pueden usar protocolos permitidos Se pueden usar protocolos permitidos por el firewall para realizar mediante por el firewall para realizar mediante túnel conexiones al exterior. túnel conexiones al exterior.

Page 24: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

P2P. Retos para la P2P. Retos para la comunicacióncomunicación

Page 25: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Aplicaciones P2P.Aplicaciones P2P.

Compartición de ficheros: Kazaa, Emule.

Monitorización de datos Mensajería instantánea: ICQ. Búsqueda en la web. Motores de

búsqueda. Computación distribuida.

Page 26: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Cliente servidor vs. P2PCliente servidor vs. P2P

Cliente/Cliente/servidorservidor

P2PP2P

Tráfico de redTráfico de red Asimétrico, tráfico Asimétrico, tráfico de subida bajo de subida bajo aceptable.aceptable.

Simétrico.Simétrico.

ContenidoContenido Centralizado en el Centralizado en el servidor.servidor.

Distribuido entre Distribuido entre los peers.los peers.

DireccionamientoDireccionamiento Estático, utilizando Estático, utilizando DNS, NAT, puertos DNS, NAT, puertos bien conocidos bien conocidos (80).(80).

Dinámico, registros Dinámico, registros en tiempo real. en tiempo real. Tratamiento de Tratamiento de NAT/firewall.NAT/firewall.

RendimientoRendimiento Decrece con el Decrece con el número de número de usuarios.usuarios.

Aumenta con el Aumenta con el número de número de usuarios.usuarios.

Page 27: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

¿Qué es JXTA?¿Qué es JXTA?

JXTA: Plataforma abierta de programación para computación P2P formada por: Conjunto de protocolos de comunicación (basados en

XML). API de programación. Red virtual.

JXTA=juxtapose (alternativa a cliente/servidor) Objetivos de JXTA:

Interoperabilidad: Entre diferentes sistemas P2P y comunidades.

Independencia de la plataforma: Lenguajes de programación (C, C++, Java), sistemas operativos (UNIX, Windows) y entornos de red (TCP, HTTP, SMTP, Bluetooth).

Ubicuidad: Todo dispositivo que emita una señal puede conectarse.

Page 28: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA. Arquitectura software.JXTA. Arquitectura software.

La arquitectura software del proyecto JXTA está La arquitectura software del proyecto JXTA está dividida en 3 capas:dividida en 3 capas: Capa del núcleo (core):

Responsable de gestionar los protocolos JXTA mediante los cuáles los peers pueden comunicarse.

Encapsula las funciones básicas de P2P. Capa de servicio:

Servicios de red que no resultan absolutamente necesarios para P2P, pero que son comúnmente utilizados o deseables en un entorno de este tipo.

Ej: búsqueda e indexación, directorio, sistemas de Ej: búsqueda e indexación, directorio, sistemas de almacenamiento, compartición de ficheros, sistemas de almacenamiento, compartición de ficheros, sistemas de ficheros distribuidos, etc.ficheros distribuidos, etc.

Capa de aplicación: En esta capa se encuentran las aplicaciones P2P. Ej. Compartición de ficheros, chat, grid computing, etc.

Page 29: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA. Arquitectura software.JXTA. Arquitectura software.

Page 30: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

La red virtual JXTALa red virtual JXTA

Red adaptativa, ad-hoc y multisalto.Red adaptativa, ad-hoc y multisalto. Gran frecuencia de cambio en la topología: Gran frecuencia de cambio en la topología:

las conexiones son temporales.las conexiones son temporales. Rutas no deterministas.Rutas no deterministas. Red de superposiciónRed de superposición (overlay network): (overlay network):

red virtual por encima de la red física.red virtual por encima de la red física. La conectividad en la red no depende de la La conectividad en la red no depende de la

localización física. localización física.

Page 31: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

La red virtual JXTALa red virtual JXTA

Page 32: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos clave de JXTAElementos clave de JXTA

PeersPeers Cualquier dispositivo conectado a la red que Cualquier dispositivo conectado a la red que

implementa uno o más protocolos JXTA. implementa uno o más protocolos JXTA. Peer Groups

Colección de peers que acuerdan un conjunto común de reglas para publicar, compartir y acceder a los recursos.

Tuberías Canales de comunicación virtuales

unidireccionales y asíncronos.

Page 33: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Elementos clave de JXTAElementos clave de JXTA

Mensajes Empaqueta la información transmitida a través

de las tuberías. Pueden ser binarios o XML.

Anuncios Representación de los recursos de la red. Basados en XML.

Codats (código y datos) Cualquier tipo de contenido: código, datos,

aplicaciones, etc.

Page 34: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Bloques básicos de la red Bloques básicos de la red virtualvirtual

Direccionamiento lógico uniforme (Peer IDs) Dominios configurables dinámicamente (peer

groups). Representación uniforme de recursos (anuncios) Mecanismo de resolución universal (resolver) Canales de comunicación virtuales (tuberías) Seguridad Monitorización Contenidos (código y datos)

Page 35: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Direccionamiento lógico uniforme

Un peer se identifica mediante: Un Peer ID único. Múltiples direcciones de extremo peer:

TCP/IP (tcp://129.127.29.65:9700) HTTP (http://JxtaHttpClientuuid-….) Etc…

Permite el direccionamiento independientemente de la localización física (firewalls y NAT’s) en la red.

Page 36: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers JXTAPeers JXTA

La red JXTA está compuesta de peers conectados, que pueden unirse o dejar la red en cualquier momento.

Tipos de peers: Peers mínimos.

Pueden enviar y recibir mensajes. No almacenan anuncios ni enrutan mensajes. Dispositivos pequeños (móviles, PDA’s, game boy).

Peers simples. Como los mínimos, pero pueden almacenar anuncios. No enrutan mensajes.

Peers rendezvous. Peers relays.

Page 37: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers rendezvousPeers rendezvous

Como los peers simples, pero pueden reenviar peticiones de descubrimiento para permitir a otros peers el descubrimiento de recursos.

Cualquier peer simple puede convertirse en rendezvous.

Cualquier peer puede utilizar uno o más rendezvous.

Cada rendezvous mantiene un lista con: El resto de rendezvous que conoce. Los peers que han contratado sus servicios.

Almacenan un gran número de anuncios.

Page 38: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers rendezvous (cont.)Peers rendezvous (cont.)

Los peers envían peticiones de búsqueda a los rendezvous. Si no pueden satisfacerlas las reenvían a otros rendezvous.

El proceso continúa hasta que un peer tiene el anuncio buscado o la petición muere (TTL en el mensaje).

Búcles de red: se evitan manteniendo la lista de los peers que atraviesa el mensaje.

Page 39: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers rendezvous (cont.)Peers rendezvous (cont.)

Page 40: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers relaysPeers relays

Peers especiales utilizados para enrutar mensajes a otros peers dentro de la red física. Soportan transferencia de mensajes multisalto. Los mensajes JXTA contienen información de auto-

enrutamiento (enrutamiento basado en el origen). Los relays mantienen información dinámica de

enrutamiento. Almacenan mensajes hacia peers temporalmente no

disponibles o no alcanzables. Cualquier peer puede convertirse en un relay. Utilizados principalmente para atravesar firewalls

y NATs. Permiten el descubrimiento dinámico de rutas.

Page 41: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peers relaysPeers relays

Page 42: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peer groupsPeer groups

Definidos por el usuario sin necesidad de administradores de red.

Identificados mediante un Peer group ID.

Permiten la auto-organización de los peers (dinámicamente).

Agrupan un conjunto de servicios: servicios de peer group.

Política de pertenencia configurable.

Page 43: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Peer groupsPeer groups

Page 44: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

¿Por qué los peer groups?¿Por qué los peer groups?

Crear dominios de seguridad y protección. Limitar las operaciones de los peers

(descubrimiento, búsqueda, comunicación).

Proporcionar una identidad de grupo (grupo que comparte intereses comunes).

Monitorización.

Page 45: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Servicios básicos de peer Servicios básicos de peer group en JXTAgroup en JXTA

Servicios de los peer groups:Servicios de los peer groups: Servicio de descubrimiento.Servicio de descubrimiento. Servicio de pertenencia.Servicio de pertenencia. Servicio de acceso.Servicio de acceso. Servicio de tubería.Servicio de tubería. Servicio de resolución (resolver). Servicio de resolución (resolver). Servicio de monitorización.Servicio de monitorización.

Nota: Un peer group es libre de implementar sólo los servicios que considere necesarios.

Page 46: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

AnunciosAnuncios

Todo recurso de una red JXTA es representado mediante un anuncio. Peers. Peer groups. Tuberías. Extremos. Modulos. Contenidos.

Page 47: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Anuncio de peerAnuncio de peer

<?xml version="1.0"?><!DOCTYPE jxta:PA><jxta:PA xmlns:jxta="http://jxta.org">

<PID>urn:jxta:uuid-

59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903</PID><GID>

urn:jxta:jxta-NetGroup</GID><Name>

bill</Name>

Page 48: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Anuncio de peer (cont.)Anuncio de peer (cont.)

<Svc><Parm><Addr>tcp://129.144.34.14:9701/</Addr><Addr>jxtatls://uuid-

59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903/TlsTransport/jxta-WorldGroup</Addr><Addr>http://JxtaHttpClientuuid-

59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903/</Addr></Parm>

</Svc></jxta:PA>

Page 49: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Almacenamiento de Almacenamiento de anunciosanuncios

Los peers pueden almacenar anuncios (no es obligado).

Los peers publican y descubren anuncios de los recursos.

Cada anuncio se publica con un tiempo de vida. Fecha de expiración relativa. Se eliminan del sistema cuando expiran.

Los anuncios pueden ser republicados.

Page 50: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Mecanismo universal de Mecanismo universal de resoluciónresolución

Todas las operaciones de resolución (binding) propias de los SSDD se implementan mediante la búsqueda de anuncios.

Ejemplos: DNS->Búsqueda de anuncios de peer o de peer group. Localización de servicios -> búsqueda de anuncios de

módulos. Servicios de directorios -> búsqueda de anuncios de peer. Resolución de sockets –> búsqueda de anuncios de

tuberías. Sistemas de ficheros distribuidos -> búsqueda de

anuncios de contenidos. ¡No se requiere centralización!

Page 51: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Descubrimiento y búsqueda de Descubrimiento y búsqueda de anuncios.anuncios.

Descubrimiento local. Multicast TCP/IP multicast (limitado a la red local).

Peers rendezvous. Las peticiones de descubrimiento se reenvían entre los

rendezvous. Cada peer tiene su propio conjunto de rendezvous.

Sistemas de índices distribuidos. Esquemas de CAN y Chord. Indexan los recursos de la red asociando los peers más

capacitados para responder a las consultas. Evitan obtener información inconsistente de los

recursos.

Page 52: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Tuberías: Canales de Tuberías: Canales de comunicación virtuales.comunicación virtuales.

Canal de comunicación no físico entre dos o más peers.

Identificado mediante un pipe ID único. Se anuncia mediante un anuncio de tubería. Flujo de “datos tipados” (esquema XML). Una tubería está formada por dos extremos:

Tubería de entrada (extremo receptor). Tubería de salida (extremo emisor).

Permiten el enlace dinámico de dos peers.

Page 53: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Tuberías: Canales de Tuberías: Canales de comunicación virtuales.comunicación virtuales.

Existen dos servicios de tubería en el núcleo JXTA: Tuberías unidireccionales, asícronas, punto a

punto (1-1). Tuberías de propagación: propagan datos en un

peer group (1-N). Las tuberías seguras son una variante segura

de las tuberías punto a punto (utilizan TLS). Se han implementado otros tipos de

tuberías: Tuberías bidireccionales. Tuberías confiables y tuberías bidireccionales

confiables.

Page 54: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Tuberías: Canales de Tuberías: Canales de comunicación virtuales.comunicación virtuales.

Page 55: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Modelo de comunicación Modelo de comunicación mediante tuberías.mediante tuberías.

Conectan servicios independientemente de su localización física.

Enlace dinámico (al crear la tubería o al enviar un mensaje).

Asíncronas (modo conexión y desconexión).

Aumentan la disponibilidad de servicios (tolerancia a fallos: reconexión transparente de extremos).

Encadenan múltiples servicios para formar un servicio más complejo.

Page 56: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Módulos JXTAMódulos JXTA

Modulo = Representación de un servicio independiente de la plataforma.

Descripción de servicios (WSDL, SOAP, RMI, ORB, etc).

El código del servicio puede ser: una clase Java, una librería dinámica DLL, un conjunto de mensajes XML o un script.

Unión a un grupo: necesita nuevos servicios.Unión a un grupo: necesita nuevos servicios. Anuncios de módulo:

Module class: anucia la existencia de un servicio. Module Specification: anuncia la forma de acceder al

servicio (API, messages). Module Implementation: anuncia una implementación

específica de la pltaforma.

Page 57: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Pila de protocolos JXTAPila de protocolos JXTA

Page 58: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Protocolos de JXTAProtocolos de JXTA

JXTA define 6 protocolos: Peer Discovery Protocol.

Utilizado por los peers para anunciar sus propios recursos y descubrir recursos publicados por otros peers

Peer Information Protocol. Permite a los peers obtener información del

estado de otros peers (tiempo, estado, tráfico, etc).

Pipe Binding Protocol. Se utiliza para establecer canales de

comunicación virtuales o tuberías entre uno o más peers.

Page 59: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

Protocolos de JXTA (cont.)Protocolos de JXTA (cont.)

Peer Resolver Protocol. A través de este protocolo los peers pueden

enviar consultas genéricas a uno o más peers y recibir una respuestas a dicha consulta.

Endpoint Routing Protocol. Utilizado para encontrar rutas a otros peers. La

información de enrutamiento contiene una secuencia ordenada de relays.

Rendezvous Protocol. Utilizado para propagar mensajes dentro de un

peer group.

Page 60: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

SeguridadSeguridad

Las redes P2P tales como JXTA necesitan soportar diversos niveles de acceso a los recursos.

Los peers JXTA funcionan con un modelo de confianza basado en roles en el que cada peer actúa bajo la autoridad otorgada por otro peer de confianza.

Requisitos de seguridad: Confidencialidad. Autenticación. Autorización. Integridad. Refutabilidad.

Page 61: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA vs. JiniJXTA vs. Jini

Jini Es una tecnología para conectar servicios

distribuidos dentro de una red Java. Utiliza un gestor de localización de recursos

centralizado. JXTA

Conecta servicios distribuidos de forma P2P. Utiliza un modelo de datos débilmente

acoplado (XML). Es un conjunto de protocolos. Puede implementarse en cualquier lenguaje.

Page 62: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA vs. UDDIJXTA vs. UDDI

UDDI Es un registro centralizado que permite la comunicación

B2B. Basado en XML. Los clientes de UDDI l UDDI clients become privy to a system to search and share business opportunities

JXTA Las aplicaciones y servicios se auto-organizan para crear

peer groups de forma totalmente descentralizada. No es necesario un registro central. No es necesaria la autenticación. Sistema débilmente organizado.

Page 63: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA vs. SOAPJXTA vs. SOAP

SOAP (Simple Object Access Protocol)SOAP (Simple Object Access Protocol) Permite el acceso remoto a servicios. Utiliza XML

JXTA JXTA Además de ofrecer acceso remoto a servicios,

ofrece especificaciones de protocolo adicionales y tuberías para la comunicación segura y flexible.

Los mensajes SOAP pueden enviarse mediante tuberías JXTA.

La comunidad JXTA está implementando una capa SOAP por encima de JXTA.

Page 64: Sistemas Peer-To-Peer La plataforma JXTA. Introducción Peer-To-Peer (P2P): Compartición de recursos informáticos e información mediante intercambio directo.

JXTA vs. Otros estándares JXTA vs. Otros estándares P2PP2P

JXTA especifica protocolos. No APIs. La plataforma JXTA ofrece un entorno

descentralizado para servicios P2P. Los servicios JXTA pueden utilizarse

con otros servicios no JXTA para crear nuevas aplicaciones.

Gnutella SETI@Home