Redes P2P Dr. Víctor J. Sosa-Sosa

Slides:



Advertisements
Presentaciones similares
Web Services.
Advertisements

Intranets P. Reyes / Octubre 2004.
Internet y tecnologías web
Servicios Web XML 03 de Junio de 2004 Fernando Alonso Blázquez.
Sistemas Peer-To-Peer La plataforma JXTA
TEMA1. Servicios de Red e Internet. Las Redes de Ordenadores.
ADELA TORRES JONATHAN BEJARANO
TEMA: SMTP – POP3 - IMAP.
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament dArquitectura de Computadors (Seminaris de CASO) Autors P2P and Promise of Internet Equality JOSE.
Universidad Nacional Autónoma de Honduras
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
INTRODUCCIÓN ESTADO DE LA TÉCNICA PROCESAMIENTO DISTRIBUIDO CON MPI PROCESAMIETNO DISTRIBUIDO DE IMÁGENES GENÉRICO CON VTK PROCESAMIENTO DISTRIBUIDO DE.
Lenguajes Servicios Web
Redes y Comunicaciones
Servicios Web.
SISTEMAS PEER TO PEER Modelo cliente / servidor Peer-to-peer Elementos de P2P Mecanismos de descubrimiento Aplicación P2P Servicio a maquina cliente Extensiones.
Transferencia o distribución de archivos entre iguales (peer-to-peer).
Gabriel Montañés León. La principal idea de la arquitectura Peer-to-Peer (Par a par, P2P) es determinar la base y reglas necesarias para compartir recursos.
Ingeniería en Automática Industrial Software para Aplicaciones Industriales I Ingeniería en Automática Industrial Software para Aplicaciones Industriales.
Introducción a OSA (Open Service Access)
Características generales de un servicio Web.
TRANSFERENCIA O DISTRIBUCIÓN DE ARCHIVOS ENTRE IGUALES (PEER-TO-PEER).
P2P (peer-to-peer) Migule Ángel Azorín
Transferencia o distribución de archivos entre iguales (peer-to-peer)
Servidores de nombres de dominio (DNS):
Universidad Centroamericana
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Capítulo 1: Introducción a redes conmutadas
FIREWALL.
TRABAJO PRÁCTICO 6 Manuela Cocino y Malén Barrales San Simón NTICx 2014.
Computación Ubicua Una nueva técnica de computación distribuida Prof. Yudith Cardinale Sep - Dic 2006 Universidad Simón Bolívar Departamento de Computación.
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.
Juan Andrada Romero Jose Domingo López López.  Introducción  Conceptos  Arquitectura JXTA  Protocolos  Demostración  Alternativas  Conclusiones.
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
Ing. Karen Torrealba de Oblitas
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Existen dos tipos básicos de redes VPN:
Correo electrónico Internet
Hecho por: Celeste Amalvy Y Victoria D´Arrisso. Funcionalidades. Localizar un ordenador de forma inequívoca. Realizar una conexión con otro ordenador.
Funcionalidad de la capa de Aplicación y la capa de Transporte. Capas superiores.
Red de comunicación Conjunto de equipos y dispositivos periféricos conectados entre sí. Algunas características: La red más pequeña posible es entre 2.
Servidores Conceptos Generales.
Trabajo Practico nº 6 Alumnas: Fiorella Cuervo Reist Agustina.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Sustentante: Francis Ariel Jiménez Zapata Matricula: Grupo: 2 Profesora: Jose Doñe Asignatura: Sistema Operativo 2.
2: Capa Aplicación 1 Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
Escuela Normal “Profr. Darío Rodríguez Cruz”
Departamento de Informática Universidad de Rancagua
Alumnas: Mercedes Bosio Martina Moure. Protocolo de comunicación Permitir localizar un ordenador de forma inequívoca Permitir realizar una conexión con.
 Claudia Jordan Idrovo.  Son los puntos de enganche para cada conexión de red que realizamos. El protocolo TCP (el utilizado en internet) identifica.
S ERVICIOS DE RED E I NTERNET T EMA 5 : I NSTALACIÓN Y ADMINISTRACIÓN DE SERVICIOS DE TRANSFERENCIA DE FICHEROS ” Nombre: Adrián de la Torre López.
TOPOLOGÍAS DE RED.
2: Capa Aplicación Capa Aplicación: P2P ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto Computer.
Michael Ángelo De Lancer Franco  Son la fundación de una red de trabajo en un ambiente de computadoras. Generalmente los servicios de red.
Punto 4 – Configuración de un Servidor Web Juan Luis Cano.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Ing. Elizabeth Guerrero V.
BASE DE DATOS DISTRIBUIDAS
¿QUE ES INTERNET? La Internet es una red de redes. Actualmente conecta miles de redes para permitir compartir información y recursos a nivel mundial. Con.
Protocolo de comunicación: serie de normas que deben aportar determinadas funciones ALGUNAS FUNCIONES LOCALIZAR un ordenador de forma INEQUIVOCA. INTERCAMBIAR.
Protocolos de Enrutamiento Multicast
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
 Los protocolos de enrutamiento proporcionan mecanismos distintos para elaborar y mantener las tablas de enrutamiento de los diferentes routers de la.
Conociendo el modelo Cliente-Servidor
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
{ Topología de Red Yaritza Ortega Astrid Zúñiga Vishal Patel.
Protocolos P2P open source..  Conjunto de protocolos open source para redes P2P.  Basado en XML.  Orientado a los mensajes.
Transcripción de la presentación:

Redes P2P Dr. Víctor J. Sosa-Sosa Laboratorio de Tecnologías de Información CINVESTAV - Tamaulipas e-mail : vjsosa@tamps.cinvestav.mx tel : 834.3166600 Ext 1015

Contenido ¿Qué son las Redes P2P? Ventajas y Desventajas Áreas de Aplicación Arquitecturas Búsquedas y Localización Tendencias Conclusiones

¿Qué son las redes P2P En un sistema P2P los usuarios finales comparten recursos vía intercambio directo entre sus computadoras. La información se encuentra distribuida entre los nodos miembros del sistema en lugar de concentrarse en un servidor central Estrictamente un sistema P2P “puro” refiere aquel sistema totalmente distribuido, en el cual todos los nodos son completamente equivalentes en términos de funcionalidad y tareas que desempeñan. Esta definición dejaría fuera algunos sistemas actuales P2P que utilizan el término de Super Nodo.

¿Qué compartimos? Creamos redes virtuales a nivel de aplicación => Overlay Networks <= Descentralización La Infraestructura crítica de la aplicación está en posesión de muchos Contenidos Ciclos de cómputo P2P Espacio Disco Recurso de Hardware Resursos de Software Responsabilidad Ancho Banda 1001010

Ventajas y Desventajas comparado con una arquitectura C/S Escalabilidad inherente Mayor disponibilidad Auto-organización Desventajas No hay Garantías de Calidad de Servicio Propenso a un Mayor Consumo de Ancho de Banda

Áreas de Aplicación Compartir Recursos Comunicación Colaboración Archivos: Napster, Gnutella,Kazaa, FreeNet Recursos de Cómputo: SETI@home Comunicación VoIP, Chat, Video Conferencias,.. Colaboración Edición de archivos de manera compartida Foros, Mails, Calendarios, …

P2P: Áreas de Aplicación Compartir recursos Cómputo distribuido Mensajería instantanea Trabajo colaborativo mediado puro hibrido

Interés por Sistemas P2P Kazaa (Azul), eMule (Naranja) y LimeWire (Rojo). Desde 2004, Kazaa ha estado cayendo principalmente por demandas de RIAA .

Arquitecturas Los Sistemas P2P por naturaleza son Distribuidos. Por su forma de interconectarse son: No Estructurados: Más simple, forman un grafo aleatorio. Pueden o no manejar índices. Estructurados: Definen topologías (anillo, árboles binarios, toroides multidimensionales, entre otros). También conocidas como DHT (Distributed Hash Tables) Super Peers: Se eligen “Super Nodos”, mantienen índices y retransmiten las consultas Por sus forma de manejar sus directorios: Híbridos Totalmente Descentralizados (o Puros) Parcialmente Centralizados

Arquitectura: Híbrida (1) Este tipo de arquitectura normalmente se utiliza en sistemas para compartir archivos P2P que cuentan con un Servidor que sirve como directorio central y que mantiene un índice general de los metadatos de todos los archivos almacenados en la red Este Servidor mantiene también una tabla con la información de las conexiones de los usuarios, incluyendo su IP y su velocidad de conexión. Las consultas por archivos son enviadas a este Servidor, consisten en una lista de palabras. Los archivos son descargados de las máquinas Peer.

Arquitectura: Híbrida Consulta en Napster Servidor Mary ¿Dónde está “Titanic”? Juan lo tiene Descaraga “Titanic” José Juan El Servidor envía los posibles usuarios que tienen el archivo buscado

Arquitectura: Descentralizada, Pura (2) Todos los nodos en la red tienen las mismas tareas y responsabilidades. La comunicación entre los miembros es simétrica. No existe un servidor índice como directorio central de los metadatos almacenados. Cada miembro almacena los metadatos de los archivos compartidos entre ellos. No existe un coordinador central. Ejemplos: Ares Galaxy Gnutella 2 Freenet FreeServe

Arquitectura: Descentralizada, Pura Gnutella y Freenet Juan Mary Descarga “Titanic ¿Dónde está “Titanic”? Lo tiene Juan ¿Dónde está “Titanic”? Yo lo tengo Lo tiene Juan ¿Dónde está “Titanic”? José Carlos

Índice Centralizado: Ventajas y Desventajas Ubica archivos de manera rápida y eficiente Las búsquedas son exhaustivas Todos los usuarios se deben registrar para estar en la red Desventajas Vulnerable a la censura Los datos populares vienen a ser menos accesibles debido a la carga por peticiones en un servidor central. El índice podría estar sin actualizar debido a que la base de datos central se actualiza sólo en ciertos periodos.

Índice Descentralizado: Ventajas y Desventajas Escalabilidad inherente. Se evita el “problema” de tener un sólo punto de litigación. Tolerancia a fallos. Desventajas: El proceso de descubrimiento de la información es más lento. El tráfico en la red por concepto de consultas es mayor.

Arquitecturas: Parcialmente Centralizada (3) Similar a la descentralizada, sin embargo, algunos de sus nodos asumen papeles de mayor importancia, actuando, por ejemplo, como servidores (Super Nodos) de índices locales para archivos compartidos por miembros de un grupo determinado. Un servidor central registra los usuarios al sistema y facilita el proceso de descubrimiento de miembros. Por ejemplo, en Morpheus, después de que un miembro es autenticado en el servidor, el servidor le proporciona una dir. IP y un puerto (1214) de uno o más “Super Nodos” a los cuales este miembro se conectará. Ejemplos: Morpheus, KazaA

Arquitecturas: Parcialmente Centralizada Peer1: Archivo 1, Archivo 2, Archivo 3, ..… Peer2: Archivo 1, Archivo 2, Archivo 3, ..… Peer3: Archivo 1, Archivo 2, Archivo 3, ..… Super Nodo C Super Nodo B Super Nodo A Peer 2, Archivo 1 Consulta Peer 3 Get Archivo 1 Peer 2 Peer 1 Las consultas son enviadas a los Super Nodos En el caso de Morpheus devuelve el IP del Peer Los Peers se conectan directamente

Mecanismos Para Localizar y Transferir Archivos en P2P Las diversas arquitecturas definen distintos mecanismos para descubrir los archivos en una red P2P. Representan un factor importante que define la eficiencia del sistema para compartir archivos P2P Redes No Estructuradas: FreeNet Gnutella

Búsquedas en Redes No Estructuradas Primero-Amplitud y Primero-Profundidad (Inundación) Caminata aleatoria (Random Walk) Manejo de Índices Locales (nodos en cierto radio) Estrategias que explotan el comportamiento de la topología de red que sigue la ley de potencia (power law). X = Ry Considerar Reputación de los Peers Construcción de redes de capa de aplicación (overlays) en base a contenidos: Semantic Overlay Network (SON).

Localización de Archivos en FreeNet: Modo Cadena Una solicitud por un archivo puede ser retransmitida a través de diferentes nodos. Si el nodo no tiene el documento que es buscado, retransmite la solicitud a uno de sus vecinos que tenga una alta probabilidad de tenerlo. Estos mensajes forman una cadena debido a la retransmisión de la solicitud al siguiente nodo. Los mensajes caducan al cumplirse un tiempo determinado evitando cadenas muy largas. La cadena termina cuando un nodo contesta o cuando el tiempo expira.

Selección de Super Nodos Morpheus En Morpheus los peers son elegidos automáticamente para convertirse en Super Nodos si cuentan con suficiente ancho de banda y poder de procesamiento (un parámetro de configuración permite a los usuarios optar por este modo). Una vez que un peer recibe la lista de Super Nodos desde un servidor central, la comunicación con dicho servidor es mínima. La selección de Super Nodos en Morpheus utiliza algoritmos y protocolos propietarios llamados FastTrack P2P Stack licenciados por FastTrack. No se cuenta con documentación.

Selección de Super Nodos Gnutella El concepto de Super Nodo también se utiliza en Gnutella. Propone un mecanismo de selección dinámica de Super Nodo para auto-organizar la red Gnutella como una interconexión de Super Nodos y nodos Cliente. Un nodo “lento” llega a la red como nodo Cliente y trata de conectarse con un Super Nodo. En los casos donde ningún Super Nodo está disponible a aceptar esta conexión, el nodo podrá actuar como Super Nodo.

Selección de Super Nodos Gnutella (Cont..) Un nodo que tiene suficiente capacidad de CPU y ancho de banda se conectará a la red en forma de Super Nodo y establecerá conexiones de Super Nodo con otros Super Nodos. Este Super Nodo estará en un periodo de prueba. Arranca definiendo un número mínimo de clientes (Min-Clients). Si el nuevo nodo al menos recibe Min_Clients de conexiones de otros nodos durante su periodo de prueba , permanece como Super Nodo. De otra manera, se convierte en nodo Cliente y establece conexiones de tipo cliente con un Super Nodo de su área. En caso de que no existan conexiones disponibles con Super Nodos puede entrar en otro periodo de prueba.

Índice Parcialmente Centralizado: Ventajas Reduce el tiempo de localización de archivos en comparación con el sistema de índice totalmente descentralizado (como el de Gnutella y Freenet). Reduce la carga de trabajo en servidores centrales en comparación a los sistemas de índices totalmente centralizados como el de Napster.

Comparación entre Super Nodos en Morpheus y Servidores en Napster El servidor central de Napster sólo mantiene el índice de los archivos compartidos en el sistema. El servidor central no comparte archivos con otros Peers, tampoco descarga archivos desde ellos. En Morpheus y KazaA, un Super Nodo es un Peer, por tanto, comparte archivos con otros Peers. Naspter Colapsa si el servidor central falla. Si alguno o varios de los SuperNodos fallan, los Peers conectados a estos SuperNodos pueden abrir conexiones con otros SuperNodos en el sistema, por tanto, la red podrá funcionar. Si todos los SuperNodos fallan, los Peers existentes podrán tomar el papel de SuperNodos.

Redes Estructuradas: Ubicación y Ruteo Identificar y Organizar Nodos (topología). Definir sucesores y predecesores.

Redes Estructuradas: Ubicación y Ruteo Ingreso y abandono de la Red: Simultaneo…

Redes Estructuradas: Ubicación y Ruteo: Chord Utilizan un identificador de m-bits (se generan llaves e identifican nodos) 2m posibles llaves y nodos N = 2m Cada nodo puede tomar cualquier identificador [0 , 2m) sin empalmar Sea k el conjunto de identificadores de nodos ordenados El nodo k[i] es responsable de mantener todas las claves entre los valores [ k[i-1]+1, k[i] ] El nodo k[i] es el nodo sucesor de k[i-1] El nodo k[i-1] es el nodo predecesor de k[i] ej: m=3 && k={0,4,7} El nodo 4 es responsable de las llaves {1,2,3,4} El nodo 7 es responsible de las llaves {6,7} El nodo 0 es responsible de las llaves {0} Diseñado para permitir entrar y salir a los nodos con un mínimo de pertubación.

Chord: Ejemplo Nodo inactivo Nodo activo

Algunas Propuestas de Ruteo y Localización (P2P Estructuradas) Chord: MIT. [Stoica et al. 2001] Servicio escalable de búsqeda P2P. Dada una llave, la mapea a un nodo CAN [Ratnasamy et al. 2001]: Content Addressable Network. Insfraestructura distribuida que provee funcionalidad de tabla hash para mapear nombres de archivos a localidades. Pastry: Microsoft Research [Rowstron and Druschel 2001] Infraestructura para localización y ruteo tolerante a fallas en un red de área amplia Tapestry [Zhao et al. 2001] Kademlia: NY University [Mayamounkov and Mazieres 2002] Servicio de búsqueda escalable basado en la métrica XOR

Semantic Overlay Network (SON): Crespo y Garcia-Molina Clasificación Rock Rap Country Creación y uso de SON Jazz SON

¿ Estructurada vs No Estructurada vs Super Peers? Una comparación: Yong Yang, Rocky Dunlap, Michael Rexroad, and Brian F. Cooper. Performance of Full Text Search in Structured and Unstructured Peer-to-Peer Systems. In Proceedings of IEEE INFOCOM06, April 2006. Las redes Estructuradas ofrecen una mejora de 30% en los tiempos de respuesta comparados con las redes de Super Peers. Pero necesitan 6 veces más recursos de red para publicar sus contenidos. Las redes No-Estructuradas que implementan sus búsquedas con técnicas de tipo “caminata aleatoria” (random walk) no necesitan publicar sus recursos, pero es más lento en responder sus consultas comparado con otras estrategias. Opción: Combinar!

P2P: Retos Diseñar estructuras de datos y algoritmos para la distribución y localización de archivos en donde se maximice la eficiencia, seguridad y la escalabilidad, tanto en redes estructuradas como sin estructura. El estudio de esquemas de anonimato, resistencia a censura y seguridad, especialmente para información que es sensible. Esquemas para combinar los beneficios de P2P con las ventajas que ofrece la computación distribuida bien establecida que incluye la interoperabilidad y el manejo de estándares como en la Grid

P2P: Retos Diseño de mecanismos para el manejo de incentivos y para control de reputación que ayudarán a estimular el comportamiento de cooperación de los participantes y que propiciará una operación más justa en la red P2P Estudio y propuestas de esquemas para agrupamiento y búsqueda de información considerando su contenido semántico. Tema muy relacionado con la Web Semántica. Pasar de la Música al Conocimiento!!!

P2P: Tendencias Plataformas Emergentes Convergencia entre computación Grid y P2P Mejoras en la eficiencia de los sistemas P2P Búsquedas Semánticas (Tapestry, CAN -Content Addressable Networks …) Uso de Caching en Consultas/Respuestas

Plataformas Emergentes Programas de Aplic. Dedicados y Protocolos Plataformas Frameworks Áreas de Aplicac. Compartir Archivos para 1 área de aplicación no-generico 1 clase aplicación 1 problema especifico interoperabilidad de red? Freenet Gnutella Groove SETI@home eDonkey ofrecer servicios genericos soporta paradigma P2P usados para construir aplic P2P ? Procesamiento Distribuido Mensajería Instantanea Colaboración

JXTA Desarrollado por Sun Microsystems Conjunto de Protocolos Abiertos Basados en XML API de Java e-mail Subastas Almacenamiento de datos Indexado Búsqueda Compartir Archivos JXTA Community Applications Sun JXTA Applications Aplicaciones JXTA Shell Estableciemiento del Peer Gestion de la Comunicación Routing Peer Commands JXTA Community Services Sun JXTA Services Servicios Peer Groups Peer Pipes Peer Monitoring Nucleo Seguridad [http://www.jxta.org]

BOINC Berkeley Open Infrastructure for Network Computing Permite a sus participantes resolver problemas seleccionados = “SETI@Home” genérico [http://boinc.berkeley.edu]

Para operadores de redes Conclusiones Para operadores de redes Las aplicaciones P2P pueden ser muy consumidoras BW extremadamente populares (y hasta adictivas) algunas siguen un uso de estrategias ineficientes (broadcast, inundación,..) Dolor de cabeza! Riesgo de Cuellos de Botella Las redes overlay tienen poca relación con la estructura física Relación simétrica entre Pares Cambios en el Comportamiento de los Usuarios “siempre” en línea! Provedores y Consumidores de Información

Para Desarrolladores de Aplicaciones Conclusiones Para Desarrolladores de Aplicaciones La gente está MUY interesada en contenidos digitales La gente desea compartir recursos gratis! (e incluso se gasta su dinero …) conviene hacer sentir a la gente que participan en proys. grandes reconocer y dar crédit a los usuarios (favorece competencia) Evitar cavar nuestra propia sepultura evitar estrategias que consuman mucho ancho de banda incluir mecanismos de micropagos/confianza como - motivación para participar - evitar el free-riding - evitar ataques DoS

Para Desarrolladores de Aplicaciones Conclusiones Para Desarrolladores de Aplicaciones Riesgo por Hackers son necesarios los mecanismos de encripción Tomar en cuenta que están emergiendo Plataformas eficientes de P2P reutilizar esfuerzos reutilizar lo que haga la comunidad de usuarios Asegurarse que nuestras aplicaciones siempre sean escalables Entre más usuarios, mayor será el interés por integrarse a la red.

¿Qué es JXTA?...Continua.. 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.

JXTA. Arquitectura software. La arquitectura software del proyecto JXTA está 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 almacenamiento, compartición de ficheros, sistemas de ficheros distribuidos, etc. Capa de aplicación: En esta capa se encuentran las aplicaciones P2P. Ej. Compartición de ficheros, chat, grid computing, etc.

JXTA. Arquitectura software.

La red virtual JXTA Red adaptativa, ad-hoc y multisalto. Gran frecuencia de cambio en la topología: las conexiones son temporales. Rutas no deterministas. Red de superposición (overlay network): red virtual por encima de la red física. La conectividad en la red no depende de la localización física.

La red virtual JXTA

Elementos clave de JXTA Peers Cualquier dispositivo conectado a la red que 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.

Elementos 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.

Bloques básicos de la red virtual 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)

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.

Peers 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.

Peers 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.

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.

Peers rendezvous (cont.)

Peers 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.

Peers relays

Peer 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.

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.

Servicios básicos de peer group en JXTA Servicios de los peer groups: Servicio de descubrimiento. Servicio de pertenencia. Servicio de acceso. Servicio de tubería. Servicio de resolución (resolver). Servicio de monitorización. Nota: Un peer group es libre de implementar sólo los servicios que considere necesarios.

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

Anuncio de peer <?xml version="1.0"?> <!DOCTYPE jxta:PA> <jxta:PA xmlns:jxta="http://jxta.org"> <PID> urn:jxta:uuid- 59616261646162614A78746150325033958A35814213467EBC6C 88D3C138B43903 </PID> <GID> urn:jxta:jxta-NetGroup </GID> <Name> bill </Name>

Anuncio de peer (cont.) <Svc> <Parm> <Addr> tcp://129.144.34.14:9701/ </Addr> jxtatls://uuid- 59616261646162614A78746150325033958A35814213467EBC6C88D3C138B43903/ TlsTransport/jxta-WorldGroup http://JxtaHttpClientuuid- </Parm> </Svc> </jxta:PA>

Almacenamiento de anuncios 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.

Mecanismo universal de resolució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!

Descubrimiento y búsqueda de 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.

Tuberías: Canales de 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.

Tuberías: Canales de 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.

Tuberías: Canales de comunicación virtuales.

Modelo de comunicación 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.

Mó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. 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.

Pila de protocolos JXTA

Protocolos 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.

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.

Seguridad 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.

JXTA 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.

JXTA 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.

JXTA vs. SOAP SOAP (Simple Object Access Protocol) JXTA Permite el acceso remoto a servicios. Utiliza XML 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.

JXTA vs. Otros estándares P2P 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